A few days ago, a question was asked on Hacker News:
I had briefly agonized about this before, in context of contrasting how I came into computing in my childhood and what analog I can offer to my own children for their eventual careers. There is nothing special about software programming itself that is immune to software’s strengths in automation and streamlining of workflows, and the concern is that machines can and will learn to build software.
Looking through the list of “safe jobs” from technology, the running themes are around managerial, medical, and social areas of work. If we take this to mean that jobs that interact with humans are less likely to be mechanized, then an answer may be to specialize in areas known to be difficult for software to fully codify: either because we ourselves don’t fully understand the domain, or its users require a human connection and we have not fully simulated machine-human interaction beyond the uncanny valley. In these cases, software can be relegated to being a helpful tool, and engineers will be required to figure out the product and build the software.