We’re in a brave new world of collaboration between developers and AI. It’s clear that generative AI has incredibly powerful capabilities that continue to get better and better.
The idea of humans working side-by-side with intelligent machines is nothing new. They’ve long existed in TV, film, and the minds of sci-fi fans. In the 1980s, Michael Knight had K.I.T.T. and more recently, Tony Stark introduced us to Jarvis, Friday, Edith, and many more.
With the recent advances in generative AI, these machines are becoming a reality. For software developers, they present as AI code assistants. They become tools that not only help get the job done; when used properly, they can unlock your best developer self.
I had never used AI for software development prior to joining Tabnine. When I first started using an AI code assistant, I wasn’t sure how it would change me as a developer. After speaking with many of you, I know it’s something you’re curious about as well.
After some analysis of how developers have been using coding assistants, along with my own experiences, I’ve discovered that there are three ways of interacting with AI that have helped make me a better developer: remind me, teach me, and elevate me.
Much of the value of a code assistant comes from the remind me type of interaction. These are cases where you could easily identify the code snippet presented to you as the one that you wanted. You can choose in a split second thinking, Yeah, that’s what I wanted, and just accept the suggestion.
In the old days, you’d likely search Stack Overflow or keep a list of regularly used snippets handy and copy the code line for line. With GenAI, this code is being generated for you, with all the required adaptations to your specific context, and you can make a snap judgment that allows you to consume it without even thinking about it.
For example, say you’re reading a file line by line in Python. You’ve probably written this code many times before, and when you see it, you’ll know that it’s the right thing. The code assistant simply reminds you so you can accept the code and move on. The more senior of a developer you are, the more powerful this level of usage is.
The next level of interaction, teach me, can present in a couple of different ways. When using an AI code assistant to generate code for something you know how to do, you might be presented with a suggestion that’s not exactly as you expected, but after further inspection, you may be pleasantly surprised that there’s a better way to do it. Therefore, you learn something new.
On the other hand, maybe you don’t even know exactly how to accomplish the task you set out to tackle. Perhaps you’ve been asked to use a completely new API, language, or library. You could ask the AI code assistant to explain and discover the new API, language, or library. It would search through your local context and connected codebase to provide you with insight. With that insight in hand, you’d now know just enough to inspect the suggested code and determine whether it makes sense. It looks like something you could have written after spending some time on the problem. Maybe you have some experience with similar things in other frameworks/languages, or maybe it just looks like the sensible thing to do. By spending some more time reading the code and inspecting it, thinking through it, you convince yourself that it does the right thing, and you adopt it. During this process, you learn.
Imagine you have a task that requires you to write a SQL statement that includes an inner join — something you’ve never done this before. You can simply ask the AI chat for an explanation of how to use inner joins with examples:
Or imagine you’re creating your first Next.js application and you don’t know how to start. You can ask the AI chat agent to provide step-by-step instructions to you, right in your IDE, for setting up a new Next.js project. And while following the given instructions, you can continue to ask for more guidance:
Arguably the most beneficial level of interaction, elevate me is where an AI code assistant can really make you better by acting as a coach.
Say you’ve prompted the AI and the recommendation it’s made is something new and novel to you. It’s so new, in fact, that perhaps you don’t even understand it right away because you didn’t know that this method of coding existed. This requires higher effort and is potentially going to require you to prompt the AI for more explanation and references. You may even have to read more documentation before you’ve learned enough to know whether or not you can adopt the code. With this level of interaction, using AI opens up a new way of doing things.
The new ways of coding that AI can help you discover could be sourced from the model’s training data, code from other engineers in your organization’s repos, from fine-tuning of the AI model on your organization’s data, or coaching and constraints set up by experienced engineers at your company. Elevate me could present as feedback that your AI code assistant has added to a pull/merge request. The AI would point to places in your code that don’t adhere to rules and standards set up by your organization and could even provide code to resolve the issue.
For example, perhaps you’re making a REST request using the Python requests library and set verify to False. The code assistant can catch this and give you guidance to update your code, reducing the lift in code review for the lead engineer on your project.
You might also experience this interaction as you’re working through a codebase and come across a function that you suspect might have a better implementation. You can highlight the function and ask the AI to refactor and optimize it:
It doesn’t matter if you’re a novice programmer, a seasoned developer, or a domain expert — during a day of programming, you’ll likely stumble across all three levels of AI interaction. Certain things you’ll happily Tab through almost immediately, other cases will require more attention, and some will really help you become a better developer.
Like with many new tools, you might not notice a difference immediately. If you’ve not used an AI code assistant before, it might even feel a bit intrusive on the first day. Give it a week and allow yourself to learn where it’s useful and where it isn’t.
As we move forward, you’ll see more and more of the software development process infused with AI. Now is the perfect time to explore how an AI code assistant can remind, teach, and elevate you — so you can use one for years to come and elevate into your best developer self.
If you’re ready to try it for yourself, click here to get Tabnine Pro free for 90 days, or use the special coupon code ELEVATEME to get a full year at the discounted price of only $99.