It’s not exactly a lark but, given everything else happening in my life, it is a bit of a crazy commitment. I signed up for an eight month, three-part course through the University of Washington’s extension program, aiming to complete a certificate in C++ development. And I do have to admit that, while it’s not exactly a lark, my decision to sign up was a bit impulsive compared to my usual standard of thorough over-thinking.
Why C++? Why not C++? It’s a language that’s not only venerable and well-established, but it’s still in demand. However, my biggest motivation is that it’s a more “low-level” language than anything else I’ve dealt with before as a web developer. This means I have to get my hands dirtier than ever before because fewer things will be wrapped up with nice, pretty bows like I get with C#, MVC, and EF.
I’ll be plunged into working with new types of challenges (like keeping track of my pointers and watching for memory leaks) and wrestling with more complicated algorithms through my homework–things my college education glossed over and my work experience has not touched on often enough. This has left me at a disadvantage at the whiteboard during interviews, where I typically freeze like a deer in headlights. I’m looking forward to earning more confidence at that whiteboard in the future through this adventure.
Another advantage is that I’ll have the chance to practice more complex OO design. Having worked at the same job and working on highly similar modules for several years, I don’t have much opportunity to be challenged by new problems to solve with inventive and solid designs. I know that my current patterns have shortcomings but, with my hair often afire and being alone, sticking to convention has become more important than innovation–which is a sad place to be. While features where I could have the opportunity to do something radically different are discussed (D3 and data visualization? Elasticsearch?), these treats have all gotten delayed in my work queue multiple times.
Why a formal course? As a mostly self-taught developer who has often worked alone or in a very small team, I’m craving the opportunity to not just have a once-a-week hangout with other devs wanting to learn the same language, but also to turn in my homework and have my code reviewed! Having other minds against which to sharpen your own is an incredibly valuable opportunity, one that I don’t have at my current job (no one on my team works in my language). Plus, I’m wretched at sitting down and reading tech books from cover-to-cover. I want deadlines and the motivation of committing a large chunk of money for the experience.
Class starts February 1, with our first online meeting on the 2nd. Yes, the meetings are on Tuesdays, sadly overlapping my writing group, whom I’ll be reduced to visiting with for a stingy half hour to forty-five minutes, depending on how quickly I can zip home from the coffee shop. Hopefully a quick Circle of Shame will be enough to keep me motivated on that front. I’m feeling motivated about my class, though: I’ve done my readings, taken notes, and have been practicing small projects to get accustomed to the differences in organizing and compiling the C++ projects compared to my C# projects.
Fingers crossed that the instructor is good! I’ve looked over the lesson plans for the next ten weeks and they seem promising. The first lesson focuses on unit testing as one of the basic components of ramping up. That really earned my respect and, frankly, I was relieved to know that the instructors thought it that significant.
Now all that remains to be seen is if I can carve enough time out of my life to not just keep up, but to squeeze all I can out of the experience.