📜 ⬆️ ⬇️

How to independently analyze the labor market

At the moment, IT as a whole is one of the most dynamically developing areas. Every day there are hundreds of new libraries, every month someone comes up with a new language or platform - yes, there, there are whole directions. Time is running out and some lines in your resume become obsolete - roughly speaking, they no longer add points to you in the eyes of the employer. And some skills on the contrary, could significantly raise your rating.
How not to get lost in this sea of ​​opportunities, choose the most important and not make a mistake? Obviously, you need to keep abreast of and monitor the labor market. About how this can be done with your own bike - under the cut.

What should be our bike?


First , our tool must be able to compare the salaries of specialists and the popularity of a technology, programming language, or specific library by its name. I just want to write “c ++” in the search and enjoy the result.
Secondly , the tool we want to create must be accurate, otherwise I’ll just waste time.
Thirdly , it should allow filtering the source data. For example, the average salary of a java-programmer at the time of writing this article is 104763 rubles. Does this even tell us anything? - not! Without a city or even a region, without specifying work experience - this is the average temperature in the hospital.
Fourth , the tool should clearly represent the result - the comparison of the salaries of different specialists should be presented on one beautiful chart.

Are there other bikes?


Of course. But these are some other vehicles.

Periodically, the results of market research from various serious companies, for example , this one, appear on the network. These studies were performed at a high, qualitative level. Often they contain details on major cities and various programming languages. But I have not yet seen one that allows you to compare the salary of a PL-SQL and T-SQL programmer with 3 or more years of experience.
')
There are all sorts of programming language ratings that are updated quite often. But it is very difficult to extract practical benefits from them. For example, the python rating in March 2016 compared with March 2015 increased by 1.64% ... well, what's next?

Steering wheel, wheels and other parts ...


Data source


Obviously, the key detail is the source of the data - the success of our development largely depends on it. Such a source was found rather quickly - this is the API of the HeadHunter project . The API allows access to job openings posted on HeadHunter in json format. At the same time, it supports keyword search and filtering by a huge number of parameters. In the question of filtering, I identified two main criteria: work experience and location - as key factors affecting the level of wages.

Of course there are pitfalls:

Problem solving


Restrictions on the number of returned results for a single query are solved by parallel execution of several queries and combining the results. Thus, for each keyword, 4 queries are performed. The result of each query is aggregated and then combined with the others.

HeadHunter itself helps to solve the problem of different currencies by providing the actual directory of currencies in its API. During aggregation, all data is converted into rubles.

Jobs without a salary are basically not interesting to us, so they are excluded from the sample using the API filter itself. When specifying the salary range, the average is taken. When specifying the minimum or maximum salary - this value is taken as it is.

HeadHunter itself largely solves the problem of different keywords in vacancies, given the synonyms when searching for vacancies. If the request is so specific that HeadHunter does not know about it, you can always keep your own dictionary of synonyms. Since the API supports a specific query language , all alternative spellings can be listed through the OR operator.
General scheme of work


Technical implementation


I decided to implement my prototype in the form of a web application, in the process deepening my knowledge in the MEAN stack . Stunning graphics from highcharts.js were chosen to visualize the results; however, I am sure that there are a great many alternatives.

Enjoy the ride


What can we get in the end using our tool? Yes, whatever you like!
For example, you are interested in frontend, then let's compare the popular SPA frameworks: angular, ember and react.

Moscow, comparison Angular, Ember, React



React leads in wages, with a small margin ahead of Angular. Ember behaves quite modestly, already significantly behind React.
However, the following graph shows that the number of vacancies for an Angular developer is almost twice as much as for a React specialist. Ember is again lagging behind.
What can be concluded?
If Ember is your main tool - you need to think.
If you want to do the frontend and you have little experience - perhaps you should look at Angular, it will be easier to find a job.
If you know React like the back of your hand, I have good news for you - you did everything right.

Russia is a very big country, let's see what happens in other major cities using the same query. For example, let's take the third largest city in Russia - Novosibirsk:

Novosibirsk, comparison Angular, Ember, React



It seems that the situation has changed quantitatively, but not qualitatively. The level of wages is generally lower than in Moscow, however, the ratio remains: React specialists receive the most. And again the number of vacancies for the Angular developer is much more than for competitors.

Well, with the frontend sorted out. And what about our databases? Let's compare the demand and salaries of specialists for three popular DBMS in St. Petersburg:

St. Petersburg, MySQL, SQL Server, PostgreSQL comparison



Surprisingly, the level of wages is almost the same for all three DBMSs. But there is a serious difference in the number of vacancies - there are twice as many offers for MySQL than for SQL Server or PostgreSQL.

Now let's see what happens with our neighbors in Belarus. At the same time try to play with the filter on the experience. This time, we take three widely used programming languages:

Belarus, comparing Java, C ++, C #
Take the experience from 1 to 3 years:



And now we will look at more experienced programmers - from 3 to 6 years:



Pay attention to the sharp jump in the salary level of Java programmers after 3 years of work experience. In the category from 1 to 3 years of experience, C ++ is the leader in terms of wages, ahead of Java and C #. However, in the next category from 3 to 6 years of experience, Java is far ahead of both C ++ and C #. And the salary of C # programmers, initially inferior, is aligned with the salary level of C ++ specialists.

How to turn a bike into a limousine?


Employers are different: start-ups, “software” companies are large and not very, finally, companies whose business is not related to IT, but the less they develop something for internal needs. Startups are usually at the cutting edge of technology - they don’t need to drag a legacy of code behind them. Large companies should and can afford to spend resources on the introduction of new technologies. The rest is not doing so well. As a result, the labor market has some inertia - new technologies are not immediately in demand. Therefore, sometimes you need to look ahead and predict.

In summary, we can highlight the main points to improve our analysis:

Conclusion


There is one thing that no one can ever analyze for you - these are your personal preferences and interests. Indeed, for many IT specialists, work is not only a source of income, but also a hobby. Do what you like, but do not forget about the material.
Here I modestly provide a link to the project on GitHub .
I will be glad to constructive criticism and suggestions!

UPD 1: thanks to ikashnitsky , I replaced the pie charts for “St. Petersburg, comparison of MySQL, SQL Server, PostgreSQL” with histograms, due to their more informativeness.

Source: https://habr.com/ru/post/278651/


All Articles