Software Development Meme

I’ve been tagged by fellow yahoo and javascript hacker extraordinaire Matt Hackett.

How old were you when you first started programming?

I guess I was about 7 or so when I first typed BASIC commands into my dad’s DOS computer. Back then, buying a “computer game” meant you bought a book and typed it up. And then it didn’t work, most of the time.

In High School, I got into programming for the Ti-8x series of graphing calculators, so that I didn’t have to memorize any of the equations in Calculus or Physics. Mostly, those programs were designed to let you enter all but one or two of the variables in an equation, and then they’d solve for the missing piece, so that I could finish my tests in record time. One teacher accused me of cheating once, but she let it slide when I showed her how I wrote the program.

I also wrote a few simple games for the Ti, and heavily modded Drug Wars to add graphics and some new game mechanics.

What was your first language?

QBASIC was the first language I was exposed to, but the Ti’s BASIC-esque language was the first one I ever got creative with.

After that, it was nothing but C and C++ in college.

What was the first real program you wrote?

I consider those physics and calculus shortcut programs in High School were “real”, because I ended up with customers, and having to do tech support and take feature requests. The Ti had a data port that would let you send programs from one calculator to another, so other students started passing my programs around, and bugging me for new ones. Early on, I learned the importance of “no warrantee expressed or implied”.

What languages have you used since you started programming?

  • C/C++ in college
  • VisualBasic, in its ASP, compiled, and Script forms
  • php
  • javascript
  • bash
  • perl
  • sql

and strictly dabbling for fun or education:

  • erlang
  • python
  • ruby
  • ada
  • lisp (scheme and arc)
  • java
  • flash
  • haxe

What was your first professional programming gig?

At Data Strategies, I started out in technical support, and after a few years, did some part-time programming. Eventually, I became the “web guy”, in charge of the help pages and website, doing everything from server-side programming to javascript to graphic design to technical writing.

If you knew then what you know now, would you have started programming?

Yes. In fact, I would have probably pursued it a bit more aggressively. A lot of my education amounted to various forms of underwater basket weaving. But a lot of education is really about self-discovery, not just learning skills, and so maybe it’s better that I didn’t.

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

Read a lot of code.

Go to college, but don’t stress too much if you don’t, or if you don’t finish. It’s no big deal, really. College is a great forum to learn about yourself, what you like, what you’re good at, etc.

Learn to talk to people, both online and in person. Programming is a team sport most of the time.

Deal with real live customers as early in your career as possible.

Be compassionate. The user has entrusted you with their time and data. Care about that.

Program for fun. Fall in love with coding, but not with code. Never be afraid to rewrite something.

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

The most fun thing in the world is making something work that didn’t work a little while ago. It’s a high that’s disturbingly akin to hard drugs. It keeps you up, makes you forget to sleep, subsumes all other pleasures, and is never enough.

Of all the projects I’ve been a part of so far, Yahoo! Buzz was the most fun to work on. But really, my favorite kind of programming, the thing that recharges my soul, is just wiling away a Saturday hacking on something without any constraints or compromises or deadlines.

Who’s next?

I’m going to keep this inside the yahoo garden for now, and kick it over to another cubicle neighbor Laurie called Seldo, a very talented writer and programmer.