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

After the next round of discussion in one of the communities, I asked the existential question, put in the heading in Grebenshchikov’s wording, about whether the beginning web backend developer needed SQL knowledge, or if ORM would do it all. I decided to search the answer a little wider than just about ORM and SQL, and, in principle, try to systematize who those people who are now going to interview for junior and middle development positions, what their history is and in what world they live. In general, I had an opinion, but it was formed by personal experience in hiring and clearly adjusted for the local market. In general, it became curious. Here is what I managed to find.



Global Developer Population



In order to somehow approach the issue, I decided to start by searching for data on how many developers in the world are now in principle and how this population is changing over time.

Estimates in various sources refer to numbers in a fork from 12 to 30 million people. I decided to stop on the data from SlashData , because their methodology seemed to me quite balanced and suitable for my needs. In the assessment, they took into account the number of accounts and repositories on Github, the number of accounts on StackOverflow, npm accounts and official sources about employment in the US and Europe. They also adjusted the numbers with their own 16 studies, which covered approximately 20,000 people for each survey.



According to SlashData, it turned out that in the fourth quarter of 2018 there were approximately 18.9 million developers in the world, 12.9 million of whom were professional, that is, they made a living by programming. Those who are not currently professional developers are people for whom programming is a hobby, plus those who are currently studying the profession (diverse students and self-taught). Well, that’s a hint at the size of the group that interests me - 6 million people. Honestly, this is 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 increased by 21% in 2018! If I were asked to estimate the growth rate of 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 by 2030 the population will reach 45 million. It is easy to calculate that this implies a growth of a little more than 8% annually, and not at all 20%, but they refer to a correction taking into account Internet penetration (now about 57% in the world according to Statista ) and several other factors, for example, the number of developers per per capita. Geographically, the number of developers in India and China is growing most, India is expected to overtake the United States by the number of developers by 2023 (this is already C # Corner data ).



In general, there will be many programmers, whatever one may say, because demand is growing. Speaking of demand.



What is the demand for?



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



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







According to the frameworks, AngularJS, Node.js and React are in the greatest demand, with the largest supply and demand gap according to them, which seems to be explained by the speed with which the JavaScript ecosystem is changing, because, for example, in ExpressJS, the supply already exceeds demand.







By competency, employers expect candidates first of all to Problem Solving skills. About 95% of employers mention these skills as important. Programming Language Proficiency in second place with 56%. By the way, there are no lines with fundamental knowledge of algorithms, data structures, and other Computer Science, either not in the questionnaire, or academic mass knowledge is no longer required.



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



Small companies need Framework Proficiency and the aforementioned System Design less, from which we can conclude that it is important for startups to launch a product that works as soon as possible, and tomorrow will be tomorrow.







What do students learn?



Here I relied on the data from another HackerRank study .

It is important to consider 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 also engage in self-education.



Modern students prefer to study on YouTube, while older developers tend to tutorials and books. Both actively use StackOverflow. I attribute this to the fact that video is the usual media channel for Generation Z, while representatives of Generation Y still found the era without bloggers.



Learn what is claimed by employers: JavaScript, Java, Python. They indicate that they know C / C ++, but this is probably because these languages ​​are used for teaching at universities. JS frameworks are taught, but demand is significantly higher than supply, therefore, apparently they are actively taught already finding the first job.







In general, what is expected to be taught is what is in demand.



Students from the first job expect primarily professional growth, in second place (in some countries in the first) work-life balance, in the third - interesting tasks.



Developers population dynamics by programming languages ​​and types of software







Web applications come first with an estimated 16.9 million developers. This is again SlashData data. Next are 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 have grown significantly over the past two years.



Javascript is growing fastest, its community is already the largest, only in 2018 it grew by 2.5 million. They even try to write on it in the IoT and ML sectors.

Python in 2018 grew by 2.2 million due to the growing popularity of ML, where it is traditionally strong, as well as due to the ease of development and the 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 that people prefer to start with. Demand for developers here is more or less balanced with supply. I think Java would grow even slower 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 polar opinion about the reputation of PHP, it is quite easy to learn and widespread.



How modern young candidates study in comparison with past generations



HackerRank data again. Those who are now from 38 to 53 indicate games with 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 - a game at 15. I wrote all this on BC 010-01 , there was a Vilnius BASIC , also known as BASIC- 86 and focal. Eh.



Modern novice programmers (before the age of 21) write calculators and web sites as their first projects.



Among the representatives of generation X, almost half started writing code before the age of 16, many in general from 5 to 10 years old (mainly those who are now from 35 to 45 years old). It is more or less clear why: there were few sources of information, and to become a programmer it was really necessary to really want this, and those who really wanted to start programming early. Those who did not want so much, by now, most likely have a different profession, so the picture in sociology is just that.







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



findings



I did not find a concrete answer to the question whether a beginner web backend developer SQL is needed today, but he corrected his idea of ​​the modern population of programmers.



The next generation of developers - ordinary people, somewhat reminiscent of the previous housing issue only spoiled them . They satisfy the demand 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 it is an ordinary profession, no worse than others.



Those who know that Latensi L1 cache is ~ 4 cycles, and that it is better not to shoot cache lines unnecessarily, becomes smaller as a percentage of the total population size. However, they should not worry about employment, someone in the end should write low-level things where this is still necessary. Just as you should not worry, those who have deep fundamental knowledge in system design and acquired them in bloody practical battles, and not just follow the cargo cult. Because those who will be able to "just write code" and "just" use the frameworks in teams will become more, and in order to "not be excruciatingly painful for aimlessly lived years" (c) they will need to be balanced by just such people.



Soft skills from the category of desirable gradually migrate to mandatory (to confirm this, I do not have objective data, just practical observation). The number of programmers is growing, and all of them need to be directed to achieve a result, albeit by direct, albeit indirect control, but for this just need soft skills.



“Enter IT” seems to me to be a local regional history, characteristic of those locations where the income of a programmer is significantly different from the income of a specialist comparable in qualification to “not IT”. 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 thing is apparently happening in some kind of India. In evidence of this, I do not have either.



In general, the population of programmers is not in my opinion threatened. It’s not worth it to say that real programmers are not satisfied with the day and night, and that the 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 booming market requires from them and put aside for later that which they have not yet needed and will not bring benefit right now. They will learn when they need to, because they still want to learn. Probably, not everyone will be capable of this, but not everyone will need it, the market will in the foreseeable future make it easy to accept people who can quickly assemble another application concept on some framework.



All Articles