Programming WILL NOT be the last job automated
If you are a programmer your days are numbered and I am not talking about the coming bootcamp tech bubble bursting!
I suspect the next tech bubble (the “tech-pocalyps” if you will) will be brought on by all the programming bootcamps which are selling an unsustainable idea, “everyone needs to be a programmer!”, I honestly don’t disagree in principal as having some coding skills are REQUIRED going into the coming decade, no argument there!
Yet, if you ask just about anyone what is the hot tech career path right now and the answer is almost always “coding, coding, CODING!!!”.
But is that right? There is this sense that if you know how to code you will be employed until we succeed as a species in establishing a technological singularity.
I suspect that many junior dev’s imagine quite literally that it will be their job’s that go down in the history books with their image along with a caption that reads “John or Jane Smith, the last employed person…”
That dubious honor will almost certainly NOT go to a programmer, perhaps a mathematics PhD, but probably a politician. 😛
Yet, it’s hard to miss all the automation happening around us that is rapidly supplanting “unskilled labor” jobs with robots (currently on the market): plumber robots, window washing robots , robotic vacuums & mops & pool cleaners, even a robotic chef:
It’s only the beginning! The “Age of the Robot” is upon us!
So, logically you’d think we would need a ton of programmers right? Even if its just to write minor changes to behavior routines and bug fixes…. think again!
New methodologies allow industry manufacturing / warehouse automatons like Baxter to learn from unskilled personnel (sans programming) just by watching them perform the desired action.
You might think “that’s real cute Joy” but you can’t really code software by teaching a computer! Even Wix and WordPress require a coder to build the template first. Surely the the data is too complex, there is too much subtle variance to model… perhaps that isn’t the case.
What if, you could employ machine learning to take a description in plain English… (or insert your native tongue here)… of a function, method, class, application, website etc…
Then have another neural network draw a set of images of what it should look like? Perhaps like thumbnails or rough sketches for the user to pick from. This would also allow the user skip the description phase and simply supply their own sketches and drawings for the next step.
What if, you then took those images and fed them into another set of neural networks which could convolve (yes that’s a word :-P) over them to identify the parts of the image as “components” such as an input field, a button, a menu etc… and then use that data to generate the appropriate code (not just the visual code but the linking and processing back-end code as well).
Further still, what if that code was cross language, domain and platform?
Ok now I start to sound like I’m way off in the weeds talking about the future right? Such a feat sounds too good to be true! Until very recently I would have agreed with you… but I’ve seen it, it exists! Or rather, the pieces of the puzzle now exist and its time to start putting it together!
So we can already take one programming language and convert it to another depending on whatever the situation requires… mostly.
As an aside, there is actually a need for more of these Language X to Language Y converters which will finally end the epic flame wars (fan-boy/girl-ism) among programmers over the best language and usher in a period of true “language agnosticism” among developers as you can use multiple languages concurrently on any product and then munge (think git merge) them into the final product!
What about the other stuff? Well I’m glad you asked!
Using predictive text this Char-RNN this will write paragraphs about the subject and style of the material it is trained on: http://karpathy.github.io/2015/05/21/rnn-effectiveness/
Here is an RNN that takes an image and writes a little story about it: https://github.com/ryankiros/neural-storyteller
This GAN (Generative Adversarial Networks) learned to turn stills into animations:
What if, we trained something like these neural networks to receive software descriptions and generate software layouts as well as vice versa?
Still, that is far cry from producing actual compilable code.
It is NOT a perfect push button example, none of the examples are perfect, however they work well enough that they foreshadow things that are coming sooner than you think!
Now imagine if you could build an API around the systems I describe in this article, it would generate trillions in profit and end the career of the typical programmer!
Once I complete my current dev cycle I will begin experimenting with implementing the system I describe above for myself and my followers. Anyone who wants to help or fund me, please support me on Patreon or contact me directly.
Programmers you are on notice, my bots are coming for your jobs!
Please note that the statements and thoughts in this post are my own, none of the brands or companies I mention have payed me or offered me anything for this blog post. Having said that, I would love to have them and all of you as sponsors over on Patreon!