How to AI When You're a newer Dev
For Starters:
We've heard about AI ad nauseam at this point. But a question we're all probably asking is: Where do I fit into this paradigm?
The Rub
AI has been around for decades. If you've played against a computer on any game, used any modern email application, or had any sort of automation in your life, AI was probably working behind the scenes.
What most people are talking about nowadays when they use the term is "generative AI". That is the ability for AI to generate text, photos, videos and so on. Since the rollout of ChatGPT a few years ago and the countless number of LLMs (and now agents) that have followed, we have more selection than we can reasonably keep up with. Added to the selection fatigue, anyone writing real software in a production environment can tell you that AI is augmenting the way software is being written today.
Along with that is a waterfall of hype, fearmongering and straight up lies about what this (sort of) new technology means for everyone. With respect to whoever is reading this, the "everyone" I'm talking about is software engineers. Yes, this includes the other adjacent terms for what I believe is basically the same thing: programmers, developers, etc. Of course there are many engineers with much experience writing software that have a broad spectrum of feelings and opinions on the subject. You don't have to look far online to hear them. Let me be clear: though I totally empathize with someone who has grown accustomed to writing software a certain way, spent thousands of hours manually writing code, figuring out why deployment builds were breaking, and debugging legacy decisions, they are not the focus of this discussion.
The fact is, despite how challenging this time is for senior engineers, I believe the people who are or will be the most affected by this change are newer developers: the ones who are just starting out, the ones who are trying to break into the industry, the ones who have less than 5 years of experience.
Why do I say that? Because senior engineers generally have a wealth of experience and knowledge to fall back on. They have seen the evolution of software development over decades. They have a deep understanding of core concepts, architectures and best practices that AI simply cannot replicate.
Newer developers, on the other hand, are still building their foundational knowledge. They may not yet have the experience to critically evaluate AI-generated code or to understand the nuances of software design that go beyond mere syntax and structure. They may not have developed the ability to "sniff test" what AI is presenting confidently as a solution. For them the game has changed perhaps before they even learned the rules. That's hard, really hard.
So what is the less-experienced to do about this change...a massive change for an industry that has always been acquainted with it? I'll list some things that have helped me as a newer developer working professionally for about a year and a half.
1. Understand How the Technology Works
By this I do not mean a person needs to be a ML/AI expert. But is it reasonable for someone to effectively use a tool without a basic understanding of how it works? Similarly, invest some time in understanding how generative AI works to be able to wield it effectively. LLMs have been classified as "autoregressive transformers". What does that actually mean? "Transformers" in this context has to do with their architecture of neural networks. It somewhat resembles how networks of information communicate in our own brain, which is part of why it's quite effective at relating text of one kind to another. Now what about the word "autoregressive"? This simply means predicting the next item in a sequence based on all the previous items. You might liken it to autocomplete on your phone. So in a general sense, what does that mean about the technology of AI? Does it really think? Does it really know the difference between the trade-offs of a for loop versus case statements? No. It's generating text based on the previous text input and mathematically predicting what the next word or "token" should be. This is why LLMs seem to struggle with logic, because they don't really have it. You ask a LLM to paint a line down the middle of the road and it'll paint right over the top of your car. It will do similar things with text and code. That being the case, you as the engineer have to fully own the logic in the application you're building, because the LLM will miss something fundamental very easily. Understanding a little about how the technology works will keep you in a state of healthy skepticism of what it's offering up as a solution.
2. Practice Building Manually
In a world where AI agents can quickly change or write multiple lines of code in multiple files, many engineers are finding themselves typing less code. Especially for someone newer, this can be a problem, as skills can quickly atrophy. Much like a muscle, we all know if we don't use it, we lose it. So take time to manually build stuff periodically. I don't think you have to do a ton of this to keep those paths active in your brain. Just building out simple pages, functions, or even exercises on freeCodeCamp can do you much good to keep your mind sharp. After all, we are spending more of our time code reviewing these days, so there's a greater need to know how to build things bit by bit when we invariably have to step in and refine AI output. Doing this is often enjoyable and it helps us appreciate the powerful tools we have even more.
3. Use AI as a Tutor.
This is perhaps one of AI's greatest advantages for a newer dev. Having an AI explain code to you line by line can be tremendously useful for someone just trying to learn a programming language or new concept. LLMs have proven to be pretty effective at this. And not just explaining code, but having it explain things in simple terms (explain it like I'm five), illustrating it, or having it explain why I should even care can be quite empowering. It's great because you can use it to help you learn the best way for you. That's powerful because we don't all process information in the same way, and that's ok. AI can be used however it's useful for you! Of course, like a chainsaw, it has to be used properly. Having it simply give you answers to solutions is not going to pay long-term benefits. Instead of doing that, have the AI guide you to the correct solution. Ask it: "Help me understand what questions I should be asking about this problem? Is my approach here logical? Based on my code, what gap in my knowledge is apparent and how can I improve my understanding of it?" If you use AI in a thoughtful way like this, it can be an accelerant to your learning. I'd certainly encourage talking with senior devs as well on these same topics. They will often have some helpful insights you haven't considered. However, just because someone is an excellent engineer, that doesn't necessarily mean they know how to teach well. In fact, many can be quite confusing in their explanations. Here again, AI can be used as a tool to refine understanding.
Finally:
AI has changed the landscape of engineering and it can feel daunting to someone newer. But this tool can enhance your learning and proficiency if you use it wisely. So don't give up and don't be discouraged! Keep learning and building your skills. Your future self will thank you.