Software Development Meme
Pete Brown called me out to answer the next round of "what about you" questionnaires floating around the blog-o-sphere. So here's my take:
How old were you when you first started programming?
I got a Vic-20 when I was ten and started pretty quickly into Commodore Basic. I voraciously read Compute magazine and can remember reading the programs in the back and hoping those data sections were typed right.
How did you get started in programming?
I would visit other geek friends and discuss Basic with them pretty freely through high-school. I remember programming a lot of 6510 machine language stuff (Poke and Peek in Commodore basic, one byte at a time). I tried it on the Apple ]['s at school too. It wasn't until I was sixteen that I got serious about how it really worked when I got a summer job learning and programming.
That first summer I was introduced to a CP/M variant called TurboDOS (a multi-user CP/M believe it or not) that ran on Wyse green screen terminals. I had to learn what a database was ("Why wouldn't you just have the data in a data block or something? Oh, its going to change over time...I get it...") Once the school year started, I became disinterested in school and did the job Co-op (working 1/2 days for credit and going to school 1/2 days). Soon after I just quit high school to program full-time. By the end of that year, I had written my first business package, a time billing system for a real estate appraiser.
What was your first language?
Commodore Basic was the first, but assembly for the Vic-20 and C64 were soon behind. Once I was being paid to do it, I cut my teeth on non-mainstream languages like FMS-80 (sorta like Pascal), dBase II, III, III+, 4 and on to Clipper eventually.
What was the first real program you wrote?
I don't remember the first program I wrote of any consequence. The first one I can remember was the time billing system for the Real Estate appraiser. It was all green screen magic. Sometimes I miss the simplicity of UI design for green screen terminals..
What languages have you used since you started programming?
I use C#, VB.NET and even C++ once in a while. I have been digging into IronRuby, IronPython, F# and Boo lately.
What was your first professional programming gig?
My first job wasn't that professional as I was paid minimum wage to mostly learn so I won't count that. Soon after I got a job creating a dBase II system to store a filing system for Chevron's environmental compliance area. This job involved creating a database that stored the data on every file in their file room, all reports for that system and a backup system for the data.
If you knew then what you know now, would you have started programming?
Yes I would. Having started so young, I fought it somewhat but in my mid-twenties I finally figured out that this is what I love to do.
If there is one thing you learned along the way that you would tell new developers, what would it be?
Many people think of programming as a solitary job for loners. I am often asked if I find the solitude nice in the work. The reality is that this job is all about people, not lines of code. Learning how to communicate with your team members, your customers, your advocates is key to success. I would rather hire a good communicator than a good coder. You can teach code, you can't teach how to communicate your ideas.
In addition, I would encourage people to read code. Reading code is a lost art. Intellisense and debuggers has made most younger developers dependent on watching the code in action. I feel lucky that I didn't have a debugger for a long time. It taught me to read the code to understand it. If you read code, you're liable to write code that is easier to read. Find code that impresses you and emulate it (e.g. good strucutre, documentation, etc.).
What’s the most fun you’ve ever had … programming?
I know I am going to leave someone out when I say this but without a doubt it was working at DevelopMentor as a developer. Chris Sells assemblies an incredible team that was spread out around the world with a vision to build a product called Gen<X>. Before I went there, I was always "the guy". In most offices I was the hotshot developer. Going to work with Chris meant that I was never the smartest guy in the room. While this was hard on my ego, it certainly helped me understand how to listen to other ideas and stand up for my own. Even though it was not a commercial success, it was certainly critical to who I am today as a developer, writer and thinker.
So who's next?
I would nominate: