As I attempt to learn Python, I’m fascinated by how people are able to do this as well as how they started to learn to program.
I’m not the only one, as Ryan Gordon (aka Icculus), a well known game developer who ports many games to Linux and Mac, asked a similar question on Twitter last month.
This led to a lot of interesting tweets and Ryan created a Storify page to share them. Josh “Cheeseness” Bush wrote up a great analysis of those tweets sharing graphs looking at the languages, hardware and more about the people who replied used to get started with programming.
Even though I’m just starting to formally learn to code now, my story with computers is similar to a lot of those stories.
It all started in the early 80s when my father bought a Timex Sinclair TS1000 (aka ZX81) and then a TS1500. You could load games via tape and also buy magazines with the code to program your own games. I spent hours handtyping machine code to create games like Breakout.
A few years later my father bought an Apple //c and I then learned Logo, Basic and others. Nothing that I ever really stuck with from a programming stand point, but enough to learn the basics and spend hours tinkering.
After that, my father bought a an IBM clone 286. I remember being at Sears with him and telling him to spend the extra money to get a 386, but even a 286 was at least $2,000 back then. I remember it ran GeOS for a graphical interface and one Christmas, after I received the original Wing Comannder as a gift, I had to buy MS-DOS 5 just so I could use the himem.sys to have enough memory to run the game.
From the Apple //c on, we always had a modem as well. Starting with a 300 baud modem to a 1200 baud modem later, I started visiting BBSes on the Apple //c and later on the IBM clone as well. (We had a Compuserve account early on, but hourly charges! Ouch.) As a teenager I would go to meetups and actually meet the people I was interacting with on a BBS in a real life – something I’d do twenty years later when I got involved in open source and GNOME.
Using Linux for years and being involved with GNOME, taught me how to use a shell, basic XML with Docbook, and revision control with Git. But now it’s time to learn a formal language and make my first program.
In many ways, I still consider myself an early adopter and if it weren’t having access to computers at a young age, both in home and in school, I’d be a much different person today.