Advice for Self-Taught Programmers

by bob on October 19, 2009

I am reading Coders at Work by Peter Seibel (thanks, Jeff Atwood, for the lead).  Excellent book.  I like to read stuff like this to keep the juices flowing.

The first interview is with Jamie Zawinski, an old-timer who is most recently known for his work on the Mozilla web browser, but goes way back to the days of Lisp on mainframes.

At one point he’s asked, “You’re largely self-taught.  Do you have any advice for self-taught programmers?”  I could have written his answer:

“That’s a really hard question because the world’s so different now.  … I stumbled into this — it all just sort of happened.  I made some decisions and they led to others and here we are.

“Every now and then I get an email from someone that’s basically, “I want to be a programmer; what do I do?”  Or, “Should I go to college or not?” How can I answer that?  I would have had very strong opinions about this if you asked me in 1986.  But someone today couldn’t take the same path that I took because that path doesn’t exist anymore.”

I often reflect on how fortunate I was to be in the right place at the right time to be able to do what I did, which was basically to be paid to learn software development.  In 1979 your boss could toss a TRS-80 at you and say, “make this do something useful”.  Because then, everyone was an ignoramus, just like me.

I also currently have the privilege of tutoring a bright young man on programming basics, to help prep him for his desired college track in astrophysics.  It’s gotten me thinking about what’s really important to convey about the craft.  It’s also a little jarring, because the hardware and software he’s cutting his teeth on is a far cry from what I dealt with — the little 8-bit computer with 48K of RAM and 16K of ROM with four attached floppy drives each holding 97K of data.

And yet, the fundamentals are still the same.  Don’t be afraid of your own ignorance.  Ask questions.  Tinker.  Correctly define the problem before you try to solve it.  As you weigh implementation trade-offs, don’t forget that shipping is a feature too, and that customers don’t by and large pay for elegance, they pay for results.  But also … play, explore, have fun, and above all remain curious, because that’s what keeps you coming back for more.

I’ve taken a bit of a sabbatical, it seems, from this blog.  Life has been happening.  But the muse seems to be back, and a friend has inspired me to have at it again.  Let’s see where this takes us, okay?

Leave a Comment

Previous post:

Next post: