"Where is that young punk that will wipe us off the face of the earth?"

The existential question put in the title in the formulation of Grebenshchikov, I asked myself after the next round of discussion in one of the communities on the subject of whether a novice web backend developer needs knowledge of SQL, or ORM will do everything anyway. I decided to look for an answer a little wider than just about ORM and SQL, and, in principle, try to systematize who are the people who are now interviewing for junior and middle development positions, what is their history and what world they live in. In general, I had an opinion, but it was formed by personal experience of hiring and clearly adjusted for the local market. In general, it became curious. Here's what we found.

Global Developer Population

In order to somehow approach the issue, I decided to start by searching for data on how many developers there are in the world, in principle, and how this population changes over time.
Estimates in various sources give numbers in the fork from 12 to 30 million people. Decided to stop data from SlashData, because their methodology seemed to me quite balanced and suitable for my needs. In their assessment, they took into account the number of accounts and repositories on Github, the number of accounts on StackOverflow, npm accounts, and official employment data in the US and Europe. They also corrected the resulting numbers using their own 16 studies, which included approximately 20 people for each survey.

According to SlashData, in the fourth quarter of 2018, there were approximately 18.9 million developers in the world, 12.9 million of which are professional, that is, they make a living programming. Those who are not currently professional developers are people for whom programming is a hobby plus those who are now studying the profession (various students and self-taught). Well, that is, here is a hint at the size of the group that interests me - 6 million people. To be honest, it's more than I expected.

The second surprise for me was the growth rate of the number of programmers: from the second quarter of 2017 to the fourth quarter of 2018, it increased from 14.7 to the mentioned 18.9 million, or grew by 21% in 2018! If I were asked to estimate the rate of growth in the number of programmers, then I would say that it is about 5% per year with a slight increase in the rate annually. And here it turns out as much as 20%.

In addition, SlashData estimates that the population will reach 2030 million by 45. It's not hard to calculate that this implies a growth of just over 8% annually, and not 20% at all, but they refer to a correction for Internet penetration (now about 57% globally by according to Statista) and several other factors, such as the number of developers per capita. Geographically, India and China are the fastest growing developers, with India expected to overtake the US in terms of developers by 2023 (this is already C# Corner data).

In general, there will be a lot of programmers, whatever one may say, because demand is growing. By the way, about the demand.

What is in demand?

To estimate demand, I used HackerRank data for 2018 и 2019 year.

In terms of programming languages, the biggest demand for JavaScript, Python and Java is in almost all industries, with the exception of Computer Hardware. In the latter, C/C++ is in the greatest demand, which is understandable; in hardware projects, there are still requirements for resource intensity and performance of the corresponding software.

"Where is that young punk that will wipe us off the face of the earth?"

In terms of frameworks, AngularJS, Node.js, and React are the most in demand, with the largest supply-demand gaps, which seems to be explained by the speed with which the JavaScript ecosystem is changing, because, for example, in ExpressJS, supply already exceeds demand.

"Where is that young punk that will wipe us off the face of the earth?"

In terms of competencies, employers expect from candidates, first of all, Problem Solving skills. About 95% of employers mention these skills as important. Programming Language Proficiency is in second place with 56%. By the way, there is no line with fundamental knowledge of algorithms, data structures, and other Computer Science, either it was not in the questionnaire, or academic knowledge is no longer required on a massive scale.

Database Design is needed by 23.2% of companies under 100 people and 18.8% of companies over 1000 people. Aha, here it is similar about ORM and SQL! The logical, IMHO, explanation is that in large companies a dedicated DBA role appears, which is responsible for this aspect, and therefore it is possible to soften the requirements for developers and hire faster. But with System Design, the opposite is true: 37.0% in small ones, 44.1% in large ones. It would seem that there should be dedicated architects in large ones, but perhaps they are simply not able to cover the number of generated systems. Or, at the same time, those very fundamental algorithms and data structures are invested in System Design, then it becomes a little clearer.

Small companies need Framework Proficiency more and less the aforementioned System Design, from which we can draw the captain's conclusion that it is important for startups to launch somehow a working product as soon as possible, and tomorrow will be tomorrow.

"Where is that young punk that will wipe us off the face of the earth?"

What are students learning?

Here I relied on the data of another HackerRank research.
It is important to bear in mind that despite the fact that programming in one form or another is taught at universities (I mean Computer Science specialties), more than half of the respondents said that they are also engaged in self-education.

Today's students prefer to learn from YouTube, while older developers lean towards tutorials and books. Both of them actively use StackOverflow. I attribute this to the fact that video is a familiar media channel for generation Z, while representatives of generation Y still found an era without bloggers.

They learn what is in demand by employers: JavaScript, Java, Python. They indicate that they know C/C++, but this is probably because these languages ​​are used for teaching in universities. They teach JS frameworks, but the demand is much higher than the supply, so apparently they actively teach already having found the first job.

"Where is that young punk that will wipe us off the face of the earth?"

In general, it is expected that they teach what is in demand.

Students expect professional growth from their first job, work-life balance comes second (in some countries, first), and interesting tasks come third.

Developer population dynamics by programming languages ​​and software types

"Where is that young punk that will wipe us off the face of the earth?"

Web applications are number one with 16.9 million developers. This is SlashData data again. Further Backend Services (13.6 million), mobile applications (13.1 million) and desktop (12.3 million). AR/VR and IoT sectors are gradually gaining popularity, AI/ML/Data Science has grown significantly over the past two years.

Javascript is growing the fastest, its community is already the largest, growing by 2018 million in 2.5 alone. They try to write on it even in the IoT and ML sectors.
Python grew by 2018 million in 2.2 due to the growth in the popularity of ML, where it is traditionally strong, as well as due to the ease of learning and convenience of the language.

Java, C/C++, and C# are growing at a slower rate than the general developer population. They are now rarely the programming language people choose to start with. The demand for developers here is more or less balanced with the supply. I think that Java would grow even more slowly if not for Android.

PHP is the second most popular web application programming language and it is also growing significantly (by 32% in 2018). Its community is estimated at 5.9 million developers. Despite the polarizing opinion about PHP's reputation, it is quite easy to learn and widely used.

How today's young candidates learn compared to past generations

HackerRank data again. Those who are now between 38 and 53 indicate games as their first projects.

By the way, I confirm that my first more or less working project was tic-tac-toe up to five in a row with an unlimited field, the second was a game of 15. I wrote all this on BC 010-01, there was Vilnius basic, aka BASIC-86 and focal. Eh.

Modern novice programmers (under 21) write calculators and websites as their first projects.

Among Gen Xers, almost half started coding before the age of 16, many from the age of 5 to 10 (mostly those who are now between 35 and 45 years old). It is more or less clear why: there were few sources of information, and to become a programmer you really had to really want it, and those who really wanted it started programming early. Those who did not want so much, by now most likely have a different profession, so the picture in sociology is exactly like this.

"Where is that young punk that will wipe us off the face of the earth?"

Today's young candidates only 20% of the time start programming before the age of 16, most somewhere between 16 and 20. But it is much easier for them to learn, now it is much more accessible.

Conclusions

I have not found a concrete answer to the question of whether a novice web backend developer needs SQL today, but I have corrected my understanding of the modern population of programmers.

The next generation of developers are ordinary people, somewhat reminiscent of the previous ones, the housing problem only spoiled them. They satisfy the demand that is created by employers. The threshold for entering the profession has become lower due to more convenient tools and frameworks that allow you to quickly achieve results. More people are now becoming programmers, the digital generation (generation Z) has been living in technology since birth, for them this is a common profession, no worse than others.

Those who know that the latency of the L1 cache is ~4 cycles, and that it is better not to knock out the cache lines unnecessarily, becomes smaller as a percentage of the total population size. However, they shouldn't worry about getting a job, after all, someone has to write low-level stuff where it's still needed. As well as those who have deep fundamental knowledge in system design and acquired it in bloody practical battles, and do not just follow a cargo cult, should not worry. Because there will be more people who can “just write code” and “just” use frameworks in teams, and in order to “not be excruciatingly painful for the aimlessly lived years” (c), they will need to be balanced by just such people.

Soft skills from the category of desirable ones gradually migrate to the required ones (I have no objective data to confirm this, just a practical observation). The number of programmers is growing, and they all need to be directed to achieve results, either by direct or indirect control, and this is exactly what soft skills are needed for.

“Entering IT” seems to me to be a local regional history, typical for those locations where the income of a programmer differs significantly from the income of a specialist comparable in terms of “non-IT” qualifications. In Minsk, where I live, this is generally a mass movement, every day I see advertisements for the next courses on how to get into the coveted IT, and cleaning companies target programmers with the message “Do you understand the code in this picture? So you can afford not to clean the apartment, we will do everything for you.” The same seems to be happening in some India. I don't have any data to prove this either.

In general, nothing threatens the population of programmers in my opinion. It’s not worth it to talk about the fact that you can’t find real programmers in the afternoon with fire, and candidates all the time “know nothing”. They are just as smart and capable, maybe even smarter and more capable than “real programmers”, they simply acquire the knowledge that a rapidly growing market requires from them and put off for later what they have not yet needed and will not bring benefits right now. They will learn when they need to, because they still want to learn. Probably, not everyone will be able to do this, but not everyone will need it either, the market will definitely in the predicted future easily accept people who can quickly assemble another application concept on some framework.

Only registered users can participate in the survey. Sign in, you are welcome.

Do you require knowledge of SQL for web backender interviews?

  • Yes, I do, because I need it at work

  • Yes, I do, even though it's rarely needed at work.

  • No, I don't, we have NoSQL

  • No, I don't, ORM will do everything

320 users voted. 230 users abstained.

Source: habr.com

Add a comment