Every job that involves thinking is the same. Gather bits, use a mix of intuition and reason to piece them together in a goal-focused manner, tidy it up, rinse and repeat.
Intuition and reason are romantic terms for pattern detection and logic. Computers are already quite good at learning patterns. Pattern detection is a passive skill; it happens without trying, whereas logic is powered by the desire to accomplish tasks. When machines begin to do that, goodbye intellectual professions...
2) What prompts me to say this is how similar very different professions really are when you start looking at what sorts of mental skills are required to perform them. My mother was impressed that I knew how to make a knitting pattern repeat seamlessly, but that's no different from making game map tiles repeat seamlessly. She'd probably be an excellent sprite artist if she knew how to use an image editor.
3) Dad is a retired journalist. Growing up, I saw how newspapers are made, and it's not so different from piecing together a computer program really. You have sections and they must be arranged sensibly, there are constraints and deadlines on everything, the end user must comprehend it, and it's outdated before it's released.
4) There is huge demand for computer software, but it's expensive and time consuming to develop. The status quo of software manufacturing in 2018 is that the job is much simpler than it has ever been. Prefabricated parts have eliminated much of the blueprinting and lathe work, but we are still assembling almost identical models by hand without an assembly line. The world is aching to make the process more efficient and cut down on the required head count.
5) The irony is that software development, the business that is giving birth to modern machine learning, is itself in dire need of automation. We shouldn't live under the illusion that companies actually *want* engineers. What they want is new products as cheaply as possible. The thought of being able to eliminate the engineering department is probably a mouthwatering proposition to many businesses.
@xj What I mean is that if businesses could replace a team of engineers with one engineer aided by machine learning algorithms, many would opt to do so. The Lego-like nature of much modern software development is a premonition of things to come. Your average software shop doesn't even need proper engineers; there is little engineering left to do these days, with so much shrink-wrap source code available for wrench-monkeying into a product.
@xj It could go either way. Perhaps the availability of components with simplified interfaces will make it easier for an AI to glue them together. Perhaps the early versions will need some human assistance. Perhaps this will be low-skill troubleshooting; perhaps it will be high-skill guidance. It's not entirely clear. I suspect it's going to be harder for many developers to find work.
@xj Personally, I'm worried. There aren't many jobs for senior developers out there. I should've been in a senior position years ago, but those jobs are difficult to get, so I survive by taking on stuff that's way beneath my level. It doesn't make me happy, but it's a living. Once the bottom drops out of the market, it's going to get really tough.
i guess what i'm saying is that, future engineering will cull a lot of the less talented folks from the field, because you can't always rely on lego's doing the right thing. so, what you really need is top-ish talent with really powerful productivity tools.