I started where I was, with what I had.
Whenever we visited my cousins', I spent the time on their Vic 20.
I taught myself binary numbers, because I didn’t have consistent access to a computer and that was as close as I could get. After all, isn’t binary what computers speak?
At school, I stole time on a TRS-80 in another classroom.
I learned BASIC from a book, away from a computer.
I finally wore my parents down enough that they bought me a Commodore 64.
For a while, I didn’t have a good way to save anything, so I programmed the same stupid game over and over. Your spaceship explores a randomly generated 10x10 grid and has to destroy enemies and pick up asteroids. It was more fun to create the game than it was to play it.
Looking back, three things strike me about this path into computers and programming:
First, in the details of what I was doing, in the difficulty of everything, the sheer frustration involved and the lack of any immediate feedback, this was a horrible way to start.
Second, having to work like this isn’t a bad thing. I valued the time I did get on a computer more. And I did it because I wanted it deeply, as only a twelve-year-old can.
Plus there’s a lot in computers that just is work. A lot can best be described as bland frustration topped with frustration with a tart side of annoyance. Having to work to get started made all the pain involved since then seem almost normal.
And third, because I was twelve, everything I did was play. I built games for myself. I poked and prodded the machines to see what they could do. I followed my curiosity. I had no agenda except amusing myself.
That was good the good part.
So how do you start?
First, find something you’re passionate about. How do making, computers, or programming apply to that? It’s become increasingly easy to make this connection, especially with the rise of 3D printing and easily hackable embedded systems like Arduino.
The real issue isn’t passion, though. It’s work. What will motivate you to put in the work? What will make the time invested seem shorter than it really is?
Second, work. There’s really no substitute. If you want to learn to program, you need to spend a lot of time typing. The Learn Code the Hard Way series has this exactly right: most programming is just muscle memory, and you learn it by doing it. And doing it again. And again.
This applies to other types of making as well. There are certain core tasks that you’ll spend most of the time doing, even though they aren’t really interesting themselves. But if you want to create beautiful paintings, you have to learn to work with paint.
Finally, play. Follow not just your passion, but also your curiosity. If you wonder what will happen if you turn the background of a web page brown and make the text transparent, don’t ask. Just try it and see.
Work. Work. Work. And play.