The past few years have been a rollercoaster, to say the least.
At the peak of the pandemic, I decided to take a sabbatical from my stable job in software to embark on a solo road trip across the US while polishing my programming skills remotely full-time. Over 2,000 Github commits later and I can confidently say that I’ve made some massive progress from where I was over 5 years ago when I first began writing code.
- I can build and deploy a full-stack web application from scratch
- I’ve learned how to adopt modern development practices such as testing (it’s modern to me, okay?!), clean architecture, code quality tooling, and basic CI/CD
- It’s made me an overall better problem solver, troubleshooter, and systems thinker as a result
- My open-source projects have even garnered some (minor) attention for their usefulness
Despite these strides, I’ve officially decided to “quit” programming.
I know, I know. Let me explain. First off, this wasn’t an easy decision. I’ve spent countless restless nights tossing and turning, weighing the pros and cons, and digging deep into my psyche in an attempt to discover what I actually want out of life.
In this post, I’m going to go over the general thought process behind this decision of mine.
The Original Plan
The plan I laid out for myself initially was to put my nose to the grindstone, build out portfolio projects over time, and use those as leverage to land a job as a software developer.
I’ve since built out roughly a half-dozen web apps (some unfinished), open-sourced a Hugo theme and site performance testing tool, and even re-engineered the football simulation passion project I’ve been chipping away at for years. While none of these projects took off like I hoped they would, each experience brought me one step closer to professional status.
Letting Go of Sunk Costs
Over time, I began to realize that while I enjoy programming as a hobby and building personal projects, doing so professionally simply doesn’t align with my interests, career goals, or natural proclivities (more on that later). I could probably pass an interview for a job as a junior backend developer with relative ease at this point. But is that really what I want? Not exactly. At least, not as much as I thought I did when I set out on this journey.
Unfortunately, it took me 2 years to figure this out, but it is what it is. I feel much more at ease following my heart than falling victim to sunk costs.
Not a Total Waste
That’s not to say all that time and effort I spent coding has completely gone to waste. Technical skills can come in super handy within adjacent disciplines such as digital marketing.
Off the top of my head, some of the benefits include:
- Automating manual processes
- Building web pages
- Interfacing with APIs
- Manipulating data
- Having a deeper overall understanding of how the web works
- And more…
The type of knowledge that puts you a step ahead of others who may not have taken the time to dive deep into those topics.
Why I’m Moving Away From Programming
Professional vs. Hobbyist
One of the realizations I came to is that there are many differences between programming professionally vs. as a hobby. While I haven’t experienced the pro side of things extensively myself, it’s quite obvious when you think about it.
In a professional capacity, most of the time you’re working with an existing codebase that may or may not be legacy-based. As a junior, you’ll also likely be focusing more on menial tasks such as testing, refactoring outdated code that’s a pain to sift through, and generally engaging in other drudge work to free up senior devs so they can focus on more critical and interesting problems. That is until you’ve built up a level of trust and first-hand experience working in a production environment.
There’s nothing wrong with this per se. But the point I want to make is: you have to love programming to enjoy this process. I personally despise testing which was one of the first signs that led me to start questioning this as a viable career path.
Programming is Logic
And a lot of it. You have to be passionate about solving logical puzzles. That’s 90% of the job. I don’t agree with the notion that programming has no creative side to it. That’s actually the part I enjoy, especially the planning and design phases. However, the majority of your time will be spent thinking logically through problems, gluing various software libraries together, and stuff like that.
I come from a technical support background. This meant interfacing with customers constantly and finding solutions to their problems that way. Moving further away from the business side of things is actually the opposite of what I want to do. I enjoy working with others just as much as I do with technology.
Market forces, product development, consumer psychology – these are all topics that I find far more interesting than logical problem-solving. Obviously, that’s a personal preference and will vary from person to person.
Reasonable Thoughts on AI
I’m not one of those hype-train riders who believe AI will replace programmers within the next 5 years. However, I do believe there are certain implications for those new to the field that should be considered.
The barrier to entry or threshold for writing professional code is only going to increase as AI becomes more prevalent.
AI-driven abstractions are prohibitive for new learners. You have to know what prompts to pass the AI for optimal results, so exposure to advanced topics is a prerequisite for generating advanced code if we ever get to that point.
This can be looked at as an accelerant or a deterrent for novice programmers. On one hand, passionate learners will have no problem adapting to this. However, this comes at the cost of being tempted by shortcuts and potentially decreasing one’s exposure to fundamentals over time.
The Myth of Zero Math
Sure, you don’t need math to write basic CRUD applications. If you want to get to the next level you might. I was never really good at math. I never liked it much either. Again, this goes back to the logic-heavy points I made earlier.
Most programmers I see who excel in their chosen path don’t fit this archetype. They enjoyed math growing up and excelled in it without trying too hard.
The conclusion I came to was this: you have to be the type of person who at least likes math to become a great programmer. I don’t want to just be your average run-of-the-mill programmer (or run-of-the-mill anything for that matter, discipline aside). I’d rather be exceptional at my unique combination of skills. Whether that includes some light math or not, let me put it this way: I’m not that guy, pal.
Am I Even Interested in Computers?
Computing is quite fascinating. Really. It’s amazing how much the field has progressed over the past few decades and what we now take for granted as a result.
But am I interested enough in the how and why behind it all?
I recently began diving into learning more about computer systems. The gaps I had in my knowledge as a self-taught developer were vast. What I noticed is those who grew up really interested in computers knew a lot of this stuff inherently. They maybe took apart computers purely for the sake of figuring out why something works the way it does.
I never really had that engineering mindset. I like what computers can do for me, and what I can make computers do. How that happens isn’t all that interesting to me.
Caring enough about these things to feel passionate about exploring them further is, in my opinion, a prerequisite for someone aspiring to ascend beyond the likes of code monkey status.
So what’s next for me now that I’m hanging up the proverbial cleats?
I’ve always been interested in digital marketing. In fact, I have a good amount of experience in it from all the side projects I’ve worked on over the years. I even spent some time many years ago as a freelance copywriter.
However, my plans are much more ambitious. I want to become an extremely well-rounded marketer and gain more real-world experience while using my technical skills as leverage to stand out in the field.
Plus, I can build software MVPs now. Can Billy the Brand Marketer?
Still Going to Code?
This dramatic proclamation of mine doesn’t mean I’ll never write a line of code again. Namely, I’ll keep my Hugo theme up-to-date because I use it for this site and my writing. I’ll also continue keeping my skills fresh by working on personal projects. They’ll just be projects that I want to work on at my own pace. I’m hopeful this will bring back the joy I had for programming when I first started.
I’m also keen to jump back into building WordPress sites now that Full Site Editing is out of beta. While I love SSGs, WordPress is king in the marketing world. I may even pick up some freelance work in that area if it’s marketing adjacent.
Thanks for reading. I hope this gave you something to think about if you’re in a similar spot.
P.S. This is not an April Fools’ joke. It’s a complete coincidence that I decided to post this on April 1st.