
I am sure that developers often wonder what their professional skills of the company value most. For example, when changing jobs, or when they suddenly discover that they have been working in a company for so long that the world around it has most likely gone far ahead.
With this publication I begin a cycle of analytical articles on the analysis of the necessary and demanded skills for various specializations in the Russian and foreign IT-market.
How was this study born?
')
Participating in the selection of both beginners and experienced developers, gradually began to notice that many applicants do not have the basic necessary skills. And it's not about the specifics of a particular subject area, but about the basic knowledge of developing applications on the .NET platform. Such interviews usually end with a discussion with colleagues over a cup of tea of ​​the most acute moments of the candidate's interview. But it is still more interesting to find out why the developers do not master these or other skills, despite the sufficient work experience, and how can we build development in their place?
In which direction to develop: what skills and how to acquire?
So, imagine yourself in the place of the novice developer Vasya. 2 years of work as a programmer allowed Vasily to learn the basics of the .NET Framework, learn how to work with SQL Server and even read about the device of the garbage collector. Basic knowledge and skills to create .NET applications are in place - what is a non-.NET developer? But from time to time Vasily thinks that it would be time to move on, not always being a Junior developer. How to grow further? What are the options?

Vasily looks at the career of his senior colleagues and the easiest option comes to his head: I will sit at my place of work for 5 years, actively participating in projects - and then, most likely, they will make me a Senior Developer or, God forbid, an architect. But the inner voice doesn’t give Vasya any peace: maybe not everything is so simple, because the leading developer and architect have some special skills that distinguish them from other developers - you may need to figure out what these skills are and what needs to be done to develop them in yourself?
What options does Vasya have?
It is quite logical to look for information about what skills are now relevant in IT and how to pump them on some specialized Internet resource. What immediately comes to mind:
Habrahabr ,
RDN ,
SQL.ru ? But no, these resources expand our horizons rather than give us information about what skills are now in demand. There are other resources that are devoted to learning skills, for example:
Pluralsight and
Coursera - if Vasya knew exactly what he wanted to learn, these resources would help him. And, of course, do not forget about professional conferences. They are also useful both for broadening horizons and developing specific skills, but still cannot answer the question of Vasily: in which direction should he develop? So, we have a lot of resources that allow us to pump out certain skills, but, unfortunately, do not give an answer to the questions: in what direction should we develop and what set of skills to develop? Remember how you answered these questions: intuitively?
And this is how we all face a difficult choice of development direction. Some of us are lucky to have an experienced leader or a mentor colleague who help us climb a step above or suggest a direction of development. But the majority is alone with this problem.
Required skills in employers
The problem of people choosing the direction of development did not give me peace for a long time. And so, once, when my friends and I were sitting in a Moscow pub, I decided to use the collective mind with elements of intoxicating doping. And after another ale mug, an idea came to us: the skills that need to be developed should be demanded by the labor market, therefore the portrait of a demanded developer or architect should have some reflection in the vacancies of employers.
Nowadays there is a huge amount of public resources on which employers place vacancies, denoting the requirements for applicants: a specific list of required knowledge and skills. So what was the matter then? You just need to analyze this database and as a result, we, in theory, will have the answer to our question. HeadHunter was immediately chosen as a source of information on vacancies, as the most popular resource for posting IT company vacancies. We entered a
.net developer request into the search
box and saw several hundred results. At this moment, frankly, our ardor faded away: the amount of manual labor exceeded the degree of our enthusiasm.
Of course, I tried to find ready-made reviews and analytics on the skills required by employers, but, alas, nothing useful was found, except for different analysts on the geographical distribution of salaries and the relevance of specific programming languages.
But the enthusiasm did not fade away, therefore, being an avid developer, I wrote a small program that allowed us to automate the collection of information on HeadHunter vacancies and get the necessary statistics.
Skill demand rating
The sample for analysis was 300 current vacancies. From the description of each vacancy, a list of required skills was extracted, and the following statistics were collected for each of the obtained skills:
- The number of references to the skill in the analyzed vacancies, and, accordingly, the percentage ratio of the number of references to the skill in the vacancies and the total number of vacancies considered. In fact, this indicator is considered the level of demand or popularity of the skill.
- The average salary level among all vacancies in which this skill was mentioned.
All acquired skills are grouped into three categories: hard skills, soft skills, and technology — so as not to compare skills between these categories, since this comparison would look strange and useless.
The final rating included 10 popular skills in each of the three categories.
Technology rating
ASP.NET MVC wins by a wide margin in technology: the requirement to own this technology was encountered in 3 of 4 vacancies. As a former desktop developer, it was a revelation that all the desktop UI technologies lose ASP.NET MVC 6 times, and in the total WPF and Windows Forms lose 2.5 times. If you believe the statistics, the fate of the development of desktop interfaces seems quite vague.
I noted another interesting fact: WPF and Windows Forms have the same level of demand - about 15%. At first, I thought that this was due to the transfer of applications from the aging Windows Forms technology to WPF, but it turned out that these skills were required in the same vacancies only in 2% of cases, that is, some companies still use Windows Forms, and other companies are already using WPF to develop their applications.
In second place is still the “must have” skill of working with SQL Server and using Transact-SQL in every second job. Third of vacancies require knowledge of WCF, XML and XSLT. In every fourth - LINQ. Well, and completes the list - EF. I have a hypothesis about why EF is at the bottom of the list, and SQL Server at the top: the ORM market is still quite fragmented - many still continue to write their own ORM, and alternative platforms with a good story like NHibernate are popular.
If you look at wage statistics, the most highly paid jobs are those that mention HTML, CSS, AJAX, jQuery and JavaScript (other JavaScript platforms were mentioned in the vacancies, but rarely, and therefore did not make it to the top list).
Skill rating
As before, we have the most claimed skill in object-oriented programming. OOP ownership is required in every fourth vacancy.
I was a little surprised that after the OOP skill, the requirements analysis skill immediately takes place. I doubt that employers imply the writing of requirements, most likely, the developer is required to actively participate in the process of analyzing requirements in one form or another. However, there is a tendency that developers are required to do more than just write code.
Further, there are quite ordinary skills: working with version control systems, architecture design and design patterns - these skills are required in every fourth job.
It is also worth noting that the skill “architecture of high-loaded systems” is breaking through into the top 10 skills, which is undoubtedly related to the existing industry-wide trend. At the same time, vacancies in which this skill is mentioned, on average, have the highest salary level - 130 thousand rubles.
Overall competency rating
It is unlikely that it will be a revelation to you that among soft skills the most popular skill is the knowledge of English at the level of reading technical documentation. This skill is required in every third job.
The second most popular skill is teamwork, which is required in every fourth job. Of course, the top 10 included such skills as autonomy, responsibility and communication skills. And completing the list is the skill of “expressing one's thoughts”: if you believe the statistics, then among 25 developers, all you need is just one who knows how to state his thoughts correctly - the rest are not at all necessary.
The highest paid skill, which is quite expected - spoken and written English. The average level of payment in vacancies where it is mentioned is 135 thousand rubles.
Demanded .NET developer
So who is he, a sought-after and highly paid .NET developer, on whom we should be equal?
Judging by the statistics, the portrait of such a developer is as follows.
ASP.NET MVC developer, who is “on you” with SQL Server and Transact-SQL, owning a stack of web technologies (HTML, CSS, JavaScript, AJAX and jQuery), able to create and use WCF services, well, of course, able convert XML data.
On the other hand, he should be an object-oriented programming guru, while taking a little bit of interest in requirements analysis, of course, design application architecture, ideally, high-loaded applications.
Read, write and speak English, be an independent and responsible team player. Well, do not disdain to communicate with colleagues.
To be continued…
In the next article, I will conduct a similar analysis on the foreign job market: what skills are required from a .NET developer “over the hill”?
I want to hear your opinion on what specializations it will be interesting to see such analytics, and does this statistic really help us find the answer to the question, what skills do we need to develop, or is the topic not yet closed?