This is a question that gets asked a lot from computer programmers and web developers who have seen AI programs capable of writing their own code. According to many different polls I’ve seen roughly 1 out of 3 programmers believe they will be replaced by self learning machines within the next 20 years. Is this a legitimate concern? It most likely is not. We will attempt to explain why over the course of this post. This needs to be cleared up because false information surrounding this issue could deter young people from pursuing jobs in the industry fearing that they will be replaced.
CAN AI REALLY WRITE ITS OWN CODE?
As of right now AI can write its own code but only in a very limited way. There are all kinds of stories out there about AI programs re writing their own code to make themselves more “intelligent” but it is important to remember that these programs do not yet actually possess intelligence. We are not at that point yet and probably won’t be until mid century.
There are also stories about various AI programs who can write their own code by stealing the work of others. A program like this doesn’t need to be very sophisticated. There are other programs that can output their own code in response to keywords, which means a human could type specific keywords related to the kind of code they were looking to write and the program would output some code snippets. This is basically just a search engine for coding.
THE DEEPCODER PROGRAM FROM MICROSOFT
The pattern that is worth noticing here is that while there are programs that can write their own code they can only accomplish this in an extremely limited way that still requires lots of human intervention. The closest thing we have so far to an autonomous code writing AI is a program created by Microsoft in early 2017 called DeepCoder.
DeepCoder works much a like a human programmer would, composing new programs by taking other lines of code from previous software. This is referred to as program synthesis. It utilizes deep learning algorithms to search through databases of code and will output entire documents of code based on the description you provide for it.
While this tool is an extremely efficient way for programmers to write large sets of code in a short period of time it will never be able to replace human programmers. DeepCoder is still very limited when it comes to the directions it is able to take in as input, more abstract descriptions of real world problems will trip it up pretty easily. There’s also the fact that it mainly works by figuring out which code to take and reuse from previous programs as opposed to writing new code. This means that DeepCoder is more productive alongside a human than the human can be alone, but without the proper input from a real programmer it isn’t much use.
THE REAL ROLE OF THE HUMAN PROGRAMMER
The true role of a computer programmer goes far beyond merely writing lines of code and searching through databases of previous projects to decide what code to write next. There are general responsibilities that revolve around creative problem solving and there are more specific duties that involve collaboration with other programmers to produce the best product possible. Upon analyzing the true role of the human computer programmer it will become clear that AI will not be able to replace them anytime soon.
GENERAL RESPONSIBILITIES OF PROGRAMMERS
Computer programmers in general can take on many different roles but some of the core responsibilities include developing new programming methods, developments of programs themselves, testing and collaboration with other programmers to make sure any piece of software meets specific requirements. These programs usually address one or more real life problems which means one must have a complete understanding of the problem in order to solve it with programming, something that machines are completely incapable of at present time.
Programmers also have to consult with outside parties to come up with the various programming methods and to construct the programs themselves which requires a whole host of soft communication skills we can’t program into AI just yet. The progress timetables for the construction of these programs must also be monitored to ensure a quality product is delivered on time.
MORE SPECIFIC ROLES OF COMPUTER PROGRAMMERS
There are a number of more specific duties that go beyond the general day to day responsibilities of a computer programmer. There is a vast array of different kinds of programs one could be creating depending on what kind of company they work for. They could work for someone who sells solutions to businesses which requires a specific understanding of the kinds of issues businesses face in the first place. Other programmers work in game development which not only requires them to think from their own perspective but also from the perspective of the game players themselves. A particular piece of code could make an awesome game but that doesn’t mean it would be popular with the current crowd of game players. A programmer must have a deep understanding of his or her own niche.
There is also a specific monitoring process that must take place to ensure various stages of development are completed on time. Programs must be reviewed on a regular basis and tested in certain ways both alone and while collaborating with coworkers. Programmers who work in supervisory roles typically play a larger part in this whole process while at the same time giving directions to developers underneath them and taking on the task of interviewing and hiring new programmers to join the team. Supervisors may also perform payroll related tasks.
Programmers may also have to maintain databases both large and small. The size and duration of this maintenance would depend on who the customer is. Regardless, this also requires some soft skills that only humans posses at the moment and an understanding of the purpose of the database.
CURRENT AI CANNOT COMPARE
As you can see the role of the human programmer goes far beyond memorizing code syntax and writing lines of code found in previously used programs. They require a wide set of personality characteristics including but not limited to an analytical mind, an aptitude for teamwork, motivation, and being able to work alongside others which goes far beyond a mere aptitude for teamwork. A programmer who doesn’t posses at least that small list of traits will find themselves unable to perform on their own which is exactly what we see with these AI programs who can write code but still need human intervention.
THE BOTTOM LINE
Roughly a third of programmers believe they will be replaced by AI within the next 20 years as we already stated. After analyzing the real role that a human plays in the world of programming it becomes pretty clear that in order for AI to actually replace humans in this domain they would have to posses general intelligence. The issue is no one actually knows how to make intelligent AI as of yet.
The changes that will arise from the fourth revolution are as of yet unclear.
General intelligence allows humans to adapt to a variety of novel situations and learn a vast array of different tasks and the concepts behind them, it also allows us to reason and create long term plans for our future. Computer programming is one of the hardest jobs to automate because it would require a program to learn and respond to information from more then one specific domain. Until we reach the point where machines are truly intelligent just like us they will never be able to replace human programmers.
It’s pretty clear to most experts in the field that we are 30-40 years from this point and perhaps farther. Even then, there would still be roles for human programmers provided they stay vigilant and continue to upgrade their skills to keep themselves employable. The technological landscape is changing. However, the need for humans is not.