The hallmarks of a good programmer
It can be very hard to separate out the good programmers from the not-so-good programmers until you’ve actually spent a fair bit of time working with them and seeing how they perform. Obviously, that’s a bit too intensive for your typical HR hiring process. But I’ve noticed many traits that good programmers tend to share. Luckily, someone else has already put it into words for me in the form of How to recognise a good programmer.
I agree with nearly everything on that list, though it does tend to over-emphasize bleeding edge technologies (many of which are never widely adopted and then fizzle out). I don’t think it’s a problem at all if a programmer is more focused on learning established, widely used technologies, especially if they value practicality. And there are some good programmers out there who focus on old languages as a side hobby; maybe they first learned to program on a Commodore 64 and keep doing stuff with them out of sheer nostalgia. Sure, it’s not bleeding edge, but it shows passion. I first learned to program on a Texas Instruments graphing calculator (no lie!), and I still play around with them every once in awhile, seeing what new features have been added to TI Basic in the interim.
Number one and number two on his list, Passion and Self-teaching and love of learning, are definitely the two I would put at the top of my own list. The huge difference between the kind of people I see working at my company and the employees at our clients is that we are all passionate about technology. Most of us have lots of computers at home and have extensive programming experience from outside of work. We’re always playing around with things. Our clients’ employees, for the most part, are “career” programmers, and don’t have the same passion. Their programming ends outside the bounds of 9 to 5. And just as an anecdote, self-teaching is very important because I’ve been put on five different projects at work so far in six months, each of which has required a different mix of technologies, many of which I did not know beforehand. If I only knew what I learned in college and wasn’t able to learn these technologies on my own, I would be floundering. But instead, I’m relishing the ability to learn all of these new things. I daresay I’m learning as much now as when I was in college. I can’t believe they’re paying me for this!
Number six on the list, Informal qualifications, gives me a good idea for what types of questions I should be asking when I do more potential employee interviews. I’ve already subconsciously realized that one of the aspects that makes me a good programmer is my passion for side projects outside of work, and I did ask all of my interviewees questions about the neatest coding project they’d written for fun. One of them said that he wrote a Power Hour program which took a playlist of songs and played one minute clips of each of them (awesome!). But I’m going to be a lot more methodical with my future interviewees. All of them have gone to college and done mostly the same things, so what will really make them stand out is what kind of programming they’ve done in their free time. Not only does it show additional experience, it shows passion. And that is, after all, the number one hallmark of a good programmer.
January 14th, 2008 at 10:16
The way I read that was: a good programmer will 1) stay on top of new technology, and 2) see something and think “Gee, this looks cool. I wonder what I could do with it”. It’s of a piece with Passion + Learning.