Greg Heo

18, in Computer Years

I just turned 18, in computer years. Take a trip down memory lane to the innocent pre-Internet days of yore.

It’s the 18th anniversary of my very first software job. I’ve been a computer nerd for longer than that, but I’m talking putting on pants and going into an office to work on “real code”. So I’m now 18, officially a Professional Computer Software Developer Adult!

Gather around kids, and let me tell you about walking to work uphill both ways in the Canadian winter with a 300 baud modem and an acoustic coupler strapped to my back.

(cue flashback sequence)

It was October 1996 and I was a high school student with a co-op spot at an engineering firm. I didn’t have the best grades so I got the engineering firm as opposed to the A-students who went to the banks and insurance companies.

These were the days of MS-DOS, or if you were lucky, Novell NetWare. There was only one computer on our floor with Internet access. It was behind a (mostly) locked door and had something like a 64kbps ISDN line. We had 3.5” disks and 1x SCSI CD burners. Nostalgic yet?

I worked on FoxPro programs—we called them programs in those days, not apps—and Windows device drivers and X11 code. It was a whole lot of learning and figuring things out.

I was lucky to reach the point very early on where you realize how much you don’t know. I’m happy to say I still feel that way most days.

A lifetime later

In the technology world, 18 years is probably several generations already. But some things are still the same:

Software is hard. Writing code, planning, working to a schedule, estimating effort – these are still hard problems. Whether you use waterfall or agile, or having meetings while standing up, it’s not easy to succeed in software development.

Ultimately, telling a computer what you want it to do is not the hard part. That might be the fun part, but it’s the stuff surrounding it that makes for a sustainable life and business.

Shipping stuff is still awesome. When that DOS prompt blinks away and you type in the name of that compiled EXE file to see it run free, you know it’s all been worth it.

Launching your product to the world is one of the most exciting times in a developer’s career. Well, maybe second to starting a new project…

It’s never good enough. It drives me crazy when people say software is “good enough” or their phone is “fast enough” and why don’t technology workers move on to more important things? With that attitude, we’d still be living in caves and “computers” would still refer to people who did calculations by hand for a living.

No one will complain that the animations are too smooth or that the upload is too fast. What people want to do with computers has kept pace with the limits of available computing power, and that isn’t going to stop any time soon. When it comes to app performance or your skill set, you can’t set things in stone and just sit back and watch.

Some of us are still writing C. Damn it C, why are you still so awesome with your pointer arithmetic and undefined behavior? Please never change.

Here’s to the next 18 years!