GitHub Copilot was and is an awesome piece of technology. Imagine, AI is helping you to write code! Decades ago this was some sort of sci-fi dream and right now, it's a $10/month reality. But is it any good? Yes, it is...in terms of suggestions, it is very good, though not always. But there is something that worries me and has personally affected my work.
There is a lot of controversy around the moral side of the GitHub Copilot and the way it suggests code. We will not cover this issue in the article.
I was one of the developers who got early access to the product and, oh my, how it was cool. The first impression was extremely positive. I couldn't play enough with it.
GitHub Copilot could predict anything from comments to functions, from ending lines of code for me to writing complete blocks. The team developing this software is pure genius and the work they've done is insane. I realized "wow, this is going to be in my toolbox for a long" and you know what, I was ready to pay for it. My speed of development has significantly increased. On one of the streams, I built a fully functioning ToDo application just by writing comments, GitHub Copilot even worked with third-party libraries and was good at it. It is definitely a tech worth investing in or at least trying out.
It's not perfect. There are some gaps.
- Yes, it doesn't do a very good job at suggesting imports, and pretty often it is very annoying, especially when it blocks the IntelliSense folder view when you type in the path of the file.
- Yes, it sometimes misleads you with very bad suggestions and breaks your flow. Countless times I had to switch it off globally just to keep my mind focused on one task without interruption by full-blown pieces of code suggestions that have no meaning for my current task.
- Yes, it sometimes just sucks.
But still, it is super good.
I've been using GitHub Copilot almost daily (daily) for about 6 months and I will continue using it. It's great. But I found myself facing a problem. The problem, that I, as an ex-seafarer, was taught not to get into. The problem of the overreliance on technology.
After 6 months of daily usage of GitHub Copilot, I realized that damn, I'm focused on building stuff rather than coding. Which is not particularly bad, but I start losing the grip. It became a norm to me, that I would better write a comment explaining what I want to be done, rather than actually take the problem and write code for it. In cases when I have to deal with a nested array of objects, I will just rely on Copilot.
I noticed, that my algorithmic thinking started to fade away. Brain got used to just using suggested code instead of cracking the algorithms. The brain is lazy. Give it a quick solution and it's happy.
But wait, brain, this is not okay in the long term.
And it's not okay, at least for me.
There are two possible ways out for me.
1) Stop using GitHub Copilot completely 2) Start practicing LeetCode in my free time
Solution #1 is okay-ish, but not for me. I still want to have the benefit GitHub Copilot provides. The speed of development is truly insane and I love it, my bosses love it and I can achieve more in less time.
So, I have decided to go with solution #2. It's not perfect, but this would keep me in the loop and keep my brain working.
GitHub Copilot is indeed a state-of-the-art technology, but as with every piece of technology, overreliance on something is never a good thing to do. I've got used to it and it's my mistake. I figured, that without these fancy suggestions it's getting harder to write code - a big no-no for a software developer, especially with the current market conditions.
Use your tech wisely and never forget about your primary Software Developer skills