Using AI For Code GenerationAre you trying to replace yourself? | Date | ||
---|---|---|---|
Category | Dev | ||
Author | Aron | License | CC BY-ND |
I can’t help but reminisce about my early days of coding. If you’ve never installed VB 6.0 and written a slot machine game that replaced label text through a series of if
statements, you really missed out. Did it matter that the code quality was shit? Nah, not really.
It didn’t matter if it was good, it just had to work. See, in those days we didn’t have ChatGPT, Claude, or Grok to help us write our code. Hell, there wasn’t even a Google search to help you find some obscure Reddit post or Stack Overflow answer from a Senior Dev.
Come to think of it, I don’t think Senior Developers existed then. We were just “Developers” or “Engineers”. -Nerds who would rather sit in front of an expensive light-mode-only IDE on an 800x600 faded CRT display than go outside and get Vitamin D.
We poured over printed documentation and then we fucked around until it worked. When it worked, there was a huge dopamine rush. “I had a problem and I solved it using a programming language on my PC without any help or guidance.”
It was so fulfilling and positive. We did shit few could do. We were heroes in our own home. Fuck, I remember building a custom Winsock chat application that my ex girlfriend and I used to avoid paying long distance telephone rates (remember those?) when I was in college.
Could you imagine?
A software engineer is someone who solves problems. Notice how I didn’t say that a software engineer is good at programming. A software engineer is someone who has a problem, asks the right questions, then applies that understanding to their programming language of choice to solve the problem.
A software engineer knows how to debug.
I used VB 6.0 because it was all I had access to, both in awareness and possession. I didn’t know about Python yet and I already had a VB 6.0 CD-ROM I got from the public library. I had a book that walked you through creating basic VB 6.0 applications; that was it. There was no GPT.
If I wanted to make Label1.Caption
change if value > 10
, then I had to essentially fuck around with it until it worked.
Sometimes it took days or even weeks. But once you clicked run
and that Command1_Click() function you wrote worked the way you wanted it to? I’m telling you that feeling was beyond any dopamine reward computers could give me today.
I honestly miss the early days of my career simply for that aspect alone. As an engineer, you recognized the problem, you theorized an approach to solving it, then you took to the IDE and hacked away at it until it worked. Above all, you learned what you did to make it work and moved onto the next project with your newfound knowledge.
Do you see where I’m going with this?
You’re cheating yourself out of the fulfilment that comes from solving problems on your own. It doesn’t matter if your code sucks, that will improve as your skills increase. It doesn’t matter if the problem is miniscule and 10,000 other developers solved it, too. None of that matters. The fact is, you were inspired to solve it, you solved it, and you learned something in the process.
Having AI write your code for you removes all of that from the equation and just produces shitty code. You learn nothing from AI.
Where’s the reward in asking GPT to write an application for you? Did you learn how to articulate the problem? Did you learn how to research and find solutions that work? What do you know about the application now moving forward? What did you learn, if anything, other than to sell yourself short and rob yourself of a rewarding experience?
AI is trained on code from Stack Overflow, Github, and other sources. Do you know how much bad code exists there? An overwhelming majority. That means the chances of AI giving you something that might work, but be inefficient or written poorly are pretty good. Would you know it?
AI also doesn’t have the sense of reward that comes from researching and writing for yourself, which means it has no incentive to give you anything worthy of a code quality review. It only learns what the algorithm teaches it and it only produces what it thinks might be a viable solution; likely based on a StackOverflow post or repetition in Github repos.
Basically, you’re keeping yourself at the introductory level of engineer forever by relying on AI to produce your code.
Instead of having AI write your code, read documentation. I strongly advise avoiding tutorials because they’re very much like AI in the sense that someone else already went through the learning phases and quality improvements needed before presenting you, the viewer, the final product; robbing you of the actual learning experience. Instead, read documentation and learn for yourself.
Personally speaking, I was able to learn Golang through reading the vast amounts of documentation on the language plus just fucking about with it until shit worked. It helps that I already know other programming languages, but the process is still the same.
Does that mean AI is no good? Absolutely not.
Instead of replacing yourself as the engineer, utilize AI for the assistant that it is. AI is really good at restructuring JSON, sorting arrays, and alphabetizing lists to name a few tasks. It’s good at the trivial things that clean up your code and help you become a better engineer. Think of AI as your code formatter.
So in closing, put away the prompt and find a portal of documentation. Source many different docs and just read through them before even hitting the code editor. Then, code, code, code, code, code. Don’t be afraid to fuck up, be bad at it, or even fail miserably. -That’s all part of the process. Once you have your breakthrough moment, it’s all downhill from there.
And that is what will make you an engineer.
If you’re still not convinced, have AI do your coding for you, but tell it to omit comments from what it generates. If you can’t explain what every piece of code does yourself, you’re exactly the person I’m referring to in this article.
I’ll extend an olive branch here and say that I don’t think any less of people who want to build applications. I’m more concerned about the lack of engineering prowess that surrounds the developer community and the growing amount of reliance on AI that results from it.
It’s as if we’re too scared to do things the hard way. As if Einstein came up with his theory of General Relativity overnight.
Thank you for reading.