It hasn't been a week since ChatGPT launched and it already has accumulated 1M users. Which explains how much content created by this LLM has been shared on twitter in the last few days.
People are using it to write complaint letters, to evaluate options, to understand difficult topics, to get legal documents drafted, and to create essays. Even to have difficult conversations with your kids. But one use case that is raising some eyebrows in the software development community is how good it is at solving coding challenges.
What is ChatGPT?
To begin with, it is important to understand what chatGPT is and how it works. chatGPT is a large language model trained by OpenAI. It uses deep learning techniques to generate human-like text based on input from a user. It is designed to be able to understand and respond to a wide range of language inputs, and to generate text that is coherent and relevant to the user's input.
How good is it at solving coding challenges?
It is pretty good.
Our own CTO fed an old coding challenge and (thankfully) chatGPT was not able to solve it.
In his experience, the best person to find the solution did it in 1h, and the average time to solving it correctly was 3h.
It took a few seconds for chatGPT to provide basic solution with a detailed explanation on how to tackle the challenge. Far from being correct, but certainly a start. Also, we can't take away from the fact it produced an output that ran against the test. Impressive to say the least.
Other interesting examples you can find online are how chatGPT was able to rewrite a piece of software in a different programming language.
How can chatGPT help developers?
One potential impact of chatGPT on the work of software engineers is that it could be used to automate certain tasks. For example, chatGPT could be used to generate code or other technical documentation based on input from a user. This could potentially save time and effort for software engineers, allowing them to focus on more complex and challenging tasks.
Another potential impact of chatGPT on the work of software engineers is that it could be used to assist with debugging and troubleshooting. chatGPT could be trained on a large dataset of code and error messages, and then be used to suggest possible solutions to problems that software engineers encounter. This could help to reduce the time and effort required to identify and fix bugs, and improve the overall efficiency of the software development process.
How will it impact Software Development interview processes?
It is pretty obvious that any take-home coding challenge is unlikely to be the way software developers are tested in the future. Live-coding skills will likely dominate how teams evaluate the talent of new developers.
However, one interesting question that rises from the advent of AI-enabled programming is: what is more useful, a developer that can solve challenges without help, or a strong developer that is really skilled at leveraging AI coding assistants to produce high-quality code, fast?
When we ask chatGPT about this, we get…
We obviously asked, and parts of the response are intertwined in this article. Verbatim. These are the potential downsides of chatGPT for the well-being of software developers:
On the other hand, the widespread use of chatGPT in the software engineering field could also raise some concerns. For example, some people may worry that chatGPT could be used to replace human software engineers altogether, leading to job losses and economic disruption. Others may be concerned about the potential for chatGPT to generate code or documentation that is incorrect or difficult to understand, leading to problems and errors in the software that is developed.
Our own conclusion
Whether for good or for bad, it is undeniable that the job of software developers is going to be significantly impacted by AI-enabled coding assistants. More time will be dedicated to figuring out elegant solutions, and curating among a large list of options, rather than building one from scratch, less time will be spent implementing them. And the same is probably true for any other creative job.
Fascinating; where can I find more interesting takes?
We should have probably put this at the beginning of the article, but if you are interested in the implications of chatGPT, we recommend reading: