Jason Massie tagged me, so it’s my turn to answer the questionnaire….
How old were you when you first started programming?
Dad and Mom upgraded us from an Atari 2600 to a Commodore 64 when those came out, so I must have been around 9-10. I don’t remember much from those early attempts at programming, but I remember being really frustrated that there was so much typing involved to copy the stuff from magazines into my own computer.
See, I have this mental problem where I don’t want to do something unless I can be really successful at it in a short period of time. That problem is often defined as laziness, but I’m not lazy – I don’t mind working really hard, but I don’t want to STRUGGLE really hard. I will work 20-hour days, but I wanna know that I’m actually achieving great things, not trying to accomplish something basic.
Typing long, boring lines into a computer, especially lines that I didn’t think up, definitely fell into the category of time wasters. It’s one thing to pour your ideas out into a keyboard, but it’s another thing to transcribe somebody else’s ideas, character for character, and then try to hunt down your typos without a debugger.
(That same mental problem is what kept me out of sports! Practice for weeks just to be able to shoot a free throw? You’re out of your mind….)
How did you get started in programming?
Lemme tell you how I didn’t get started: I vividly remember Mom forcing me to do piano lessons, and Dad forcing me to do soccer. Neither of those hobbies stuck in any way, shape or form. I don’t remember how I got started in programming, but I remember poking and peeking around on my own, so I bet I ran across it in a magazine. I was a voracious reader.
What was your first language?
BASIC. (Makes me chuckle because future generations will respond to that question so differently.) I think my second language, if you can call it that, would have been DOS batch files, though. I really, really enjoyed MS-DOS.
What was the first real program you wrote?
To me, it’s not a real program until the first user signs on. That’s when you find the real bugs, the real shortcomings. My first real program was a help desk front end written in classic ASP.
Our company was growing by leaps and bounds, and McAfee wanted absurd amounts of money for more user licenses for their help desk software. That software sucked – I mean, reeeeeally sucked – and I said to myself, I could write something better using the same SQL Server back end, save the company a lot of money, and the users would love me because it’d be so much easier to use. Plus, if I had any ugly bugs, they could use the old Windows console version while I sorted my bugs out. The company still uses that system today, and it’s had over 100k help desk tickets. Hooah!
That’s still my favorite rush in programming: walking past somebody’s computer and seeing my stuff on their screen as they interact with it. I really love knowing that somebody could choose to use any piece of software out there, and they’re choosing to use mine. That rocks. It’s like being the cool kid in school. (Only without the chicks.)
What languages have you used since you started programming?
Trying to think of these in the order of my career:
- BASIC on a Commodore 64
- DOS (yes, I consider batch files a language, especially when they’re hundreds of lines long)
- Classic ASP
- Topspeed Clarion
- Java (the language that made me decide to never learn another language again)
What was your first professional programming gig?
Telman (subsequently bought by UniFocus) hired me on the basis of personal relationships and my hospitality industry knowledge, and then sent me off to Clarion training. I really liked Clarion, and I haven’t touched it in years. Makes me want to go play with it now, come to think of it. Clarion was a database-independent language: in theory, you could change your database back end with a couple of mouse clicks, recompile your program, and hook it up to a different database.
The problem is that when you’re using a particular database, you want to take advantage of the database-specific features that give you better performance or more capabilities. If your code is generic enough, though, or if you’re willing to invest the time to debug it once, it does work, and I did manage to switch a few apps between Clarion’s proprietary flat files, to Microsoft Access, to SQL Server 7.0.
Telman was also my last professional programming gig. Clarion was a dying language, so the company had to switch to a “new”, more maintained language – either Java or .NET. I saw the writing on the wall; .NET would have short-term staying power because it has the Microsoft marketing power behind it, but something else would come along in 5-10 years and knock it over. I could spend a few years becoming really proficient in Java or .NET – but then have to relearn a new language within a decade. Why bother? The ANSI SQL language lasts forever, even across different vendors.
If you knew then what you know now, would you have started programming?
Yeah, because I think it makes me a better database administrator. No way in hell would I go back to programming, though – I hate finding bugs in my own code. Stored procs are easy enough to unit test and be pretty certain that they’re correct, whereas code that faces end users – that’s another problem entirely. Users are crazy. They click everywhere, they do things that don’t make sense, and they expect everything to work flawlessly. That is seriously hard work. I really respect good programmers.
If there is one thing you learned along the way that you would tell new developers, what would it be?
Languages come and go like fashion trends. Don’t get stuck in a pair of baby blue bell bottom pants: choose a language based on how your resume will look 5 or 10 years from now, not based on what the cool kids are doing this week.
Really, really good programmers can pick up a new language in a heartbeat, but you may not be so lucky. Spend your time focusing and getting really good at one language, and don’t listen to the siren song of whatever new language is sexy today. Take database administration: learn to code ANSI SQL today, and you’ll still be using that same syntax in 20 years. Learn the trendy new LINQ, and you may be relearning something else in a few years. (I’m not sayin’, I’m just sayin’.)
What’s the most fun you’ve ever had … programming?
Embedding sounds in other people’s help desk tickets with hidden HTML code in the ticket notes. I embedded the A-Team theme song in a note on somebody’s ticket, so whenever he pulled up his list of tickets, the A-Team song started playing, and he didn’t know why. When I finally let out the secret, hoo boy, that triggered a flood of embedded sounds and graphics.
Who are you calling out?
Bert Scalzo because he talked me into this sweet job
Brian Knight because reading his stuff is almost as good as listening to his seminars
Conor Cunningham before he goes back to work for Microsoft
Jeremey Barrett because I bet he’s better at programming than he lets on
Linchi Shea because he’s a SAN genius
Rhonda Tipton because I’m seconding Jason’s call-out
Before me, the tag order was something like this: Jason Massie > Denis Gobo > Andy Leonard > Frank La Vigne > Pete Brown > Chad Campbell > Dan Rigsby > Michael Eaton > Sarah Dutkiewicz > Jeff Blankenburg > Josh Holmes > Larry Clarkin