How long to become a programmer?

Rogers Cadenhead reacts to Peter Norvig's rant, Teach Yourself Programming In Ten years. Peter takes exception to the rash of publications offering to teach people the latest programming language in 21 days / 24 hours / whatever. It's a fair point, but like Rogers I believe that someone can become a perfectly competent programmer in far less than a decade! Mind you, I'm mindful of the fact that I have only been seriously coding for around five years: I have stacks to learn.

There will always be "dabblers" — especially in the "easy" realms of Notes and VB — but similarly, a whole load of us out there are keen to learn our craft and become the best coders we can. Dave Thomas and Andy Hunt say it best with one of their tips entitled "Care About Your Craft":

Why spend your life developing software unless you care about doing it well?


  1. Interesting points… To me, the Hours/Days series serve a useful purpose: exposure to a new skill for which you have little prior knowledge. If I were going to learn something new (like Python for example), I would not gravitate to a 1000 page book covering everything in excruciating detail. I would look for a book that gave me some hands-on experience that broadly covers the main parts of the language. After completing that exercise, I would know a couple of things; 1) a general framework in which to build future learning, and 2) whether this is an area I want to pursue.

    It's one of the reasons I like the "for Dummies" series. It gives me a context on which to build, and it lets me know what it is that I don't know.

    I would not trust a mission-critical app to someone who's sole experience was working through an Hours/Days book. I would put someone on the team who worked through that book and is spurred on to continual learning.Thomas Duff#
  2. A year into my LotusScript career, I thought I was The Man. A year later I looked back on my code and thought it was awful. A year after that I looked back and realised my code was getting better, but was still pretty ugly.

    That's a repeating cycle, this is my 5th year of LotusScript coding and the stuff I did a year ago still offends my sensibilities. The most NB thing is to keep learning and striving to improve, and never to get arrogant. From that angle, someone with 10 years of coding has learned a lot of lessons a newbie hasn't, but after 10 years there are guys with 15 years of coding experience who'll still think you're an idiot.

    So I think Peter Norvig is missing the important point here -- we're all on a journey to better code, and you have to start somewhere, which is where the TY books play their part. It's like music. It's only after you've mastered the 'mechanics' of playing an instrument that you can actually start putting real emotion and 'art' into it. Everybody starts off with a painful rendition of 'Bad Moon Rising' on the guitar, from some cheapo songbook, before they're churning out million-sellers (which may or may not be art by that point, but that's another story ;-)Colin Pretorius#
  3. Hee hee, couldn't agree more! Once again you've brilliantly encapsulated the issue at hand Colin; now, where's your site? We want to read more, dagnabbit! :-)Ben Poole#
  4. Well said, Colin. Exactly my experience in my (far too) many years of IT work…

    That's one of the benefits of XP pair programming. You can learn a lot from your partner, and it exposes you to different ways of doing things. I usually will borrow code from prior efforts, because if it works, why not? But when you expose it to someone else's review, you are forced into looking at the code in a new light. It usually leads to better code and new tricks…Thomas Duff#
  5. I'm also a fan of "Dummies" books, but I've laid down a fair ammount of scratch on those thousand pagers too. From my perspective, you do well to avail yourself of EVERY available teaching aid, weather it be from an XP experience, online articles (codeProject is one of my favorites), 'borrowing' code from yourself or other collaboratively minded bloggars, "teach yourself Befunge in 12 excrutiating lessons.", or as sometimes happens to me, heat induced visions acquired while riding the lawn-mower.

    We are all, after all, on a long journey if we intend to make our living this way… technology moves too fast for us to sit on our laurels and be satisfied with what we learned in the first year or two.Jerry Carter#
  6. Thanks for the kind words, Ben. As for the site, I'm *koff* working on it :-)Colin Pretorius#
  7. good article please
    isaac setabi#

Comments on this post are now closed.


I’m a software architect / developer / general IT wrangler specialising in web, mobile web and middleware using things like node.js, Java, C#, PHP, HTML5 and more.

Best described as a simpleton, but kindly. You can read more here.