Coding Assistants and Not Feeling Left Behind

One of the things I've yet to really use for my day-to-day development are tools like GitHub Copilot. I've considered trying them from time to time, but the negatives I feel about them always outweigh any desire to try them. At the same time, there's still that nagging feeling I have that maybe I'm missing out or would get left behind if I ignore them.

I've often dealt with imposter syndrome in one form or another. Thankfully it's never been something that's completely paralyzed me, but I've sometimes found myself wondering how good of a developer I actually am. It's especially hard sometimes because it's also something I enjoy doing, even in my off time when an idea for a side project or proof of concept comes up. I'm often proud of my work. It feels good to create something. Sean Voisen talked about it as well.

For those of us who actually enjoy programming, there is a deep satisfaction that comes from solving problems through well-written code, a kind of ineffable joy found in the elegant expression of a system through our favorite syntax. It is akin to the same satisfaction a craftsperson might find at the end of the day after toiling away on well-made piece of furniture, the culmination of small dopamine hits that come from sweating the details on something and getting them just right. Maybe nobody will notice those details, but it doesn't matter. We care, we notice, we get joy from the aesthetics of the craft.

Asking various tools to build me a site through with vibe coding seems novel, might even be kind of cool, but it doesn't have the same feel. I feel like I wouldn't get the same satisfaction I get when I run code for the first time and it works (okay, so sometimes it might be the third or fourth attempt...so what?).

I also read about others who have used these tools with some success. I look at that and I'm not going to say that I'm not impressed. It is cool that someone with limited to no programming knowledge can build a tool that does what they need and/or want it to do. I'm not necessarily against that and I don't want to be the curmudgeon who is constantly yucking someone else's yum.

But to tie it back to those of us who do this for a living, I don't know how to feel. On one hand, I'm only beginning to imagine how this might impact the job market. In today's society, so much is focused on productivity and getting stuff out the door. So many companies and managers want to see high work ticket throughput and new features released. Will developers who have learned to really use the these vibe coding tools be able to get stuff out the door faster than devs not using these tools? It's something I can't help but be concerned about given the current job market (which can certainly change with time), and the fact that I still have 20+ years before I can think about retirement.

Now there also is a flip side. Work in the field long enough and you'll no doubt be assigned a rather pernicious bug. Some bugs are easy to fix. Maybe someone just missed or reversed an 'if' statement somewhere. Others can be much more tricky to diagnose.

Debugging computer code is a skill in and of itself. It's not always easy to figure out why a piece of code might not be working as intended. For someone building out a little tool, maybe it doesn't matter as much. But for those who are looking to get a job as a developer, it matters a great deal. I wish I was able to spend all my time at work building new features, new sites and new applications, but part of the job of every developer is to also track down bugs and fix them. I've never met a developer who releases perfect code without the occasional bug. Because of this, debugging and figuring out why something isn't working might is absolutely essential to the development life cycle.

Will the more methodical developers get pushed out of jobs in favor of the "faster" devs? Smart managers and good companies will recognize speed isn't all it's cracked up to be. They're wise enough to know that there's a lot to be said for being slower and more methodical to get good software out the door. But for companies who want to move fast and break things, code that might not be of the highest quality could end up getting released with the hidden bombs missed until it's too late.

I try not to be someone who discounts new technology or new applications. If something new comes out that can make my life better or my job easier, I'm often all for it. With tools like AI and LLMs though, I sometimes wonder if the issues I have with them, valid or not, might not matter in today's society.

Capitalism doesn't care whether you live or die.

I'm not trying to become too political with this, but the above statement, however blunt, isn't far from truth. We're all just trying to get by in the world and the push for "maximizing shareholder value" is strong and the results aren't always fair.

There's also the energy question. These AI tools and LLMs slurp up a lot of power. The energy draw of these LLMs are even bringing decommissioned nuclear plants back online. Don't get me wrong, with climate change, I'm all for producing more energy from nuclear and green energy, rather than fossil fuel plants, but I feel like there could be far better uses for the energy generated.

I believe the strengths of good developers can outperform what the tools can produce. Even still though, I have concerns that companies and others won't necessarily see it the same way. They'll see the “faster” output and mistake that for good output. I'm not planning on jumping on board the AI hype train, but I can't help but feel concerned and worried about being left behind.