You see it in the news every day pretty much. The hype that A.I. and advanced no-code platforms are going to make coding jobs a thing of the past. I personally have been reading about that ever since I was in college over 15 years ago. And back then, things were nowhere near as advanced as they are today.
But so far, much of that has been noise in the background. The demand for software engineers is still high and the field has grown in popularity mainly due to "Day in the life of" videos on YouTube. Everyone is learning to code and even universities are offering web development bootcamps these days to help fill that demand.
So why does the hype and fear of a robot takeover continue to propagate day after day without an end in sight? Let's talk about it, because I think that the fears are justified to some extent. It's just that replacing an actual human engineer with a machine, isn't as simple as running a command and waiting for it to compile.
Code that writes code
In the past, the worry was that A.I. software was going to show up to write code faster than any developer ever could. That it would quickly start to spread and apply to jobs and before you knew it humans were obsolete. The theory makes for a great movie.
In the real world though, things are a bit different. Because it usually requires a developer to write that initial code that writes other code.
Code that writes code isn't a new idea and it does exist in the real-world currently. It is referred to as metaprogramming. Essentially, a program would have the ability to read, analyze and edit other programs in order to achieve some goal.
At the simplest level, take something like the following as metaprogramming code.
function writeCode(){
for (let i = 0; i < 100; i++){
eval('console.log(' + i + ')');
}
}
While this script doesn't do anything particularly useful (at all), it paints a portrait of a program's ability to write lines of code. It evaluates 100 expressions, which pretty much just console log numbers repeatedly.
But you can imagine that more complex versions of this type of code can lead to some very interesting results.
It's pretty useful and it's been around for decades now. And so far, it hasn't taken anyone's job. But it also isn't easy to learn and to properly implement. Offloading compilation of a dynamic program to a runtime can be error prone and difficult to debug. And the risks are much higher than in your traditional general programming language.
So code that writes code exists, but it needs a very skilled developer. No jobs are at risk in this regard.
What about no-code?
The most recent addition to the "will take your job" list, are no-code solutions. And if you aren't too familiar with the concept of no-code, you can check out my article about it right over here. But essentially, these are platforms that allow you to build, host and serve websites without any coding skills required.
How do they do this magic? Well, it's mainly through pre-built component libraries that you can reuse and simply drag and drop around a canvas. This is very similar to WYSIWYG editors of the past, where you could drag components onto a canvas and bind them to a data source with a few clicks. Though in the past, websites were much simpler and you were very limited in what you could realistically do on a website.
For the most part, these are pretty convenient tools if you are building a very simple website and if you don't mind being forever attached to these companies as you pretty much have to host your websites with them.
But if you are working on something that is relatively complex or that requires a ton of customization, then odds are you won't find a no-code platform that has done the work for you. At least not just yet. And this is what most professional programmers do on a daily basis in the corporate world.
You get hired by a tech company and get paid (relatively) well to do the things that a no-code solution can't do. And that can be anything really, as every company technically has their own business needs. It could be building out database schemas, analyzing large data sets, writing migration scripts, designing a login page or any of the 1000 things that web developers are tasked to do daily.
So no code solutions have a place in our current tech landscape, but it's more of a supplemental role and it isn't taking away from anything else. Not to mention that these platforms typically have very large development teams working on them around the clock.
Artificial Intelligence
The biggest threat to actual human developers probably lies within the depths of real AGI (artificial general intelligence). And that's the most obvious, I think, from this list. Once human intelligence can be replicated, then anything that humans can do is up for grabs. Throw a few extra clock cycles into the mix, and you can do years worth of work in the blink of an eye.
But we aren't quite there just yet in terms of how advanced current A.I. is. More recently, DeepMind's AlphaCode participated in a coding competition and did fairly well, for a robot. But it didn't do so great for an A.I. as it scored somewhere in the 54%.
And this isn't the first time that A.I. has proven that it can churn out lines of code. GitHub is taking a run at the A.I. coding market with CoPilot, it's pair programming assistant that can recommend segments of code based on the context of your work.
The biggest challenge that faces A.I. currently though, is that it still relies on human code in order to do its job. Most of these code writing bots get trained on millions of lines of code (written by humans) in order to find proper solutions.
Don't get me wrong, humans Google for code solutions more than any bot ever will. But, not always. A human developer will still spend some percentage of their day creating coding solutions from nowhere. Or I should say, from their own non-artificial intelligence. Or from their own creativity, based on years of life experience.
And that is hard to replicate and will remain hard to replicate for at least a few decades.
Your job is safe...for now
Seeing as how millions of coding problems have probably been solved already somewhere on the internet, it's going to become much easier for a trained bot to come up with the right solution at the right time.
But the fact is that there is infinite amounts of problems that programmers are busy finding solutions for on a daily basis. And none of that code has been written just yet, so no bot can be trained on it.
And the current level of intelligence for a code writing bot is still nowhere near the top when compared to the world's best developers.
So we're safe. At least for right now. Inevitably though, software will be advanced enough to write a good portion of your code for you. To set up architecture and to write boilerplate. It'll help you out, more than take away ideally.
And that's a future I think that we should all be looking forward to.