Blog Home RSS Kelvin Jackson

If You Don't Like Coding, Why Are You In This Industry?

2024-09-12

If you're reading this, you probably either work in software, work on software (even if it isn't in your official job description), or are tech-adjacent enough that coding is a part of your life. You've probably also heard about — but hopefully not fallen for the hype around — so-called "Generative AI"-based coding assistents, such as Microsoft's Copilot and the more widely known ChatGPT. You may or may not have used them, and if you have you may have just played around with them without using them for work tasks, but you are at the very least aware that many programmers — including professional software developers — are handing over part of their coding work to these products.

Leaving aside all of the (entirely valid!) concerns about subtle bugs, or copyright issues, or the general offensiveness of letting an algorithm stand in for human creativity, I have one simple question for anyone using generative AI for programming: don't you like coding?

If you like coding, why does Copilot feel like it offers you anything, when it tries to do so much of the coding for you? Why would you actively choose to use a product that automates the fun part of the job, leaving you with only the trickiest bugs?

And if you don't like coding, why are you working as a programmer in the first place? If you don't like coding but still care about software, you could still work for a tech company on the more human- or perhaps architecture-oriented side, and let the people who actually do like coding do that part of the job. Nothing is stopping you from switching into a role that plays to your strengths and preferences, rather than trying to eliminate the need for a role that plays to other people's strengths and preferences.

The core element of a software developer's job is breaking down problems into their component pieces and making decisions about how to handle each part, including all possible edge cases. This is something most of us find fun — you get to do because you enjoy it and are good at it, not simply because you're forced to do it. If you would rather avoid making those decisions entirely on your own, you can import an existing (and thoroughly tested) library written by someone who actually has taken the time to make them — which is a far better choice that handing them off to a machine of questionable accuracy that you will have to babysit the whole way through.

If what you really want is an even higher-level language that makes even more abstractions around the actual hardware and low-level code, allowing you to program without thinking about nearly as many minutiae, you should build that (or at least support someone else who is doing so). You won't get that from ChatGPT or any other statistical code generation system — computers are deterministic for a reason, as are programming languages, and undoing all of the benefits of that deterministic nature for a short-term boost in apparent (not real!) productivity is truly inane.

And if, instead of writing lots of code yourself, you genuinely prefer debugging and reviewing other people's code, that's a job you can do in conjunction with actual human developers. The rest of us will thank you for it.

So again: if you don't enjoy coding, why are you even in this industry? If truly like your job so little that you expect AI to do it for you, consider handing it off to a human being who actually enjoys it.