A few days ago, I posted a blog about the importance of mastering the fundamentals and writing code yourself to maintain your coding skills as a Software Engineer in a world where AI could easily be misused to worsen your skills.
The post I made picked up a lot of attention, but I felt it left a bit of ambiguity regarding which uses of AI are bad for our skills and long-term career.
In this blog, we will explore 3 of the good ways to use AI in your daily work as a Software Engineer, and uncover the 3 worst ways you could use it, which are secretly hurting you without you noticing yet.
My Background
So far, my experience in the industry consists of a 3-year Computer Science degree, a professional 2-month internship, and over a dozen personal projects varied across different stacks.
Some might think this is too little, while others might think this is a lot, but in reality, I have had exposure to AI tools just as much as any other person who has worked in the modern Software Engineering industry.
When I first joined university in 2023, ChatGPT was still coming up, and it was far from good. I remember it couldn't even get basic coding assignments like LeetCode Medium problems right, and there was no real advantage to using it then.
Fast forward a semester later, and it was already much better. Now it could solve these problems from memory, and even explain them and tutor you in DSA if you needed help anywhere. At that time, other AI models like Google's Gemini were gaining popularity as well, after being renamed from Google Bard. However, ChatGPT remained the star of the show.
In my third semester, AI started to experience a rapid period of improvement which kept going for two years until now. Around that period, models like Claude were rising in popularity, and in the following years new methods for using AI emerged, other than the chat interface which was the main method to interact with it.
Alongside the chat interface, you could now interact with AI from your CLI, you could open a sidebar with your favorite LLM in your IDE and tell it which file to work on, you could write a code comment and AI automatically completed the functionality you intended, and lastly, you could just open an application like Codex or Claude Code which presents you with a chat interface and has direct access and permissions to your codebase and all you have to do is just tell it what features to add and bugs to fix and it did it for you without you having to write a single line of code.
So as you can see, I have programmed before AI, I have programmed when AI was bad, I have programmed when AI is good, and I tried all the different ways to interact with AI and even had it do whole projects at a time.
Let's get into what I found to be the best and worst ways to use AI then.
AI Is Not Bad
I want to make it clear from the start that AI is not bad. AI is just a tool, and its impact on you, whether good or bad, depends on how you use it.
AI was built to be your assistant, not your replacement. The initial vision was to make AI augment your skills and improve your abilities, not succeed them and do your work for you. Once you realize that, it will be easy to see why the three below uses of AI are the best for your skills and career overall.
1. AI As A Tutor
One of the best ways you can use AI is by asking it to guide you and walk you through concepts you don't know. These could be a new library, framework, programming language, algorithm, or anything which you need to use but don't know how.
It is easy to fall into a trap and think "AI knows it so AI can do it for me", but whenever this thought occurs to you, I urge you to think one step further. What happens when something goes wrong and you don't know why because you don't know what you're working with? What if AI can't fix it either?
Simply using AI as your personal tutor to learn more not only makes you a more knowledgeable engineer, it also gives you control over the codebase you are working with if it incorporates certain technologies you don't know yet.
2. AI As A Pair Programmer
Another great way to use AI in your daily work is to use it to help you generate boilerplate code, fill in code blocks with autocomplete where you get the chance to read the suggested code, and code validation when you are done implementing something in particular.
I personally like to consult AI when setting up a new project to help me put in place the boilerplate code that will just exist every time no matter the type of project. This saves me time and allows me to focus on building the project rather than setting it up.
Coding alongside AI is a great way to leverage its power in your daily work without having it do the work for you too. While you are programming you could write comments of what you want the AI to code and it would suggest these code blocks for you to accept. There are two things I really like about this:
- It gives you the chance to contribute to the code, hence understand it, and more importantly gives you a chance to read the generated code. I would rather read a code block at a time than 5 new code files each at 200 lines.
- It is an environmentally safe, economically sustainable way we can boost our productivity as Software Engineers. It takes fewer tokens to generate code snippets, and what's best is that models which autocomplete code don't even need to run from massive data centers. Many local models like Gemma 4 and Llama 3 provide excellent code autocomplete functionality both free and on your own machine.
3. AI As A Researcher
I am all in for reading, but sometimes a simple answer online could be hidden behind walls of text which you need to read through to get. One thing I really like about AI is that it is great at researching the web and summarizing its findings.
When I am on the job and have a certain question which a Google search didn't answer, I like to consult AI and ask it to do some research for me from reputable blogs, respected programming forums, and official documentation.
Using AI for research helps me overcome uncertainty and find answers at a much faster pace.
Where AI Will Hurt You
Not everyone uses AI like that, and maybe some do, but still commit these few but extremely poisonous mistakes which degrade the very skills which made them engineers.
1. Vibe Coding
We have all heard of the "I stopped reading and writing code" epidemic. When I hear that, I usually ask myself "are they bragging or venting?" because really this is not something to boast about. If you're happy a machine can do your work, maybe find other work or get bigger responsibilities.
But why? On the outside, the idea sounds great. AI can now take a few instructions from you and do all your work, and if you're lucky it works on the first try and saves you a massive AI bill.
I wish the world worked that way. You see, when you let AI implement features on its own, a few things happen:
- It goes through your whole codebase, potentially exposing secrets, consuming a lot of tokens which cost you or your company a lot of money. It would be far cheaper if you knew which files to assign it or if you could do the feature by yourself.
- The more the AI generates code, the more code there is to audit. It might generate a single line, or several files at once. This could be overwhelming. Even as an intern, I learned to keep my PRs small, so that the person reviewing the code does not get overwhelmed and can keep track of the different metrics that make your code acceptable. More changes at once means it is harder for you to keep track of what changed in your codebase.
- It takes away from you an opportunity to learn and grow. Every feature you do not contribute to, or think you are but it is the AI in reality doing the work, is a missed chance to discover the different ways a certain solution can be implemented. This means that years of vibe coding do not amount to a few months of experience. Lack of depth is lack of growth.
2. Delegating Decision Making To AI
You might think that just because an AI is better than you in a particular skill, it should handle the decision making. However, AI might only be better than you for now.
As you learn and get more experienced, you will understand where some of the more senior decisions come from, and be able to make them on your own. But for as long as you are inexperienced, do not rely on AI making technical decisions for you. Rather, do your research, consult more experienced people, and make the best decision based on pros and cons.
If you let AI handle the decision making, eventually you will have a poorly welded solution which fails under production. Even if AI is very good, it has a limited context window, and the bigger the app gets and the more decisions there are to make, the worse the solutions it will provide.
Moreover, if it keeps taking technical decisions for you, you will never learn how to make your own technical decisions, and again hinder your growth in the worst way possible.
3. Ignoring Code Quality
This is one of the biggest mistakes I made during my internship. I thought that as long as the application worked, the underlying code structure shouldn't matter so long as it is efficient.
However, in a development team, app functionality and code efficiency are not the only factors that matter. Code readability and maintainability are what allow your team to understand your work and build on top of it.
Even if you were a single developer with no team, looking after your code quality will guarantee you won't spend a lot of time rereading your code when you come back to it.
AI can write very good code, but not every AI-generated snippet meets the coding standards that are expected by your team. If you let AI code by itself without reading the code and making sure it is satisfactory, it will build garbage on top of garbage, and eventually the technical debt will grow too big for you to resolve.
Therefore, don't be me. Validate the AI code or else you'll spend a whole week refactoring an entire codebase.
Final Remarks
AI is here to stay. Even though many people don't like it, it has proven to be invaluable in terms of the productivity boost it generates.
AI is an excellent tool if leveraged correctly. Don't swim against the tide. Learn how to use AI the right way, and make yourself irreplaceable.