Pirobits
  

My experience using GitHub Copilot one week as a Software Engineer

alberto avatar
ai
Alberto Sola · 5/11/2024 · 3 min

These past months I have been using ChatGPT in my day to day as a software engineer but, what about tools like GitHub Copilot? This week I've been testing it to tell you about my experience developing with an AI assistant.

GitHub Copilot is a code assistant based on artificial intelligence, which suggests code ideas through autocompletion based on the context, so the more expressive you are, the better it will understand it and the higher the quality of the code. In addition, it understands everything that is written so it can suggest similar code patterns.

During this week I set out to use GitHub Copilot together with my Visual Studio Code editor, to finish some advanced casuistics I had to develop that are more complex than a simple CRUD.

On the one hand I think it has allowed me to go faster, because thanks to the code suggestions it forces you to make decisions, evaluating if they are correct or not and avoiding to fall into analysis paralysis. On the other hand there are many things that it is not able to generate correctly and I worry about the quality of the code or end up in local optimal solutions.

I have been reading studies that claim to increase productivity, but also others that claim to worsen the quality of the code. I think these studies will be very interesting in the coming years.

Throughout this week, I have noticed some advantages of using Copilot in my workflow:

  • It understands the context of the file and gives you suggestions similar to the other functions.
  • It breaks with the "blank sheet", offering you solutions to start from.
  • It allows you to resolve doubts and contrast ideas quickly.
  • It forces you to have a good notation so that models can understand what you want.
  • It reduces writing boilerplate code.

Conversely, these same advantages raise some concerns for me:

  • Many of the suggestions are wrong, there is still some way to go.
  • Most of the proposed solutions are not correct and have to be redone practically in their entirety.
  • Sometimes it can lead you to a far from optimal solution, so you can't forget to understand and understand what you really want to achieve.

In my opinion, I think it is helpful not because of the quality of the suggestions themselves, but because it reduces the changes of context, to have suggestions or to solve doubts, as well as to make decisions faster.

On the other hand, I think that the tool will empower the people who know how to take advantage of it, since it does not avoid having a deep knowledge of what you want to develop in order to correctly evaluate the suggestions it proposes.

We will have to be attentive to future studies that are made talking on the one hand about productivity, but on the other hand about code quality, error rate, etc. because you can be much more productive but you can also write worse code that leads you to have more problems and subsequently require more resources. Or maybe it also depends on the person. Because maybe a person who knows it boosts it while it can also have the opposite effect.

In any case I will continue to use these tools in my day to day life, but remembering that it is essential to use it shrewdly, carefully reviewing the suggestions and keeping a deep understanding of the code you write.

Did you find this article useful? Subscribe to my newsletter and take the first step to launch IT products faster. You will receive exclusive tips that will bring you closer to your goals.


Recent posts