Leslie's blog

Doing The Work

Here I am, back again, giving this coding/online business thing another crack. The landscape has changed significantly with the introduction of generative AI, tools like ChatGPT and Claude have supercharged the developer's ability to produce code. AI can write code faster than we can, and it has also been trained on huge datasets. Given you're working with a popular language or framework, you're in luck, right? I'm not so sure.

Being chronically online (I'm getting better, I promise), and being plugged into indie-hacker Twitter, my timeline is often filled with tweets from devs who advocate for getting tools like Cursor to do all the coding for you. In typical social media fashion, these posts are often written in a black and white tone, where if you're not doing [insert thing here] you are missing out.

I've noticed one thing, though: The people putting these posts out are almost always experienced developers. Now comes the fun part, someone like me who is a coding newbie, sees these tweets decides to take action. I log into my AI account and start prompting. The process goes something like this:

Right? Well, yeah I guess. The code works but something about this process doesn't sit right with me. I recently had an idea for a chrome extension that could take a URL, and then return the colour palette used on that page. Following the process above and got something that worked pretty well but it left me feeling empty. There was zero satisfaction or pride in what I created. I was making use of the Google Chrome extensions API to do certain things, but I didn't understand what was going on under the hood. This thing was running but I felt no connection to it. At that point, I made the decision to kill the idea, perhaps I will revisit it again someday. If I'm mindlessly copying and pasting code between my AI and the code editor, what skills am I actually building? None. I've completely outsourced the whole process to the machine.

If I could sum up my position on the matter, it's this: if we are putting stuff out into the world, we should understand what is going on, and feel good within ourselves before we release it. And this is not to say we should spend unnecessary time on unnecessary things that would prevent the product from being released. Far from it. I feel like we should feel some sort of connection to the stuff we're putting out into the world because, ultimately, they are a reflection of ourselves and what we'll accept as a standard.

This leads me back to my earlier point about experienced devs, and that is the critical factor here. As a novice, I should be focused on skill development, not the speed at which I can get something working. The experienced devs, who have cut their proverbial teeth, have developed the ability to critique the AI outputs, I haven't. If I was a dev who'd been doing this a long time, and along came a tool that could drastically improve my productivity of course it makes sense to use it. You are still leveraging the skills you've built up over time to ensure that what you're building is robust and works well. Whereas a novice isn't able to draw on this resource.

So, should newbies shun AI altogether? Again, no. I think the opportunity exists improve productivity, but in a different way. Often, I spend ages browsing the internet to get a solution to a problem I'm stuck on. Now, I can feed my error in, with some context and ask AI to help me fix it. By asking the AI specifically to not generate code, but to help you along to implement the solution yourself with its direction, we are turning the AI into more of a tutor instead of something that just spoon-feeds you the answer. This is where I think the value lies for novices.

The models at our disposal today are very flexible and we can prompt them in such a way that means we can still learn without being spoon-fed. Knowing how to use, and interact with AI is likely going to become a prerequisite in many jobs moving forward. So shunning their use is counterproductive, we just need to use them in a different way. Eventually we may be at the point where we're competent enough to outsource more to the model without compromising ourselves from a skill perspective.

Ultimately, code is a means to an end, a tool people use to solve a problem. So maybe I am completely wrong, and that we shouldn't care the mindless copy/paste cycle. Maybe the only metric we should care about is whether the product works. But my gut is telling me that isn't correct. In a world where AI-generated stuff becomes more commonplace, having good taste and a discerning eye will be increasingly important. As novices we have to do the hard yards to cultivate that ability. As with everything in life worth doing right, there are (mostly) no shortcuts, we do have this amazing technology now that can help us expedite the skill-building process.

I'm keen to hear what others think about this, it's something I've been mulling over for a while. Send me an email or reach out on X.


This post (Doing The Work) was last edited 1 month, 2 weeks ago.

#ai #coding