On the evening of my second day at CodeClan I ended up at hospital at midnight because my eight month old daughter was having trouble breathing. She was fine, but we all got about three hours of sleep. The next few nights I stayed up hours later than I usually would reading around the topics we'd covered in class. That weekend I caught the flu. Or rather, I caught the steroid-taking cousin of flu that can only be found in the germ mecca that we call nursery. Propped up by lemsip, strepsils, and ibuprofen I continued my nightly reading, getting more and more ill.
These first two weeks have been a lesson in pacing myself.
Part of the problem is that I am having an obscene amount of fun. I love learning pretty much anything, but there's something about software development that makes me forget that I should eat. I'm not sure if it's just the things I mentioned in my previous post, or something else. I'll have to keep thinking about it.
The first module is in Ruby and focuses on teaching basic principles of programming that we'll be able to apply to other languages that we learn, albeit with various added idiosyncrasies. So far nothing about the content has come as a surprise, which is a relief because my previous job at CodeClan involved telling people what the course involved.
What has been a surprise, though, is the pair programming. I knew that pairing featured heavily in the course and could give you a few lines of chat about what it is any why it's included. What I didn't realise is how much of a skill it is in its own right. In fact, I'm starting to get the sneaking suspicion that the most challenging part of programming is all the stuff the involves communicating with other people. Like life in general.
On Wednesday of the second week we had a full day lab in which we were given a brief, paired off and set to work. Two people, one computer: more brains to solve the problem. Pair programming is fun, but it's also tiring. Instead of being a law unto yourself, diving into a problem without too much forethought, each part of the solution comes with a discussion. You have to think carefully about how to communicate your ideas, and in talking them out be open to being confronted by the gaps in your knowledge. Pair programming is a good exercise in quieting your ego: it's not about being better than the other person, or telling them what to do. It's about working together, learning from each other, producing work that is of a higher quality than either of you could have produced on your own.