Software Development Meme
Posted by Dan Vanderboom on June 10, 2008
A meme, if you haven’t heard the term, is a word coined by Richard Dawkins. It’s analogous to a gene, except that instead of being a unit of biological replication, a meme is a unit of cultural replication. Though it gets a little melodramatic at the end, there’s a good video at TED.com that explains it fairly well.
So to follow the form of this meme, Damon Payne called me out on a series of questions about my experiences with software development. I’ve answered some of these questions in my About Me page, but I think it’s good to share these things with new developers and those considering entering the field, so I’ll play along (with a little bit of copy-paste cheating).
I’ve also generalized it with new questions in parentheses, because there are exciting careers other than software engineering that people can benefit from hearing about. Introducing this mutation in the meme, I believe, will provide some great perspective on other types of careers from some very interesting people.
How old were you when you started programming?
(How old were you when you started in your current career?)
I started programming at the age of 9 on an Apple 2c that my parents bought for Christmas, and also played around with Commodore 64, TI-99 4A, and gaming with the Atari 2600. After writing my first few programs, I already knew I wanted to do that for a living. At the time, it probably would have been considered a very unrealistic career choice considering how immature the industry was, but I worked at it for hours every day for fun, and it’s definitely paid off. While in grade school, my parents signed me up for a high school programming class over the summer, and despite being by far the youngest and shortest kid in the class (and also because of that), it was a lot of fun.
What was your first language?
(What was the first technology you became familiar with?)
Apple BASIC. No text editor. You had to enter lines of logic from a DOS prompt by prefixing each line with the infamous "line number". Inserting lines between existing lines meant finding an unused line number between them, so lines were written in increments of 10, 100, or whatever.
What was the first real program you wrote?
(What was the first achievement in your education that you were proud of?)
That depends on your definition of a real program. They’re all real, as far as I can tell. The first program I wrote for commercial use? The first genuinely useful program? That’s so long ago, I couldn’t say. I was very much into linguistic analysis from an early age. I used to write natural language processors that would, like Eliza applications years later, understand English statements and respond intelligently. Mostly, I was breaking down sentences into syntactic trees and trying to determine tenses and so on.
I also played with graphics. A few years after I started coding, I figured out enough trigonometry to draw points and then wireframes using 3D coordinates and got them to rotate on the screen.
Another hobby was creating Zork-like text games. Go north. Look at potion. Pick up potion. Drink potion. Go south. Fight monster. That type of thing. Boring by today’s standards, but representing the world, inventory, character status, etc., it was very gratifying at the time. Guess you’d have to be there.
What languages have you used since you started programming?
(What other technologies have you learned since you started?)
Apple BASIC, Turbo Pascal, Apple Pascal, C, C++, 8086 Assembler, VBA, VB6, VB.NET, C#, and countless scripting languages.
What was your first professional programming gig?
(What was your first professional white-collar job?)
My first commercial application was working for my Uncle Ted at Pitney Bowes. They were doing a project for UPS, and the DOS computers they were rolling out needed some kind of menu front end to appear and launch applications on boot up. Using Turbo Pascal, I created a configuration-file-driven menu with multiple menu pages. The menu buttons had some neat display effect, and they could be selected to launch an application or jump to another menu page. It took me two half days, if I remember correctly, I was paid in cash, and they paid for and fetched my lunch. I was 15 at the time, and I loved every minute of it. I knew then that a career in computer programming was feasible.
If you knew then what you know now, would you have started programming?
(If you knew then what you know now, would you have started in your present career?)
Yes. Even if I hadn’t pursued programming as a career, I believe that even tinkering with programming has become very useful in many, especially scientific, careers. I wouldn’t have gone about it in the same way, but then who would?
If there is one thing you learned along the way that you would tell new developers, what would it be?
(If there’s one or two things you learned along the way that you found have been instrumental to your success, what would you like to share with newbies?)
There are many things I would say. Don’t be intimidated by the technology; even the best start out completely ignorant. Take a systematic approach to learning and mastering whatever you need to accomplish your goals, and especially master the language and tools you’ll be using. Have personal goals you want to achieve; don’t write code to serve others exclusively. Work on fun projects. Expand your horizons and explore areas you’ve never had experience with before. But if I could share only one thing, it would be to balance learning of technical skills with the so-called soft skills: communication, presenting, negotiating, planning, etc.
What’s the most fun you’ve ever had programming?
(What’s the most fun you’ve ever had in your career?)
A few moments come to mind. Programming a robotic arm in high school. Staying up until 4am drinking a case of Mountain Dew with John Richardson in high school, cranking out code for new games (for TopSoft Software). More recently, playing with Phidgets robotics and the Microsoft Robotics Developer Studio.
Who am I calling out?