.NET Developer Skills
I am sure that developers often wonder what their professional skills are most valued by companies. 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 us has likely gone far ahead.
With this publication, I begin a series of analytical articles on the analysis of necessary and demanded skills for various specializations in the Russian and foreign IT markets.
How was this study born?
Participating in the selection of both beginners and experienced developers, I gradually began to notice that many applicants do not have the basic necessary skills. And it's not about the specifics of a specific 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 on the most pressing aspects of the candidate’s interview. But it’s still more interesting to understand why developers do not learn certain skills, despite the sufficient work experience, and how can development be built in their place?
In which direction to develop: what skills and how to acquire?
So, imagine yourself in the place of the beginning 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 garbage collector device. Basic knowledge and skills that allow you to create .NET applications in place - why not a .NET developer? But periodically, Vasily thinks that it is time to move on, and not always remain a Junior developer. How to grow further? What are the options?
Vasily looks at the career of his senior colleagues and the simplest option comes into his head: I’ll sit in my place of work for about 5 years, actively participating in projects - and then, most likely, they will make me a Senior developer or, God forbid, an architect. But Vasya’s inner voice does not give rest: it may not be 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 to develop them in yourself?
What options does Vasya have?
It is quite logical to look for information about what skills are relevant in IT right now and how to pump them on some specialized Internet resource. What immediately comes to mind: Habrahabr , RSDN ,SQL.ru ? But no, these resources are more likely to broaden our horizons than give us information about what skills are now in demand. There are other resources that are dedicated to skills training, 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 one's horizons and for developing specific skills, but they still cannot answer Vasily’s question: in what direction should he develop? In total, we have many resources that allow you to pump certain skills, but, unfortunately, do not answer the questions: in which direction to develop and what set of skills to develop? Remember how you answered these questions: intuitively?
And so we all face a difficult choice of direction of development. Some of us are lucky with an experienced leader or a mentor colleague who helps to go up a notch or suggest a direction for development. But most are alone with this problem.
Required skills in employer vacancies
The problem of people choosing the direction of development did not give me rest for a long time. And so, once, when my friends and I were sitting in one of Moscow's pubs, I decided to use a collective mind with elements of intoxicating doping. And after the next ale mug, an idea came to us: the skills that need to be developed should be in demand by the labor market, so the portrait of the sought-after 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, indicating requirements for applicants: a specific list of required knowledge and skills. So what then stood up? You just need to analyze this base and as a result, in theory, we will have the answer to our question. HeadHunter was immediately selected as a source of information on vacancies, as the most popular resource for posting vacancies for IT companies. We entered in the search box the query .net developer and saw several hundred results. At this moment, frankly, our ardor faded: the volume 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 various analytics on the geographical distribution of salaries and the demand for specific programming languages.
But the enthusiasm did not fade away, therefore, as an avid developer, I wrote a small program that allowed me to automate the collection of information on HeadHunter vacancies and get the necessary statistics.
Skill Demand Rating
The sample for analysis amounted to 300 current vacancies. A list of required skills was extracted from the description of each vacancy, and the following statistics were collected for each of the acquired skills:
- The number of mentions of the skill in the analyzed vacancies, and, accordingly, the percentage of the number of mentions of the skill in the vacancies and the total number of reviewed vacancies. In fact, this indicator is considered the level of demand or popularity of the skill.
- The average salary among all the vacancies that mentioned this skill.
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 ranking included 10 popular skills in each of the three categories.
ASP.NET MVC wins in technologies by a wide margin: the demand for ownership of this technology was met in 3 out of 4 vacancies. As a former desktop developer, it was a revelation to me that all desktop UI technologies lose ASP.NET MVC 6 times, and in total WPF and Windows Forms lose 2.5 times. According to statistics, the fate of the development of desktop interfaces seems rather vague.
I noted one more 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 outdated 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 when developing their applications.
In second place is still the “must have” skill of working with SQL Server and using Transact-SQL in every second job. A third of jobs 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 is at the top: the ORM market is still quite fragmented - many still continue to write their own ORMs, and alternative platforms with a good history like NHibernate are also popular.
We still have the most demanded skill in object-oriented programming. OOP ownership is required in every fourth vacancy.
I was a little surprised that after the OOP skill immediately there is the skill of requirements analysis. I doubt that employers mean writing 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 more is required from the developer than just code writing.
Then come quite ordinary skills: working with version control systems, architectural design and design patterns - these skills are required in every fourth job.
It is also worth noting that the skill “architecture of highly loaded systems” breaks into the top 10 skills, which is undoubtedly connected with the existing industry-wide trend. At the same time, the vacancies that mention this skill, on average, have the highest salary level - 130 thousand rubles.
General competency rating
It is unlikely for you to be a revelation that among soft skills the most popular skill is 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 independence, responsibility and communication skills. And completing the list is the skill “ability to express one’s thoughts”: according to statistics, among 25 developers, only one who knows how to express their thoughts correctly is enough - the rest is not necessary.
The highest paid skill that is quite expected is spoken and written English. The average level of payment in vacancies where it is mentioned is 135 thousand rubles.
A sought after .NET developer
So who is he, the sought-after and highly paid .NET developer that we should follow?
Judging by statistics, the portrait of such a developer is as follows.
On the other hand, he should be the guru of object-oriented programming, while at the same time be a little carried away by the analysis of requirements, of course, design the architecture of applications, ideally high-load ones.
Read, write and speak English, be an independent and responsible team player. Well, and do not disdain communicating with colleagues.
To be continued…
In the next article, I will conduct a similar analysis of the foreign job market: what skills are required from a .NET developer “beyond the hill”?
I want to hear your opinion on what specializations it will be interesting to see such analytics, and do these statistics really help us find the answer to the question, what skills do we need to develop, or is the topic still not closed?
Only registered users can participate in the survey. Please come in.
By what specialization are you interested in seeing similar analytics?
- 51.8% Java Developer 138
- 33.4% Project Manager 89
- 14.6% Tester 39