A little over a month ago, I wrote about starting a C++ course as a structured way to challenge my brain. The nice part is that C# is a C-based language (the “C” is not merely coincidental), so a lot of the syntax is familiar to me. The bonus part is that it’s forcing me to learn, from the ground up, about all of the keywords and language features that I take for granted, even though they don’t map directly from one language to the other. In short, learning C++ has inspired me to dig in under the hood of C# and learn more about the language itself.
What’s it like? There are ten “modules,” one for each week. Every module has assigned readings, an hour and a half long online session with the instructor, a dedicated forum, and (in most cases) a homework assignment.
How do I work it into my busy life? With a lot of enabling from my husband. He helps me carve out time on the weekends and in the evenings to do my readings and my homework. He even set up a special, out-of-the-way place in the house for me to use while I watch the online sessions.
Homework is due Friday night. I try to start it the weekend prior and have it done by Tuesday or Wednesday so I can review Thursday night and tweak anything I don’t like before turning it in.
Online sessions are Tuesday nights, so I’m missing every other one, as it conflicts with my writing group. Never fear: the session is recorded and I watch the ones I miss on the following Wednesday.
I try to complete the readings before that lesson’s online session by plowing through them on the weekends. I even take down hand-written notes in a little notebook as I grind through the texts to help me remember key points. How quaint!
But you hate reading tech books…how do you manage all this reading? I have to say that I’ve never been able to sit down and read a tech book cover-to-cover. It just dulls my brain and nothing sticks and it makes me feel misanthropic. Why is it working now? The key seems to be that the readings are focused and limited. Not to say that it’s not a lot of pages to cover and not to say that it’s not heavy weather sometimes, but there is benefit (for me) in pacing the book, instead of trying to suck it down all at once as if it were some confection of a novel.
We’re reading Scott Meyer’s Effective C++, which has a format I really enjoy: 55 short “items” on centered on basic best practices in a gently proscriptive approach that still allows for nuance towards exceptions. This format really clicks for me.
We’re also reading the C++ Primer by Stanley Lippman, Josée Lajoie, and Barbara E. Moo. It’s a thick book (I can see why it took a team to write it). It’s very in-depth in the way I typically find very difficult to just sit and read (instead of referencing). However, with the assigned reading skipping around and dovetailing with the other reading and the other pieces of the class, I’m gradually warming to it and to the level of detail and depth of understanding that it provides. Sometimes I lament that I can’t keep ALL of it in my head, as the details are so fascinating.
So how do you really feel about this class thing? Making time for it is tough, I’ll admit it: work/life/class/obsession balance is very hard. But I’m really enjoying getting the technical understanding of the language and it’s made me want to learn more about my own language and understand it more deeply and take better advantage of its features. My wish list at Amazon is now filled with tech books that I long to read and my only lament is that the course is so in-depth that it won’t conclude until September, meaning I have to wait several months before I can really start to bury myself in all of the studying I want to do.
Overall, the class has made me more excited about programming than I’ve felt in years. I guess that’s the consequence of staying stable at a job for several years where the work can get repetitive. I needed some serious brain-food to jerk me out of the doldrums and I couldn’t be more delighted in getting this inspirational kickstart.