While the demand for software developers is at an all-time high, exponential growth of technology, machine learning, data science, as well as large capital investment in AI research are expected to lead to the automation and/or elimination of most jobs, including most IT and programming jobs.
Ed Messerly, BITCA Faculty at Seattle Central College and I have put together a list of several career paths which, we believe, are not at near term risk of large scale automation. Long term solutions to this problem must include high level policy reform, such as Universal Basic Income.
Please note that there is always the possibility of technological disruption which could change current trends in unpredictable directions.
1. Tool-Centric Development: Becoming craftsman like developers - learning the tools and “tricks” to build applications. The skills set is not very specialized in terms of math or computer science, but one needs to know System Analysis , Traditional Logic and be good at problem solving in order to put together or maintain programming snippets from various frameworks and tools. Some examples of such tool-centric technologies include Bootstrap, Wordpress and Drupal.
2. Mobile Development is predicted to be one of the growing programming fields. Mobile development has moved beyond cell phones and now includes a large matrix of mobile devices including Wearables or Automotive devices. To develop mobile apps for the widely popular, open source Android platform you need to know Java and XML.
3. Data Centric Programming including developing in a Cloud environment. Data Analytics is a booming field and today humans are generating digital data at unprecedented rates. This data is very useful for business insights and needs to be mined and analyzed. Scratch is an free and easy to learn, cloud based programming framework to teach basic coding skills. One of the most popular languages used in data science is Python. You also need to have an aptitude for math and especially for statistics.
4. AI Programming is another area which is not going away just yet (not until the AIs learn fully how to program themselves). To program AIs you need to have strong computer science background and to understand different AI programming approaches such as Search, Logic, Probabilistic reasoning, Decision Making, Natural Language Processing, Genetic Algorithms and more... Some of the popular languages for programming AIs include LISP, Python and Haskell.
5. There is still a lot of legacy code which needs to be maintained. Many companies are invested in their current infrastructure and will not upgrade to the latest and greatest technologies due to business considerations. Much of the legacy code is written in Java and even C.