Roadmap for Becoming a Professional Programmer

This post is a heavily-adapted version of a Reddit reply that I made to a computer science student who was struggling with learning the C language. If you’re interested, you can find the original version HERE.

There’s a Map in the Glovebox

I didn’t go to college for computer science. Instead I went to music school. For my senior project I decided to use my full two months of C++ experience to write a software-based synthesizer.

Got in way over my head. Stressed out like crazy. Figured it out, screwed it up, stressed out more. Figured it out again. Learned a ton. Impressed the crap out of my professors, got an A+.

Technically, I graduated from Berklee College of Music on May 6, 1999, but I wasn’t there that day. I was too busy marrying Rachel, the love of my life.

Just a Few Potholes

Right out of college, I immediately got a job working in a studio as an audio engineer. That was exactly what I expected to happen, of course. I had a map, you see.

Sure, it was a 90 mile commute each way, but the money was…well…take a guess at what you assume to be an average starting salary for an audio engineer with no real-world experience. Now factor in that I had never, ever been through a job interview or salary negotiation. Now cut it in half.

Got your number? There’s a good chance you over-figured by a couple bucks per hour.

But I was working in my chosen field. I was following my passion, so money was surely right around the corner, right? Of course. It said so right there on my map.

I Think We Just Lost the Muffler

I’m not going to name the company that I worked for, and I won’t go into details here. Let’s just say that I hung on as long as I could, but enough was enough. I had to get out of there.

After that, I did various non-musical things for several years. I learned a mix of new skills and gained some good experience, but I really didn’t have a career to speak of.

We bought a duplex with 100% financing. We lived in one side and rented out the other side, patting ourselves on the back for our obvious financial brilliance.

That went well until it didn’t.

I don’t want to accuse my former tenant of anything, but someone did about $10,000 worth of damage to the place and left an unidentifiable animal carcass rotting in the microwave.

Now imagine that you needed to leave an unidentifiable animal carcass rotting in a microwave. Exactly how decayed would you like it to be?

Got your number? You get the idea.

And Now We’re Being Carjacked!

No, I wasn’t carjacked.

I was mugged. On the front porch of my duplex. On New Years Eve. Then a few weeks later, I totaled my car on I-4.

Happy 2007

Just Throw It on the Scrap Heap

I’m sure by now you’ve noticed my cleverly metaphorical section headers. Well in this case the “scrap heap” represents the time when my life started getting better, but it involved an actual, literal scrap heap. I got an inventory job at my father-in-law’s salvage yard.

That was not on my map.

I’d usually come home with grease all over my shirt, but Rachel worked there also, and we got to eat lunch together most days. Sure, we were in debt, and my weekends and evenings were spent renovating a duplex while fearing for my life, but 2007 was over.

Life was good again for the most part, but I knew that I didn’t want to make a career of what I was doing. At thirty years old, I started once again to decide what I wanted to be when I grew up.

In the years since leaving college, I had done a little hobby programming, including messing around with C++ and DirectX. I had also fulfilled a childhood dream by writing and releasing a homebrewed Atari 2600 game, called “Backfire.”

Just as a side note, I wrote Backfire in 6502 assembly language using Notepad. May I please have a pass on the whole “You use Unity3D because you’re not smart enough to write real code” thing?

I started studying on my own and coding nights and weekends. First it was C++ but I decided to move to C#. It felt good to have a map again.

All of a Sudden, This Stork Just Came Out of Nowhere!

We had always talked about adopting a child, but that was a plan for someday. We could not have been less prepared if we had tried, but an opportunity came along through a friend of a friend of a friend. We became a family of four.

No, that’s not a typo. Exactly one week after bringing Andrew home from the hospital, we found out that we had another baby on the way. Seven and a half months later, Rachel gave birth to our second son, Caleb.

Being a dad was, and is, awesome, but nights and weekends were no longer a thing. Rachel and I operated on two or three hours of sleep per night. I did the bulk of my studying during 4 AM feedings, balancing a 1,200 page used book on my lap while getting puked on and worse.

My map had blown out the window, and the signs all read, “You can’t get there from here.”

Back on the Road

We set up a nursery in the back of Rachel’s office and took turns changing diapers while juggling our work tasks. My father-in-law, who was also my boss, was very accommodating and supportive.

Eventually, the kids began sleeping six hours per night and so did we. At that point we were about $18,000 in credit card debt and had very little savings. I started working sixty hour weeks, studying and coding when I could. Eventually we paid off all of the debt and accumulated about $10,000 in savings.

During that time I had also started writing some custom software for the salvage yard.

One day, we got a visit from an owner of the company who makes the inventory software that I used every day, and Rachel showed him the software I had written. I was furious that she showed him my stupid amateurish software. Sure, I wanted to become a professional programmer “someday,” but I was nowhere near ready.

He hired me.

I forgave her…then apologized profusely for being a jerk, then thanked her for believing in me.

I now get paid to expand and maintain the software that I had used for years. And those sixty hour weeks of getting grease on my shirt? They gave me a deep understanding of the daily needs of they users that I now serve.

Goals are good. Planning is good, but life is weird and quirky and painful and fun and crazy. You’ll figure it out.

Mostly. I mean, seriously? Who puts a decaying animal carcass in a microwave?