Software developer skills just got better with AI

Source – Shutterstock

Struggle with coding? AI can take software developer skills to the next level

  • AI has the greatest potential to enhance software development across all industries by making it more efficient, reliable, error-free, and quick.
  • GitHub Copilot helps improve developer productivity.

People are exposed to artificial intelligence (AI) in both their everyday and professional lives more and more every day. Software developers’ role is already seen to be changing where AI is effectively assisting human developers at every level of the development process. In fact, software developer skills have actually evolved now in so many ways.

AI can be used in a wide range of programming-related tasks, from helping programmers to complete the code to teaching users how to use new features and doing searches within the code. According to a Forrester study, AI has the most potential to drastically improve software development across all industries by making it quicker, more effective, error-free, and more reliable.

The way developers operate is changing as a result of AI, which has increased productivity, quality, and speed significantly. Since software development is poised to experience a significant transition, it will only get better. This is already being demonstrated by GitHub, one of the biggest platforms for software development in the world, with Copilot, which can translate natural language prompts into coding suggestions across dozens of languages.

Having said that, Tech Wire Asia had the opportunity to speak with Oege de Moor, Vice President of GitHub Next, to discuss Copilot and how the push for AI can help in educating a new generation of software developers.

Could you describe how GitHub Copilot works and how it improves the lives of developers?

GitHub Copilot is built with Codex – a descendent of GPT-3 – which is trained on publicly available source code and natural language. Because it was trained both on source code and natural language, you can write a comment in English, and then Codex will suggest the code that follows. The technology works similarly to auto-complete in word processing, but writing code instead of plain language and completing whole functions at a time. When you type in your editor, an excerpt of your code is sent to the AI, which responds with ways to complete what you’re typing.

GitHub conducted research to see how Copilot impacts developers from three different angles:

  • Developers often talk about the value of staying “in the flow” and the positive impact it has on their productivity, creativity, and overall happiness. In a survey distributed to 17K developers during GitHub Copilot’s technical preview, over 75% self-reported that when using Copilot, they spend less mental effort on repetitive programming tasks, focus on more satisfying work, and stay in the flow.
  • We also calculated from the telemetry in the technical preview that when Copilot is used for popular programming languages, 40% of new code is created with the AI.
  • As an example of the impact we’ve observed, it’s worth sharing early results from a study we are conducting. In the experiment, we asked developers to write an HTTP server – half using Copilot and half without. Preliminary data suggests that developers are not only more likely to complete their task when using Copilot, but they also do it in roughly half the time.

Until now, coding involved repetitive tasks, and required knowledge of many minute details. These aspects of coding detracted from the truly creative work that developers enjoy, and they slowed developers down. Now, AI technology can eliminate much of that repetitive work, and developers are no longer thrown off task by having to search the web for those minute details.

How did the concept of using AI to improve developers’ experience and learning come about?

GitHub is the home of open-source software. All the work that was done in public represents a tremendous amount of collective expertise of the open-source community, and we were looking for ways to unlock it so that every individual can access that collective expertise. When looking around for technology that would make this possible, it quickly became clear that OpenAI’s models were the best choice. We started working with them in July 2020, and in just a year we were able to ship Copilot.

How can students or aspiring software developers leverage Copilot to learn to code? Have educational institutions and educators begun adding Copilot into their list of tools to help teach coding?

Copilot takes the ‘boring’ out of coding. In particular, students can focus on learning timeless concepts, instead of struggling to learn details of today’s APIs.

Some learners tell us that with Copilot they write better code: the comments that explain what the code does are more precise and that means you get better solutions, and they write more tests because that takes less time with Copilot. Tests are important for learners because they help them understand when their code (or indeed suggestions by Copilot) is not quite what they want.

Copilot use among educators is still in the early days, but as a former university professor I can tell you it means you need to think of exercises that are wholly original, where the answer is not easily available in thousands of places on the internet. That’s hard, but it makes the learning experience more rewarding because it focuses the student on the timeless concepts.

Is GitHub’s Copilot the same as low-code no-code platforms? If not, what are the differences?

Dedicated no-code tools typically make it easy to get started, but you quickly hit a ceiling when doing more advanced tasks. Copilot instead removes the entry point into normal programming, but there is no ceiling: you are working with the same powerful tools as the experts. I am therefore not sure that “natural language only” tools are a good idea, as they would constrain what you can do. We want a smooth path from ‘instructions in English’ to ‘working code’, where there is no limit to how far non-programmers can go.

What’s your view on the future of software development? Will we see AI being incorporated into more tools?

In the future, every aspect of software development will involve an AI-pair programmer: not only for code creation, but also for code review, testing, and maintenance. This will enable developers to focus on the what and get help with the how in all their work.

GitHub Copilot has shown, for the first time, how an AI can make the creation of code faster and more enjoyable. Although we’re only at the dawn of a new era of AI-assisted coding, we already see incredible benefits with Copilot: greater satisfaction, 40% of new code created with the AI, and a 42% increase in speed. These benefits will accelerate enormously over the next few months and years.

Will this change the job of developers? Sure, but for the better! I do not foresee a future where Copilot produces anything useful without human input, but I do see unbridled human creativity, no longer bogged down by irrelevant detail. Programming is now about design – decomposing a large problem into smaller ones – and then specifying what the smaller blocks should do. The AI will fill in the details.