How I Got Started Programming
My good friend Amy Hoy has pinged me in the latest geek-cum-chain-letter-sucker meme. Since I am enamored with myself, I figured I should let the world know my answers to these.
How old were you when you started programming?
The answer to this depends on how you define “programming.” Not to mention how you define “started.”
It could be when I was around 7 or 8 with our Apple IIc.
It could be when I was 10 making pictures out of ascii.
Maybe it was when I was 15 making doors for BBSs.
Maybe it didn’t happen until I was 17 and scrambling for a class.
How did you get started in programming?
Again, this depends on a few things. However here are a couple of possibilities:
- Sitting in my living room in front of our Apple IIc, a friend (George?) showing me the classic
10 print, 20 goto 10. I tweaked it to make different patterns in the offsets
- The computer lab in 5th grade (I went to a private school for one and only one year… it’s a long story) making teletype ascii art (on real PCs, not on dumb terminals). They gave us instructions like “line 5: 25 spaces, 5 stars, 1 vertical bar, 5 stars”. When you were all done, you’d see the picture. The one I remember very vividly is a Space Shuttle with “USA” on the booster rockets. I would spend *hours* after-school making and tweaking these things. It’s fair to say that the teacher was programming us, and WE were the “computers”
- Spending hours making frames for my Etch-a-sketch Animator 2000
What was your first language?
BASIC was the first language I had any exposure to, but the first language I achieved any proficiency with was Pascal (Turbo Pascal 6.0). I still have a soft-spot in my heart for Pascal, it was my gateway to the beauty and elegance of Computer Science.
What was the first real program you wrote?
Then, as well as now, I didn’t finish many projects. Getting (or not getting, as the case may be) to the “crux” of the problem was my main goal. One project I did finish was in my senior year of high school. I wanted to understand Object Oriented Programming, and started poking around with C++ (I had learned a bit of C before-hand with a friend in school – Jason Kochel). What I ended up making was a program that took two lines of text, put them on the screen, then made them shrink and expand opposite each other. The lines I used were “I love” and some girls name (for a friend of mine – his girlfriend at the time).
What languages have you used since you started programming?
This question should really say something along the lines of “… more than once,” or “… for any period of time.” Here’s a short list of things I’ve messed with:
What was your first professional programming gig?
If there is one thing you learned along the way that you would tell new developers, what would it be?
- Don’t be afraid to break things
- Once you get past fear, find your joy and follow it completely
- NEVER STOP LEARNING OR CREATING.
I’ve made many, many, many mistakes while programming (Hey John, remember the 2 gig file I wrote out to your 200meg hard drive?) Having a group of awesome friends kept catastrophic computer failures to a minimum. And then having a supportive mother for when I did really mess things up let me explore.
The bigger advice is mostly don’t ask for permission. If you need to jailbreak your phone to explore your passion – do it. If you need to tear apart your Furby and solder his guts together to learn how he works – do it. If you need to stay awake 2 days straight just so you can impress someone – do it.
What’s the most fun you’ve ever had… programming?
There are far too many to name. Every time I stay up all night trying to get something out into the world, it is, to me, the most fun possible. Here are a few instances of pure joy from programming/learning:
- When I was sans-home, I would hang out at friend’s houses A LOT. At a few of them, they had old computers. I’d load up BASIC, and make it draw circles and spirals. It was nearly an obsession. It’s hard to explain, my technical chops were far beyond sine, cosine and drawing dots. However – it was the first time I can remember that I coded 100% on my own. No books, no articles on line and no source code to crib from. It was truly liberating. To this day, opening up a blank editor and creating something without reference is a beautiful thing.
The night before my senior year of high school started…
I was signed up for Advanced Placement Computer Science (the only honors level class I took in HS), a pre-requisite was the Pascal class the school offered as part of the Math Department. Due to circumstances outside my control, I wasn’t able to take that class before senior year. I lied and said I knew Pascal enough to do just fine in the class. I spent hours looking at all the source examples I could find and retyping them into a stolen version of Turbo Pascal at home. By the time I went to sleep, I knew as much as anyone else in the class (except for Jason.) I ended up getting a 5 (the highest possible grade) on the AP test, and finishing the class with a grade in the high 90s (which was totally unheard of for me.)
- I recently made an application that I didn’t announce on here. It’s just for me, but complete and not missing any corners. I stayed up until the sun came up writing Ruby (with Sinatra), HTML, JS and CSS. It explores a few interesting concepts and scratches an itch I’ve had for years. If you can’t make yourself happy (and maybe a few geeky friends), then why bother fighting with these wretched machines?
- “Hello World” on the iPhone.
Bonus Question: How do you get into “The Zone” for programming:
I added this question because I’m a tinkerer and couldn’t leave well-enough alone.
For me, it’s always been music. Not just music, but music on repeat. It filters out noise, and is repetitive enough to sooth the doubting part of my mind. Two times:
- I had an old, beat up cd player that didn’t have repeat. It didn’t even start the disc over when it ended. I got up to hit play to re-start Jagged Little Pill a thousand times if I did it once.
- During Rails Day 2006, I played “Unfaithful” non-stop for the entire time I programmed (I think it was 18 hours total.)
Without passing these things on, they’d die. Cold. Alone. Help stave off meme-death. Ping these people and let them know the fate of this meme is in their hands:
- John Kassimatis (even though I know your story!)
- Chris Wanstrath
- Patrick Ewing
- Chad Fowler
- Marcel Molina Jr.
- Scott Raymond
- Joe Stump
- Matt Haughey
- Andy Baio
- Cal Henderson
(wow, I could keep adding people forever. I need to know everyone’s story…)
For anyone who needs the list of questions, here it is in one easy to copy and paste block: