Code literacy and code competence are very interesting topics of conversation at the moment. With AI doing a large amount of the investigating, planning and coding work lately, how do we make sure as engineers that we are keeping on top of the code that we write and how do we make sure that it's readable and understandable to everyone else in the team.
It occurred to me recently, speaking to some people on the topic, that maybe my willingness to pick up these tools, comes from being a self-taught software engineer. I don't have the same level of code literacy as some of my peers and while that hasn't been an issue, I'm able to catch up and learn faster with the use of AI.
Pairing with my agent and using it as a built-in rubber duck has helped my confidence and my understanding of the code. While for some people, these tools are just seen as "code monkeys", doing the work so we can sit aside them mindlessly watching the thought process, I am using it as a discussion tool, asking questions, building my knowledge to bridge any gaps in my education and understanding of what is going on.
While I don't trust the code, and constantly check for mistakes or places for improvement, I am able to ask questions and understand why certain choices have been made. Similar to the discussions I would normally have with senior team members.
I definitely understand some of the hesitancy to utilise the tools and they can definitely be daunting to start with but from my experience, these are the steps that I take to make sure that I am learning from the tool, not relying on it:
AI tools are a copilot: they shouldn't be in the drivers seat without someone keeping an eye on them to make sure they're on track
Ask questions: if you're unsure of why something has been selected or why a particular piece of code has been written, ask! If you don't know how it works, then you don't know that it works
Review everything: you own the code you write, not the AI agent. If you merge code that looks right but hasn't been verified, that is on you as the approver/author of the code
Understand the tools: there are many modes available across all AI tools, it's important to understand them in order to utilise them correctly. Just because the AI tool is acting the way you want, doesn't mean that it's the most efficient way to utilise it
Rubber duck it: AI is a pair programmer, use it the same way you would a rubber duck. Talk to it (out loud if you need to), ask it questions, make it check and re-check everything written to make sure that you're happy with it. Go over the same code suggestions with different models to receive the best outcome
The biggest takeaway for me when looking at implementing new tools, isn't about what's shiny and new or the latest workflows, but about mindset.
Staying in the driver’s seat means being intentional about how and when we use AI. We should not be defaulting to it, but at the same time, we should not be avoiding it.
It’s not about handing over control but rather about using AI deliberately, where it adds value, while staying responsible for the outcome.
Top comments (0)