Lessons From a Veteran: Approaching Things From a Different Direction
This post is part of a series interviewing veteran developers, asking them questions about their journey to tech mastery and sharing the advice they have for those getting started.
Today Eric Goebelbecker is telling us about what really matters for programmers. Eric is a developer, DevOps engineer, system administrator, and whatever else he needs to be for the small trading firm he works for. He’s also writes fiction and enjoys cycling in his free time. You can catch up with him here.
How long have you been a programmer? What Stack do you work with?
I’ve been working as a developer in one form or another for just about 28 years. I started playing around with code a decade or so before that. The “one form or another” bit feeds into the stack question.
The first bit of code I wrote for money was while I was working as a systems engineer for a major financial services firm. A major job called for a small bit of custom code, and I raised my hand and wrote it. That eventually led to supporting the API for my employer’s middleware.
So suddenly, I was a C developer.
Since then I’ve worked with C++, Java, Objective-C, Python, Visual Basic, Ruby, JavaScript, and enough Bash scripting that it’s worth noting. My primary stack is the one I need to support that day. Lately, it’s been mostly Python.
What made you want to go into programming?
I saw my first computer in middle school in the mid-’70s. Well, it wasn’t really a computer. It was a teletype that connected to the high school’s minicomputer over a dial-up modem.
I wanted to learn programming about five minutes later. How could I not want to? I was already a bit of a “geek” (by today’s standards) having built my own stereo amplifier, pieced together the rest of my audio system, and played with all things electronic. Computers were the next logical step, and programming was the highest level of mastery.
I did starting coding right away, too. It was an introduction to programming course, and I wrote Basic code on that teletype.
What were you most worried about when you made the decision to pursue a programming career?
My biggest concern was whether or not I could make the switch from “generic computer guy” to full-time programmer. I went from high school to the Army. Eight years later, I returned to civilian life with no college degree and experience repairing radars (and other Army skills) that didn’t translate to anything in the civilian world.
Back in the early ’90s, computer science degrees were rare, and you could still carve out a decent career without college. It took patience, connections, and almost as many soft skills as “hard” ones.
So, when I said to myself “I’m going to be a programmer,” I was making a promise to myself that I didn’t know I could keep.
What advice would you offer to people considering a career change to programming?
Programming is more than writing a set of instructions that makes a computer do something. It’s solving problems. If you don’t understand the problems, you can’t write effective code. Period.
In the early stages of your programming career, you’re probably going to have a narrow view of the problem. A senior person on your team is going to be responsible for the design, so the problem you’ll be solving will be something simple like “display this data in a table” or “read this packet from the network and convert them into a different format.”
You’re going to get bored. You’re going to want to do more. The only way you can do that is to learn the business.
This is why the senior job postings don’t just say they’re looking for a C++ coder or a Rails developer. They talk about what the code is for. CRM companies want people that have written code for CRMs. Banks want developers with experience in financial.
So, pick a specialty and master it. This applies to technology and to business. If you choose a field you want to work in, find out what tools they use and learn them. At the same time, learn their business. There’s way too much technical information out there, so focus on the stuff that’s useful to you.
Finally, don’t forget your personal life. I did that a few times. It was stupid. If your initial response to that advice was “Lol, I don’t have a personal life,” then get one. Seriously.
Did you ever think that you’d made a huge mistake getting into this field?
Not for one second. Even in pre-commercial-internet 1989, it was obvious to me that software was going to rule the world.
That said, it’s a very different world now. Back then, a college degree was optional. Now, not so much.
At the same time, there was no GitHub where you could show off your open source chops. It might be easier to get a position without school now if you’re really good. You can create something and show to the world. Back in the day, the best you could do was brag about the rig you put together at home.
I have a creative streak, but I can’t draw a circle. I’m dangerous enough with a paintbrush that my wife won’t let me paint the basement. I’ll never be the vocalist William Shatner is. So, the closest I’ll ever come to art is writing with code or words. This is the best job I could ever have.
What mistakes did you make that you think others following in your footsteps could learn from?
I’ll repeat myself. Don’t forget your personal life. No job is worth sacrificing yourself or your family for.
Who has influenced you the most so far in your programming journey?
P.J. Plauger’s books and columns still resonate with me today, even though it’s been a decade since I wrote C/C++ on a regular basis. I wish I could get my hands on issues of Computer Language and The C/C++ Users Journal just for his stuff. He often wrote about his concept of “good enough,” which was a novel way of expressing how the perfect can be the enemy of the good. That’s a trap I would fall into without his voice echoing in my head.
Michael Swaine is another columnist that had an early impact on me, all the way back when I received issues of Dr. Dobb’s Journal in the mail while stationed in Germany. He often speaks of coding in terms of art and craft. We engineer-types need that.
And of course, there’s my dad. (He doesn’t have a web page.) He wasn’t a programmer, but I like to think he might have been if he had been born in a different time. Everything I read about the true hacker ethic when I was learning my way around computers I had already learned from him before I was in high school.
What programming reference materials can you not live without?
I don’t have a career without W. Richard Stevens and his network and Unix programming books. They’re still on my shelf, and I just used them a couple of weeks ago to finish a Python script because it was easier to read what I needed out there than try to find it on Stack Overflow in between the off topic! tags.
What’s something that no training/bootcamp/degree could have prepared you for?
What I said before: Look past the code and learn about the business. Bootcamps show you how to use the tools. Learning why will set your career in motion.