Editor’s note: Advances in AI and automation are not only threatening jobs in other industries, there are voices saying that even the programmers who develop these technologies are losing their self-deprecated “coder farmers.” For example, Andrej Karpathy, a former research scientist at OpenAI, sees a real risk that traditional programmers will lose their jobs in the AI-led software 2.0 trend. However, compared to Tyler Elliot Bettilyon, these are partial views of the future of programmers, and his analysis of the future of programmers is more comprehensive and objective, which should be taken into consideration by practitioners to consider their future options. A friend of mine recently posed a question that I’ve heard on various occasions, albeit in different forms:
Do you think IT and some low-end programming jobs are going the way of the Dodo? It looks as if a massive jobs bubble is about to burst. In my opinion, one of the reasons tech and low end computer science jobs remain “prestigious” and well paid is the ridiculous jargon and public ignorance about computers, both of which will disappear in the next 10 years…
The question points to both the future of technology work and a common misconception about the software engineering field. While it is true that there is plenty of “ridiculous jargon” out there, it is also true that there are just as many difficult problems for people with the right skill set to solve. Some software jobs will definitely disappear, but some programmers with the right experience and knowledge over many years will continue to enjoy prestige and be well paid; As an example, consider the recent explosion in salaries for AI researchers and the corresponding shortage of available talent.
Staying relevant in a changing technology industry is a challenge. By looking at the technologies that are replacing today’s programmers, one can predict which jobs will disappear. In addition, to predict changes in pay and demand for specific skills we should consider the growth of the population learning to code. Just as Hannah points out that “public ignorance of computers” has led to higher salaries for those who can program, computer literacy is becoming more sophisticated every year.
Increasingly commercialized
Fears of automation displacing jobs are neither new nor unfounded. In any field, but especially in technology, market forces push companies towards automation and commoditisation. Gartner’s hype cycle curve is a good illustration of this phenomenon.
The “machine” metaphor here refers to the computer programming language. The professor is asking: Do you want to develop websites in JavaScript, or do you want to develop a V8 engine that powers JavaScript?
Web site creation is already automated by tools such as WordPress. On the other hand, V8 has a growing number of competitors, some of which are addressing open research issues. Languages will come and go (think about how many Fortran jobs there are now?). But there will always be people developing the next programming language. We are lucky because implementations of programming languages are also written in programming languages. Being a “machine operator” as software puts you on a path to becoming a “machine maker” in a way that steelworkers in the past didn’t.
The proliferation of languages, interpreters, and compilers shows that every machine that destroys work also offers new opportunities for improving, maintaining, and so on. The list of jobs that have disappeared is getting longer and longer, but we have not yet reached the historic moment when all of humanity will say, “I think there are no more jobs to do.”
Pinsetters
Commoditization will come at all of us, not just software engineers. Throughout history, human labor has been replaced or enhanced by non-human things, resulting in fewer people and lower skill requirements. Autonomous cars and trucks are just a passing fad in this great human tradition. If cycles of creativity and automation are a fact of life, it’s natural to ask: which jobs and industries are at risk, and which are temporarily safe?
Who automates whom?
AWS, Heroku, and similar managed hosting platforms have permanently changed the role of system administrator /DevOps engineer. Internet companies used to absolutely need their own server specialists. Some of them are Linux savvy; Some know how to configure a server with Apache or NGINX; Some not only wire servers, routers and other physical components, but also configure routing tables and all the necessary software to make servers accessible to the public on the Web. While there’s still a group of people who know how to do it, AWS is making some of those skills obsolete — especially things that require less experience and things like hardware. There are still very lucrative roles inside Amazon (and Netflix, Google, and so on) for people who understand the physical infrastructure, but the need for those roles has diminished significantly from the SMB side.
“Business intelligence” (BI) tools such as SalesForce, Tableau and SpotFire are beginning to occupy what has historically been the domain of software engineers. These systems have reduced the need for internal database administrators, but have also increased the need for SQL as a general skill. BI has also reduced the need for internal reporting technology, but increased the need for “integration engineers” whose job it is to automate the flow of data from the enterprise to third-party platforms. Data management, once the domain of Excel and spreadsheets, is being pushed into scripting languages like Python or R and SQL. Some jobs disappear, but overall the demand for people who can write software is growing.
In terms of being closer to software, data science is a good example of commoditization. Scikit.learn, Tensorflow, and PyTorch are all libraries that make it easy to write machine learning software. In fact, it is possible to run many machine learning algorithms with different parameter sets from the same data set (although it would be unwise to do so, I’m only talking about possibilities) while simultaneously implementing angry algorithms that know almost nothing about machine learning. I bet business intelligence companies will try to integrate these types of algorithms into their tools in the coming years.
In many ways, data science is like Web development was five to eight years ago — it’s a booming field because of the “skills gap” where you can acquire very little knowledge of the effects. Then, with the closure and consolidation of web development boot camps, data science boot camps popped up in their place. Kaplan, which acquired the original DevBootcamp, has now set up a Data science Bootcamp (Metis) and decided to shut DevBootcamp down while keeping Metis running.
Content management systems are one of the most obvious examples of tools where automation has eliminated the need for software engineers. SquareSpace and WordPress are among the most popular CMS systems today. These platforms significantly reduce the value of someone with little front-end Web development skills. In fact, the barrier to building a website and putting it online has become so low that people with no experience in transformation can successfully launch new websites every day. These people can’t build a highly interactive web site for billions of people, but they can build a web site for their own business that provides information that customers need. A cute landing page with information on how to find companies and how to contact yourself is enough for local restaurants, bars or retailers.
If your business is not primarily an “Internet business,” it has never been easier to get a decent website online. As a result, the once-thriving industry of Web contractors that can whip up websites and put them online has become less profitable.
Finally, in this context it would be almost arrogant to ignore the physical aspects of computers. In the words of Mike Acton, “Software is not a platform, hardware is a platform”. It would be wise for people who work in software to learn at least a little about computer architecture and electrical engineering. A shake-up in hardware, such as quantum computers, will change everything about software engineering.
Quantum computers are still a long way off, but increasing interest in Gpus and a move towards parallelism is the coming shift. CPU speeds have stagnated in recent years, at a time when the appetite for machine learning and “big data” seemed unstoppable. Other parallel processing languages and frameworks such as OpenMP, OpenCL, Go, CUDA will continue to dominate as the need for large data sets increases. In order to be competitive quickly in the short term, significant parallelism will be required across the board, not just in high-performance niche applications such as operating systems, infrastructure, and video games.
Everyone is learning to code
Websites are everywhere. According to the 2017 Stack Overflow survey, about 15% of professional software engineers are working for “Internet /Web services” companies. The Labor Department expects Web development to continue to grow much faster than average job demand (24% between 2014 and 2024). Given its visibility, much of the industry’s focus will be on bridging the skills gap. Coding boot camps teach almost exclusively Web development, and similar markets like Udemy, Udacity, and Coursera are full of Web development courses.
The increasing automation of the entire Web development technology stack and the influx of new entry-level programmers into Web development have led some to predict a “blue-collar” market for software developers. Some go even further, arguing that pushing the industry into the blue-collar market is a strategy devised by big tech. Others, of course, say we are heading for another bubble bust.
Changes in demand for specific technologies are not news. There will always be a trade-off between the language and framework of technology. The current incarnation of Web development (” JS is king “) will eventually move like Web development did in the early 2000s (remember Flash?). The difference this time is that many people have a clear (and predominantly) education in today’s popular Web development frameworks. Before you decide to label yourself a “React developer,” remember that there was a time when someone identified themselves as a “Flash developer.” Hanging your career on a single language, framework, or technology is like playing roulette. Of course, it’s hard to predict which technologies will continue to develop, but if you’re looking for something to go all out on, I suggest following the Lindy effect (for fragile things, every extra day of life shortens their lifespan; On the other hand, for something that is not fragile, each additional day of life lengthens its lifespan. Pick some languages that have stood the test of time, like C.
The next generation will have a de facto level of technological literacy that Gen X and even millennials don’t have. As a result, these people will be using the next generation of CMS tools. These tools are going to get better, and young workers are going to get better and use them better. The combination of these two factors will definitely reduce the value of low-level IT and Web development skills as hungry, skilled young people enter the job market. High schools are catching up, offering computer science and programming courses, and some well-educated high school students may enter the workforce as programming interns as soon as they graduate.
Another big group of newcomers are Mbas and data analysts. Job listings, once dominated by Excel, are starting to list SQL as “better,” or even “job requirements.” Web-based metrics such as Tableau, SpotFire, and SalesForce continue to displace spreadsheets as the primary tool for generating reports. If this continues, more data analysts will start learning how to use SQL directly because it’s easier than exporting data to spreadsheets.
People who want to leapfrog their peers and climb the corporate ladder are taking online courses in databases and statistics as a language. Armed with these new skills, they can position themselves as data scientists through machine learning and statistical libraries. Metis’s course is a good example of this path.
Finally, the number of people earning degrees in computer science and software engineering is climbing. Purdue University, for example, reports that applications to its computer science program have doubled in five years. Cornell has seen a similar explosion in computer science graduates. Given the development and popularity of software, this trend is not surprising. It’s hard for young people to imagine computers playing a smaller and smaller role in our future, so why not learn something that will provide job security.
Rarity and expectation
A common view in the industry now is that much of the education you get in a four-year college computer science course is unnecessary. I’ve heard it many times in the halls of coding boot camps, in web development stores, and even from industry figures like Eric Elliott. But the counter-argument is also popular, with some even saying that “all programmers should get a master’s degree”.
Like Eric Elliott, I think there should be more options for learning programming, and a 4 year degree may not be the best choice for many people. At the same time, I agree with William Bain that basic skills across programming fields are critical to career longevity, but you can’t find this information anywhere except in college courses these days. I’ve written about what skills aspiring engineers should learn as a foundation for a long-term career, and explained that I joined Bradfield to help share that knowledge.
Coding schools of all shapes and sizes are becoming increasingly ubiquitous, and for good reason. You can learn programming without knowing the big O notation, arcane data structures, and algorithmic details. However, while it’s true that hot, fresh graduates from Stanford can compete for jobs with people from Hack Reactor, this is only true in one or two subindustries. Graduates of coding schools and boot camps have yet to apply for jobs in embedded systems, cryptography/security, robotics, network infrastructure, or artificial intelligence research and development. But these areas, like Web development, are growing rapidly.
Some programming-related skills are already moving from “rare skills” to “benchmark expectations.” Instead, the work of building powerful engines like AWS has become commonplace. Big companies that drive technology — Amazon, Google, Facebook, Nvidia, space-X, to name a few — typically don’t look for people with a “basic understanding of JavaScript.” AWS serves billions of users every day. To support this payload, AWS infrastructure engineers need a deep understanding of network protocols, computer architectures, and years of experience. As with any subject, there are hobbyists and artisans.
These established companies are solving research problems and developing systems that really build the boundaries of true frontier capabilities. But even as basic programming skills become more common, they still struggle to fill the gaps. People who can write algorithms to predict changes in the genetic sequence that lead to the desired result will be very valuable in the future. People who can program satellites, spacecraft and mechanical automation will continue to be highly valued. These are not areas where the “three-month intensive learning program” of front-end Web development can be used, at least without a decent success story.
Since computer science begins with the word “computer,” we can assume that all young people will be born with a computer understanding by 2025. Unfortunately, the spread of computers has not produced a new generation with a factual understanding of math, computer science, network infrastructure, electrical engineering, and so on. Being able to use a computer is not the same as doing research. Although mathematics has been around since its inception, relatively few people are well versed in statistics, and computer science is just as archaic. Euclid invented several algorithms, one of which is used every time an HTTPS request is made; The fact that we use HTTPS every time we log on to a website doesn’t automatically tell anyone how these protocols work.
Bimodal wage distribution
More mature professions tend to have a bimodal wage distribution: a relatively small number of practitioners earn significant amounts of money, most of them well paid but not in the top 1%. Data collected by the National Organization for Legal Employment illustrates this phenomenon quite clearly. Most law graduates earn between $45,000 and $65,000, which is a high salary but hard to associate with “top professionals.”
We tend to think that all law graduates are likely to become partners in a law firm, but in fact there are many paths they can take: paralegals, clerks, public defenders, judges, corporate legal services, contract writing, and so on. Computer science graduates also have many options, ranging from Web development to embedded systems. Basic programming skills will continue to be expected rather than “icing on the cake,” and I suspect a similar distribution of programming jobs will emerge.
While there will still be a group of programmers who will make a lot of money pushing the limits of technology, there will be a growing middle class of programmers who will power the new computer-centric economy. The average salary of a Web developer is bound to decline over time. Having said that, I suspect the total number of “programmer” jobs will only continue to grow. As the artificial supply side begins to meet demand, hopefully we’ll see a healthy boom in intermediate programming jobs of all kinds. For programmers who are opening up the possibilities, they will continue to be paid top career wages.
No matter what type of programmer you are, a career in technology means a lifetime of continuing education. If you want to be the second type of programmer, you have to invest in learning how to build machines, not just use them.
Original link: medium.com/tebbavonma…
Compilation group produced. Editor: Hao Pengcheng.