Aug 15 2008

How I got started programming

dastels @ 11:33 am

Added a paragraph about the ZX81.

Tagged by David Chelimsky.

How old were you when you started programming?

Mid teens. I can’t remember exactly when, but it was around the time I started high school.

How did you get started programming?

That I remember vividly. In the town I grew up in we had a “Teacher’s College”.. basically an college that you went to for essentially a bachelor’s degree in education. Their library was open to the public, and they had some computers. Specifically several Commodore PETs. I’m not sure of the exact model, but they looked exactly like this. I played around with those for a while, mostly typing in programs from Creative Computing and the Basic Games books by David Ahl. Before long I was experimenting withmy own programs.

The library also had a couple Bell & Howell Apple ][+s… the black ones.. which I still consider one of the coolest looking computers ever made. I recall that you had to pass some sort of test before being allowed to use those… which I did and haven’t looked back since.

Shortly thereafter I got a Sinclair ZX81. I spent a few years hacking both software and hardware for this, including a full size case and keyboard, and a sound system based on the sound chip from the Commodore 64.

What was your first language?

BASIC

What was the first real program you wrote?

I truly have no idea.

What languages have you used since you started programming?

In roughly chronological order: Basic, Z80 Assembly, 6502 Assembly, 6800 Assembly, Pascal, Forth, C, LISP, C++, Modula2, Prolog, Smalltalk, Java, Ruby, Python, ObjectiveC. I’ve likely forgotten some.

What was your first professional programming gig?

That depends on what is meant by “professional”… so I’ll give a few answers.

The first program I got paid to write was on those black Apples… a graphics heavy educational program for little kids… colour & shapes. I used 6502 assembly for it.

The first real job (part time in high school) programming was developing an environmental control & monitoring system in Z80 assembly on custom hardware, which also involved some hardware design & prototyping.

After high school I did some similar work on a consulting basis.

My first “day job” was after grad school, at a startup working on early multimedia CDROM based edutainment (reference/training) products, in Smalltalk for Windows 3.11. That would have been in ~93.

If there is one thing you learned along the way that you would tell new developers, what would it be?

Never stop learning. Learn new platforms, new languages, new techniques, new ideas. Learn languages that are very different from what you already know. Don’t worry about them being directly applicable… the more important thing is the ideas and concepts that you’ll learn.. new ways of looking at things.

What’s the most fun you’ve ever had programming?

Three fairly recent things stick out in my mind. Not surprising, both involved programming in Ruby:

  • working on RSpec with David Chelimsky and Aslak Hellesoy when the 3 of us were working in the Chicago area,
  • taking part in the 2007 Rails Rumble with Nancy, the love of my life, and
  • deciding at 5pm on a saturday night to write an iPhone app, and having a demoable version deployed to a device by 3am monday morning… with minimal sleep during the process.

Up Next

Misko Hevery

Brad Cross

Jonathan Wolter

Peter Epstein

Dennis Byrne




Steve Jobs Memorial

Stay Hungry, Stay Foolish!
Steve Jobs

In memory of Steve Jobs