I’m nowhere near as good a programmer as I should be.
I’m not terrible - just a bit off from where I should be.
What actually made this hit home was, initially, some of the job interviews I went through last year. I did get offers from all the companies I interviewed at. Maybe this isn’t saying much given how crazy the IT job market has been for the last few years… or am I actually ahead of a bunch of really terrible programmers? Now there’s a scary thought for you!
Anyway, some of the more hardball interview questions did give me a clear sense of some areas I’m weak, rusty or just plain ignorant in. Later on I got an additional wakeup call from this blog post. Go on, go read it right now.
Some consider Steve Yegges idea of a phone screen (or job interview) somewhat harsh. However, you should know this stuff if you consider yourself a professional developer. The article painfully reminded me of all the stuff I’ve either A) forgotten or B) simply never bothered to learn.
So, resolution time. I’m going to pick a few areas that I need to improve in initially, and I’ll try to invest at least a few hours each week (outside of work). My current todo list:
- Learn Ruby properly. I never bothered to master a scripting language, though I’ve dabbled in Ruby and Perl before. And I should take the opportunity to become more proficient with regular expressions while I’m at it.
- Learn a functional programming language, at least enough to feel more familiar and comfortable with that paradigm. I’ve worked with people who are fond of Lisp, and it clearly showed in their Java code. In a good way.
- Brush up on my math skills. I was never a very inspired math student in school, but I’m continuing to find that I really should’ve focused more on that.
Time to polish the rust and sharpen the blade.