On Jun 29, the headline of many tech channels was the revelation of GitHub Copilot, an AI that writes code by the developer's command. This is not the first time an application of artificial intelligence has been used in software engineering, but it might be one of the most important milestones when considering its implications on how we learn to be an experienced developer.
Captain Dev, Copilot AI Reports for Duty
So, what is GitHub Copilot? Basically, Copilot is an AI that is delivered as a VS Code extension. GitHub promotes it as an revolutionary AI that is more than an auto-complete assistant. GitHub claims it can sense the intent of a programmer when he/she starts writing a new snippet and uses the context provided to synthesise code to match.
Under the hood, Copilot generates code using Codex, a variant of GPT-3 by OpenAI. When you write, it tries to understand the current state of your code and then generates relevant snippets. Given GPT-3 has been shown to be capable of generating multiple types of text in response to human prompts, it comes as no surprise that it can also write code.
The benefit, according to GitHub, is that Copilot can save developers time in building an application with new external components. From completing a database query to integrating a payment service, just write what you want to achieve in pain language and Copilot will write an example code for you.
The argument behind the claim, which is simple-seeming, is that the task of integrating a third-party component often requires only a few lines of code, but before developers can write those few lines of code, they have to research the documentation or read tutorials to learn how to use the new component they are integrating, which can take hours or days.
Junior Developer as a Service (JDaaS)?
Gosh! "Did Github just make a junior developer as a service (JDaaS) product!?", this is my first reaction when I read the intro of Copilot.
Who finds it difficult to read and understand documentation? Who wants answers from StackOverflow the most? Who spends most of their time doing just coding? Junior developers.
Experienced developers would know most of the time spent is actually not programming, but writing tests, docs and communicating with tons of stakeholders. Coding is only relatively a small portion of their time.
Now that Copilot is able to generate simple code by verbal commands, pretty much like a senior briefing a junior on what to do next in a project. I have to say this could be the beginning of JDaaS.
Copilot, where are we heading?
Now, with the arduous first step in creating any application - figuring out how the different components work - removed, how would this kind of new AI affect the ecosystem in tech?
I have an interesting view. It may end up holding tech back than the intended opposite. It is a threat to the tech industry. Not because they are powerful, but that I'm so afraid that we will lose the chance to learn to be experienced developers and hence hindering the potential of our future technology development.
The reason is that while Copilot is designed to help developers write code more quickly, in doing so, it removes the good part of it - the opportunity for us to experience the pain and the frustration, and the fun and the feeling of achieving upon figuring a difficult task. Everything Copilot removed is essential for a junior developer to learn to be an experienced developer.
With this development, companies will be more reluctant to hire junior developers and train them to be the next generation developers too. In the US, even a junior web developer can cost you $80,000 a year. Knowing an AI can do most of the tasks a junior can do, what would you do as an employer?
Copilot is a genius application, but it could be the thing that makes junior developers less likely to be hired and become experienced leaders one day.
Brace, Brace, Brace
As a tech leader, I am glad that artificial intelligence has bought us all sorts of new tools to allow us to do our work more efficiently. For example, when someone wants to find out something about their medical condition, you can just say it to Google Assistant and you would get pretty much professional-grade answers like a real doctor. The benefits of AI are just undeniable.
But sometimes I feel like the advance of AI, by achieving higher efficiency, takes away something that we actually enjoy doing or at least something that we need to go through it. Figuring things out yourself and making mistakes is the necessary process for learning to be an expert.
Now, the impact of AI on the tech industry has never been this close. Like other industries, we also have to start accessing its impact on us and adapt. In the long run, I hope that AI will make junior developers more experienced and not less valued in the industry. We need a healthy supply of talents.
To ensure that we have people who can fly planes in the future, we need first officers, not captains!
Top comments (0)