Back in the day, being a software engineer wasn’t sexy. It was a deliberate choice by people who were obsessed about tinkering machines and the rising world of information technology.
Nowadays, we see active discussions from programmers such as As a programmer, do I have to absolutely love writing code? by people who are employed as developers and don’t even enjoy the craft anymore.
The European Commission has reported a realistic shortage of up to 900,000 skilled ICT workers by 2020 – Digital skills, jobs and the need to get more Europeans online – European Commission – European Commission
The high demand for software engineers leads to Computer Science and Informatics programs popping up across the world without the right planning or attitude by professors. A ton of people with no passion for programming choose the craft simply because it’s profitable and promising over the past 2–3 decades.
This leads to an entire generation of non-motivated people who simply program for a living, or practice job-hopping for a living in order to find a high-paid gig with numerous company benefits, bonuses, shares, remote working opportunities and the like, without enjoying programming at heart.
Of course, that’s not a rule of thumb – but it’s a growing trend. I am a seasoned teacher at several universities, academies, and schools, and a large percentage of my students have simply signed up thanks to the trend of working in the IT field, or the fuzz around the unicorn companies.
In terms of programming experience or background, I’m not a proponent of the traditional education but I know how important is the in-depth know-how of computer architectures, data structures, algorithms, networks, and a ton of other courses studied in Computer Science classes. Self-learning platforms like Codecademy, Code School, Udemy, Free Code Camp, Coursera, Pluralsight often focus on promoting how easy programming is and how quickly newbies can become professional programmers. It’s a standard marketing talk, but people really buy into it.
Sites like TechCrunch and Mashable constantly cover stories about massively successful entrepreneurs who sold their startups for $500,000,000 or so, or crafted something within a week that became an overnight success. It’s easy to read between the lines with a decade or two of experience in the field, but is often deceiving for beginner programmers who dream of building something for a week and becoming millionaires the very next day.
Start-up communities are flooded by fresh programmers who are aiming for The Next Big Thing. They have no real world experience programming for enterprises or high-scale solutions, nor do they have business experience that allow them to build MVPs that can scale iterationally as the product grows (or understand what are the limitations that are being pushed with the influx of traffic or user sign ups).
Professional Q&A networks like StackOverflow targeting programmers are invaded by beginner programmers with no experience asking for basic 101 questions available on the first page of Google with the right search term. Fresh programmers are often lazy, unwilling to spend the time to dig into documentation or conduct any sort of R&D before building something. There are fewer pet projects build by enthusiastic programmers who want to launch something and learn along the way as their project grows and requires more and more features and better scalability patterns.
At the end of the day, not all hope is gone, and there are millions of fresh college students or young programmers who are talented, smart, and willing to learn. But there is a large volume of people signing up for developers without the right attitude or understanding that programming is a craft that requires constant learning and continuous improvement, unlike some stalled professions that haven’t evolved over the past century.