Rating of programming languages. Rating of programming languages

It is no secret to anyone that there is a huge demand in the world for specialists in the fields of science, technology, engineering and computing, and that this work is very, very highly paid. Between 2007 and 2012, the number of vacancies related to programming grew by 31%. Thus, the demand for specialists in this field grew about three times faster than the demand for any other workforce. The US Bureau of Labor Statistics estimates that vacancies for the position of developer will grow by another 22% during 2012-2022. Medium wage developer software as of May 2016 was $100,080 per year.

If you decide to learn how to code, a huge number of programming languages ​​​​can drive you crazy at first, a logical question will arise in your head - which language should you really learn? In this article, we will try to compare some of the features (comparison of salaries, popularity and future prospects) associated with different programming languages.

Brief description of programming languages

Before comparing features, let's first take a quick look at the programming languages ​​we'll be talking about.

Dynamic languages

Dynamic languages ​​are often easier for novice programmers to learn because of their flexibility and fun. You can quickly create a program that will do what you need from scratch and with a small amount code, and also without any strict writing rules. Because dynamic languages ​​are usually high-level languages, you can spend less time understanding the details and more time learning about programming concepts. And this is another reason why dynamic programming languages ​​are more popular among beginners who are inspired by their results achieved in a very short time.

JavaScript

Don't confuse JavaScript with Java. JavaScript is a basic scripting language that is used for front-end development and runs on the client's device. The JavaScript language is compatible with all browsers and is used to create interactive web applications, quite often using libraries like jQuery and front-end frameworks like AngularJS, Ember.js, React and others.

JavaScript can also be used as a server-side language based on the Node.js platform. Two years ago, Node.js was just starting out, but since then, the number of its supporters has grown significantly. Here you can find many resources dedicated to this platform. You can also build hybrid mobile apps with JavaScript using a framework like phonegap, and React Native will help you develop native mobile apps using JavaScript.

However, JavaScript is considered to be complex because of its untyped language. Therefore, programs written in this language are difficult to debug. However, there are statically typed versions, such as Microsoft's TypeScript or JSX, which React uses.

The Ruby language was designed to keep developers interested while keeping them productive. high level. The Ruby language gained its popularity thanks to the Ruby on Rails framework. It is a comprehensive framework optimized for all the necessary programming needs. Since Ruby code is easy to read, and Rails has built-in tools that make it easier for a developer, many experts advise starting to learn programming with this language.
The Ruby language is mostly used for back-end development, and many popular websites like Airbnb, Shopify, Bloomberg, Hulu, Slideshare have been built using the Ruby on Rails framework.

Python is another language that is highly recommended for beginners to learn. Also, Python is the most common introductory programming language at the top universities in the United States. Developers have used Python to achieve similarities between desktop programs and web applications. The language also offers great tools for data analysis. In addition, the Python language is widely used in scientific computing, data analysis, and bioinformatics research circles.

Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV and other resources were created in Python.

PHP is a server-side scripting language that is considered simple enough for an entry-level user. It is enough just to imagine what function the PHP code performs. Most websites were created using PHP language, since it is largely specialized for the web.

When creating such well-known resources as Facebook, Wikipedia, Yahoo!, Tumblr, WordPress, etc., the PHP programming language was widely used.

Static typed languages

Programs written with statically typed languages ​​are considered more customizable, stable, and maintainable. Static languages ​​are usually more strict in looking for type checking errors. It also needs more code to create a prototype. Game engines, mobile apps, and enterprise-level back-ends are typically built using statically typed programming languages.

Java is a universal programming language that is used to create Android apps, desktop programs, and games. Java is also commonly used for enterprise back-end development: 90 percent of Fortune 500 companies use Java.

What's more, Hadoop is a popular Java-based framework that is used to store and transfer large amounts of data and is embedded in web services such as Yahoo, Facebook, and Amazon.

The C language is commonly used for programming system software and is considered an intermediary language for operating systems.

The C programming language has influenced almost every language we'll cover in this article, especially Objective-C and C++. Therefore, if you know C well, it may be easier for you to delve into other popular programming languages.

Because C uses more complex code to solve simple problems, it can be difficult for beginners to keep their interest if it's the first programming language they learn. However, knowing the C language will definitely help you as a programmer in the long run.

Objective-C / Swift (for iOS development)

The Objective-C language is a kind of add-on to the C language, which makes it static. However, it can also be used for dynamic typing. Apple's Swift is a static language designed to be compatible with Objective-C, but being statically typed makes it more error-resistant.

The Swift language (influenced by Python) was designed to make life easier for the novice programmer and aims to fix some of the problems with Objective-C.

C++ is a powerful language based on C. It was originally developed for software programming systems, but is often used to create games/game engines, desktop, mobile and web applications. C++ is powerful and fast - even the creators of Facebook have developed several high performance and reliable components using this language. A lot of software has been written in C++, including Adobe Systems, Amazon, Paypal, Chrome, etc. As with C, C++ is considered difficult to read. self-study newcomers. So, if you decide to learn C++ as your first programming language, it's best to find a mentor through Meetups or Codementor.

C# ("C Sharp") was created for Microsoft's .NET framework, which runs primarily on Microsoft Windows.

C# is used for web development, game creation, and general Microsoft development. While Microsoft hasn't been cross-platform before, Xamarin is powered by an open source project called Mono that aims to port C# to other platforms as well as add better tools for Linux developers. More recently, you can also use C# to create native iOS and Android mobile apps through Xamarin.

Other

SQL ("Sequel"), or Structured Query Language, is a query language that is used to interact with databases. While SQL cannot be used to build applications, it can be used to manage data in applications that use relational database management systems (RDMS).

Job Opportunities

So, now you have some knowledge about different programming languages ​​and the difficulties that come with them. However, not all languages ​​are equally in demand and equally paid. If you're looking to learn programming to improve your employability and don't mind the complexity of the language, here are some tips to help you decide which language to learn.

Based on indeed.com's salary estimates, we can divide programming languages ​​into 9 categories:

The results show that Ruby/Ruby on Rails will help you earn the most, with Python, C++, iOS, and JavaScript also being worthy options. Plus, if your primary goal is income, then C, PHP, and SQL aren't ideal options...or are they?

The average salary can depend on many factors, such as demand (how many vacancies there are), supply (how many developers know the language), and experience (a junior developer will naturally be paid less than a senior developer). So before making a decision in someone's favor, it is worth knowing such details better.

The future of each of the programming languages

How necessary will any programming language be in the future? First of all, the future of the language will largely depend on the growth of its fans, because it is the level of influx of fresh personnel and the level of absorption that maintains the popularity of the language and guarantees continued provision of resources. So, let's see what programming languages ​​people are most interested in learning:

It seems that Python, JavaScript, Java (in 2014 C# ranked third) and C++ got the highest scores. Based on the data we have, we can draw the following conclusions:

JavaScript

Without a doubt, JavaScript is only gaining popularity, especially since it can now be used for back-end development and even build native mobile apps (via React Native). JavaScript continues to receive a large number of new tools at a fairly fast pace, so it can be assumed that this language will be very important in the future.

Startups love Ruby on Rails. Many famous sites including Airbnb, Twitch, Hulu, etc. are based on Ruby on Rails, which means they always need Ruby developers. Also, since developers are always interested in working on Ruby on Rails, because everything is simple and clear there, this framework is likely to remain popular among beginners.

On the other hand, the rise of Node.js will definitely affect the spread of Ruby on Rails - Node.js has already surpassed Rails on Github. And while it's not a 100% guarantee that Node.js will replace Rails, it's worth noting that just a few years ago, Rails overtook Python's most significant back-end development framework, Django.

Among other things, the trend of "isomorphic" applications is likely to affect the adoption of Rails - a practice that is designed to improve the performance of a web application. Because isomorphic applications must largely run on the Node.js platform, which is included with JavaScript, it is likely that Node.js will gain popularity over time. Also, the desire to be an expert in only one language (JavaScript) can turn newbies away from learning Ruby. Go by Google is another back-end alternative that has received more and more attention over the past two years.

However, given the fact that Rails is constantly updated with updates, it will continue to be popular for a long time to come. Not to mention the incredibly loyal support with a ton of useful tools to help simplify the development process. Therefore, despite the decline in popularity, Ruby will still be with us.

The Python language is widely used among scientific researchers and data scientists. In addition, as we have said before, many educational establishments decide to start learning programming with Python. And this means that this language will develop steadily in the future and will also be in demand. And although Python is not developing and gaining popularity as rapidly as JavaScript, it will continue to strengthen its position, especially given the large demand for data scientists and scientists.

Back-end development has veered slightly away from PHP over the past few years, but 80% of the web's websites are still built in PHP. After all, the language was created for the web.

However, if you google what programming languages ​​a novice programmer should learn, you will see that most developers do not recommend learning PHP. Moreover, many developers hate this language.

PHP proponents are trying to get rid of bad reputation, creating new guides on how to properly code in PHP, as well as developing new tools. But in general, the development of the language stopped back in 2015 (at least in the United States). And while some hoped that PHP7 would resurrect interest, it still remains a bit fragmented.

The Android system has made a significant contribution to the popularity and spread of the Java programming language, and many enterprises love it for its relative stability and flexibility.

Given the rise in popularity of Spark (which uses the Scala language) and Cassandra (which supports other languages), it's difficult to estimate how long Hadoop will retain its lead in the rankings of the most popular large frameworks. However, given how large enterprises are responding to change, Hadoop is not going to leave the scene anytime soon. The same can be said for the Java programming language in general, because it has excellent tools for back-end development, and also because this language is common in enterprise application development.

Thus, the Java language will remain one of the most popular for years to come.

Objective-C/Swift
Since Apple released Swift and Objective-C only works for Apple products, don't expect Objective-C to be in demand in the future. At the same time, Swift will certainly be in demand for many more years, as long as people continue to use Apple products.

However, this does not mean that you do not need to learn Objective-C in 2017, because most iOS development projects are still written in Objective-C. Simply put, it's not very useful to use something you don't understand. Needless to say, you won't have any trouble learning Objective-C if you know Swift and vice versa.

It is difficult to compare C with other programming languages. However, since this language is an intermediary language for operating systems and many development tools are written in C, including Linux, the language will remain relevant.

Almost all database administrators know and understand the SQL language. For a while, SQL might have seemed to lose its importance with the advent of NoSQL services like MongoDB and Redis, and non-SQL computing platforms with large databases, including Hadoop, Spark, and Cassandra. Many people thought that the era of SQL was coming to an end.

With the growth of large datasets and the difficulty in managing them, SQL is more relevant than ever (as you may have guessed from the job growth trends). Google also recently upgraded its BigQuery service and it can now process up to 100,000 rows per second. This service also uses the SQL language. Spark, since version 1.3, also has the Spark SQL module. With products like ClustrixDB, DeepSQL, MemSQL, and VoltDB, all you need to do is just add nodes instead of downloading an entire database server.

One way or another, the SQL language is in demand again, because it is needed to manage and analyze (not store) large amounts of data. The developer community is even predicting some sort of SQL join and NoSQL. Be that as it may, it is safe to say that the SQL language will still remain relevant.

C++ is still considered the most powerful programming language in terms of performance and features (even against Rust). Obviously, C++ will continue to be in demand in certain sectors where high performance needs to be maintained (such as game engines). Since ISOCPP (International Organization for Standardization) has already finished its work on the C++17 standard (which is already in the final stretch of the ISO vote on ISO standardization), it is likely that developers will begin work on C++20 as early as July 207. So, needless to say, the C++ programming language is still evolving.

Perhaps Rust will replace C++ in certain areas of system programming in the future. After all, Rust aims to create less vulnerable software than C++ programs. You can find more information about comparing Rust with other programming languages ​​here. Regardless of whether Rust really replaces C++, it's time to start learning Rust if you're an advanced developer.

The fact that C# is limited Microsoft platforms and is closed source, has done little to improve the language in the past, but, thank God, Mono has come to the rescue (although Mono has had some problems in the past, recent updates have improved things a lot).

Developers who have worked with the C# language seem to love it very much, and the spread of this programming language is gaining momentum. Needless to say, C# is the main language of Unity 3D, a very popular game engine that is compatible with iOS, Linux and other systems. The rise of Unity3D as an independent game engine and virtual reality applications have solidified the future of C#. Insofar as a virtual reality has become very widespread and will continue to be popular in the future, the C# programming language definitely has a bright future.

In addition, C# is also fairly common in enterprise development outside of the United States, such as in the UK. Clearly, Microsoft will keep C# alive as well as keeping it relevant to the .NET platform. In fact, the company is actively working on opening the code of its products and creating favorable and accessible conditions for their development by developers.

Conclusion

What language should a beginner programmer learn? Obviously, if you want to dedicate yourself to web development, you need to learn JavaScript whether you want to or not. If you want to work in the back end, you simply must know SQL.

Next, if you want to do website database analysis or if you would like to become a data scientist, you should learn Python. If you want to work with enterprise development, take Java seriously. If you're not interested in building a product, but just looking for a job, SQL is a good place to start (especially if you're into math).

One way or another, the choice of programming language in 2017 will depend entirely on what you want to do.

Many people who are not related to the IT field, at the beginning of their journey, think about the topic: what programming language to learn? After all, there are a lot of languages, about a thousand. However, there is no single correct answer to the question of which programming language is best. Each language was created to solve specific problems. Over time, some of them have lost relevance, respectively, these languages ​​have faded into the background. The leading positions were occupied by languages ​​that meet the needs of large corporations, businesses engaged in activities on the Internet platform. To find out the demand for a language in the IT technology market, as well as to simplify the task of choosing for yourself, if you decide to start programming, ratings of programming languages ​​will help you.

What is a rating?

Programming language rating is a measure of his popularity, determined on the basis of one or more criteria. For example, the language queries of users on the Internet, the number of downloaded software, the number of forum discussions, the number of vacancies in the market. For example, here is how you can calculate the Java rating among the four languages ​​​​based on user requests on the Internet:

Where n is the number of user queries by language on the Internet.

What are the ratings?

The rating does not answer the question of which programming language is better; rather, it characterizes the popularity of its use. Below are ratings from various companies that have been monitoring the popularity of programming languages ​​for a long time. Company rating TIOBE Software(Fig. 1). The analysis of the ranking results includes data based on the search results of the 25 main search engines, including Google, Ebay, YouTube, Yahoo!, Wikipedia, Amazon, Bing. Figure 1. Rating from TIOBE Software Rating red monk(Fig. 2) uses GitHub and StackOverFlow data to compare languages. The parameters by which the rating is compiled are the frequency of discussion and use of the language in projects. Figure 2. Rating from Red Monk Rating PYPL(Figure 3) is based on an analysis of the frequency of searches for language documentation in Google. The more requests, the more popular this language is considered. Initial data comes from Google Trends. Figure 3. PYPL rating Rating compiled by the Institute of Electrical and Electronics Engineers IEEE Spectrum (Figure 4). It uses data from 12 sources including Google, GitHub, StackOverFlow, Reddit, Twitter, Career Builder, Dice, IEEE Xplore. Figure 4. IEEE Spectrum Ranking 2017 Figure 5 shows the leaders among the language queries on StackOverFlow (data as of the end of June 2018). Figure 5. Language queries on StackOverFlow And Fig. 6 shows the dynamics of the popularity of language queries from Google Trends over the past 12 months (data as of the end of June 2018). Figure 6. Dynamics of requests by languages ​​Java, C++, Python, JavaScript, C#

We analyze ratings and narrow the search

What conclusions can be drawn from these rankings? Despite some differences in the distribution of language places, the leaders are Java, JavaScript, Python, C. These four languages ​​occupy about 60% of the total use of programming languages ​​in the world. Therefore, by choosing one of them, you will be in the trend of technology.

We study the "candidates" closer

So what programming language to learn, if you choose from these four? To decide, you need to take into account several important points. If you want to make money by programming, and to be treated like a serious developer, take a look at Java and the C family of languages. By learning one of these languages, you will master basic concepts and fundamental programming fundamentals necessary for any programmer: variables, types, return values, methods, functions, expressions, initialization and life cycle, algorithms, input/output streams. C++ is worth learning if you want to, for example, write various application programs or games. C is closer to the hardware and is used for low-level programming. Suitable, for example, for writing drivers and operating systems. The C# language is created in the image and likeness of Java, only with a syntax even closer to C++ and is used primarily for development software products for NET.Framework and Windows platforms. As for Java, it has established itself as a fast (Fig. 7), reliable and platform-independent language, which makes it the best programming language for developing enterprise applications - enterprise-wide applications. Java has been a leader in the job market for programmers for a long time. This is evidenced by the results of monitoring vacancies from IEEE Spectrum for the last 4 years, as well as data from Indeed :

The Java language was created to simplify the work of programmers and reduce the requirements for their skills, so it is easier and more "fail safe" to use than C and C++. To properly program in C or C++, you need to have a fairly high qualification, since these languages ​​​​have the ability to use low-level programming tools. With an insufficient level of knowledge, the likelihood of writing insecure and obfuscated code that is difficult to debug using these languages ​​is much higher than in Java. Java is an easy-to-learn language that can be mastered "without leaving home" thanks to the huge amount of material on the Internet and various online learning resources, so I advise you to take a closer look at it as the first language to learn. Thanks to the existence of forums such as StackOverFlow, Javatalks, and Cyberforum, when learning Java, you can easily find the answer to any question on the topic of programming. In addition, Java developers are among the highest paid programmers. You can read more about this.

Let's summarize

So, if you have not yet decided on the first language to learn, follow these steps:
  1. Think about what you would like to do in the future (web development, development of applications and software for games, mobile development, development of server-side enterprise applications)
  2. View two or three major language rankings, review the popularity of languages ​​on the Internet
  3. Explore the job and salary market in your area (for example, on job search sites)
  4. Estimate your strengths and time that you can devote to learning programming

Java is the best choice

Why is Java the best programming language for the vast majority of beginners?
  • Knowing Java, with a high degree of probability you will be engaged in the development of enterprise applications. This work is well paid, because the customers are corporations, banks and large business players.
  • Knowledge of Java gives you the opportunity to engage in promising, actively developing and also well-paid mobile application development.
  • The vast majority of running enterprise server applications in the world are written in Java, so the language, even in the most pessimistic scenario, will be supported for many more years.
  • For many years, Java has been leading in terms of the number of vacancies. Often employers are large companies, and it is easier for a junu to develop in a large company than in a small one.
  • Java is quite easy to learn. Having mastered it, you will master the fundamentals of programming, necessary for any programmer. At the same time, after it it is very easy to learn JavaScript or Python and it is much easier to approach relatively complex C ++.
  • The Java language is easier to use than the languages ​​of the C family. At the same time, knowledge of Java allows you to rightfully be considered a professional developer.
  • And last but not least important point: Java development pays well.

Today, there are a huge number of programming languages, and it is difficult to choose a specific one for learning. To do this, you should evaluate several factors, including your preferences, and be interested in the technology industry and current trends. Entrepreneur Michael Garbeid assessed a range of sources and identified the top three languages ​​in 2018.

The three most popular programming languages ​​in 2018

Anna Samoydyuk

1.JavaScript

JavaScript is a dynamic programming language that basically allows you to add interactivity to websites. Many advise to start learning programming from it.

Stack Overflow, a popular site where programmers share their skills, conducts a survey among programmers every year and compiles statistics ranging from salaries to favorite technologies. In January 2018, the site surveyed more than 100,000 developers.

Chart of the most popular programming languages, according to Stack Overflow:

JavaScript topped this list for the sixth year in a row.

GitHub, the largest web service for hosting IT projects, also lists JavaScript as the most popular programming language.

According to a Stack Overflow survey, JavaScript developers earn about $55,000 a year. Programmers in the US who use this language earn about $98,000 a year.

The end of the year is a traditional time for summing up. We did not stand aside: we talk about the popularity of languages, the global and Russian employment market in the IT field, and the prospects for juniors.

What programming language was popular in 2017

TIOBE regularly publishes the YP popularity rating and the dynamics of its change. It is formed on the basis of the number of search queries with a mention of the language of the form “name of the language + programming”. At the end of 2017, the top five most popular languages ​​are Java, C, C++, Python and C#.

Additionally, based on the rating data, you can understand which of the languages ​​quickly gained or lost popularity over the year. R, MATLAB and Scratch made a big jump up. Significantly dropped down in the rankings Assembler, Perl, Visual Basic.

Popularity evaluates and PYPL index (Popularity of Programming Language Index). It shows how popular the programming language is among those who are still learning. The index is calculated by search queries for educational materials in Google.

Java also leads the PYPL ranking, followed by Python, PHP, JavaScript, and C#. The most popular language for learning in 2017 was Kotlin , which took nearly six years to complete before its first release last year. Kotlin is fully compatible with Java and can be used to develop Android applications.

In second place in the search for educational materials is typescript - language developed by Microsoft to create complex web applications. In fact, it is a JavaScript add-on.

The rest of the languages ​​that have grown in interest this year are JavaScript, R, VBA, Rust.

When comparing interest in learning languages ​​in dynamics over the past 10 years, we can see:

    stable interest in Java, JavaScript;

    growing towards Python, Swift, C#;

    declining to PHP, Perl, C++.

The non-standard popularity rating is Stack Overflow. Since 2011, he has been conducting a survey of programmers from all over the world every year. In 2017 in research 64 thousand people took part. One of the questions is: “Which language do you like the most / are horrified by working with it / would like to use more often?”

The answers in 2017 were distributed as follows:

love

Are horrified

Want to use more often

Rust

Visual Basic 6

Python

Smalltalk

JavaScript

typescript

CoffeeScript

Swift

VB.NET

MATLAB

Java

Python

Objective-C

typescript

Elixir

assembler

Perl

Swift

Scala

ruby

Clojure

Hack

Rust

JavaScript

Groovy

Common Lisp

Scala

Haskell

Dart

Erlang

Haskell

Julia

Java

ruby

Assembly

ruby

Java

Elixir

Julia

Objective-C

Clojure

Erlang

Erlang

Dart

Haskell

CoffeeScript

Common Lisp

Groovy

JavaScript

Perl

Rust language ranked first for the second year in a row, although in the TIOBE rankings it is in 43rd place. In the PYPL ranking, interest in studying it is growing. Most likely, the language is little known in programming circles, but those who work on it appreciate its capabilities.

The languages ​​that programmers want to learn better and use more often in their work are Python, JavaScript, Go, C++ and Java. All languages ​​except Go are at the top of the TIOBE rankings.

Survey of employment of programmers in the world

According to a study by Stack Overflow, the average employment rates for programmers are as follows:

Employment type. More than 83% of programmers work in the company on a full-time basis. Moreover, at the time of the survey, only 1.3% were looking for work. This is approximately 470 people out of 36,000 participants in the study.

Company size. Programmers work in companies of different sizes: most of the respondents (22.1%) work in companies with a headcount of 20 to 99 people, 18.7% in companies with a headcount of 100 to 499 people, and 14.6% in large companies. companies with over 10,000 employees.

Work searches. Of the 33,000 respondents, only 13.1% are actively looking for work. But 62.1% of respondents are ready to change jobs for a more interesting offer. Only 24.8% or 8,000 people are loyal to their current employer and are not interested in changing jobs.

When distributed by country, the smallest share of programmers looking for work in France is 8%, the largest number- in the USA, 12.7%.

Applicant specialization . The largest share among applicants is occupied by specialists in a related profile: machine learning and data science. Together they make up 27.5%, a third of all respondents-applicants in the IT field. Perhaps this is due to two reasons: insufficient market demand for such specialists and/or unsatisfied salary expectations.

average salary . 12,000 people took part in the survey on the level of pay. The first four places were taken by a popular DevOps professional and three positions related to the processing of big data.

It is noteworthy that when distributing by English-speaking countries - the USA, Canada, Great Britain - specialists in machine learning and data science also lead in salaries. In France, the highest paid specialist is a tester, while in the US and Canada it is the lowest paid position. In Germany and India, embedded developers earn the highest salaries, while in the UK, such specialists are on the bottom lines.

Dependence of salary on work experience . There is a direct dependence on work experience and receiving the highest possible wages. For example, specialists associated with Big Data should have 7-8 years of experience, a web developer - 7 years, a graphic designer - 6 years. Maximum work experience is expected from DevOps specialists - 9-10 years.

With programming languages, the situation is slightly different. Programmers with language proficiency above the blue line get paid more, even with little work experience. Programmers with languages ​​under the blue line earn less, even with years of experience. This is due to the total number of programmers using the language. Go, Rust or Hack languages ​​are in demand, but there are few developers for them. This creates a shortage of specialists and leads to competition between employers. Visually, the number of developers in each language is shown using the size of the circle.

Distant work . 44,000 programmers took part in the remote work study. Russia has become the absolute leader in the number of specialists working remotely all the time. In second place is Brazil. Together, they account for almost 40% of all respondents.

A large number is due to a lower standard of living than in other countries, and a vast territory. Low level forces people to look for jobs the best conditions, and large areas complicate the move. In the case of Russians, a work visa is still required to move and work full-time in another country. Usually, getting it causes certain difficulties, so Russian programmers often work remotely.

Not everyone can work remotely. The most frequently encountered professionals in remote work are graphic designer and graphic designer.

Overview of the labor market in the IT sector in Russia

The labor market in the IT sector grew less than last year. For comparison, the analytics for the last year is presented in the material “ ". Labor market statistics in Russia are compiled on the basis of statistics from the HeadHunter portal, which has been conducting a research project since 2016 hh Index .

Dynamics of vacancies . The number of vacancies for IT specialists was declining for almost the entire first half of 2017. The growth of vacancies began only in June and reached 31% by the end of the year compared to the same period in 2016.

For comparison, the overall increase in all vacancies in the first half of the year was generally negative, but by the end of the year it is +28%.

Growth of vacancies not uniform across industries. In 2017, the demand for civil servants, workers and security officers has doubled. Jobs in IT are at the bottom of the list: +31%. Less than programmers, accountants, hrs, advertisers, teachers and salespeople are required.

Employers are most looking for sellers - 34% of vacancies from the total number of all posted vacancies on the HeadHunter portal. In second place are IT specialists: 12% of all vacancies.

Resume Dynamics. The number of resumes of IT specialists in the first half of the year practically did not increase: + 1-2% compared to the previous year. Significant growth was in July and August, but decreased by mid-autumn. In percentage terms, the growth in the number of resumes is almost four times less than the number of vacancies, 8% versus 31%. This means that new vacancies are opened more often than new applicants enter the market.

The total number of resumes for other vacancies increases and decreases similarly to IT specialties.

At the end of 2017, the share of resumes of IT specialists in the total number of applicants was only 5%. Most of all in the bank of applicants HeadHunter posted current resumes for jobs without experience and sales.

competition between applicants. The HeadHunter portal monthly calculates the hh-index, which shows the ratio of the number of open vacancies to the number of active resumes or the number of job seekers per vacancy. IT typically has between two and 3.5 applicants for every job opening. For comparison, in general, for all vacancies, this indicator is 5.5-8.5, i.e. 2-3 times higher.

If we compare by industry, 1.3 candidates apply for one vacancy in insurance, 2 in medicine, 4.1 in real estate, and 7.6 in accounting. There are 9.5 candidates for each vacant position of a lawyer, 10.3 for the civil service, and 12.5 applicants for each position of a top manager.

For one IT-vacancy in Russia - 2.9 applicants.

City statistics. The growth of employers and applicants by city is not uniform. In Moscow, the number of vacancies increased by 23%, the number of resumes remained the same. The situation is the same in Samara: only the number of vacancies has increased by 28%. Of the cities considered, only in Kazan and Omsk the number of applicants is growing much faster than employers' offers.

The field of "Information Technology and the Internet" is famous for its high salaries: from 150,000 rubles. to infinity. This is the level of remuneration of highly qualified specialists and managers. But across the industry, salaries are generally higher for all types of professionals.

The highest average salary in the IT field in Moscow is 83,500 rubles. It is followed by St. Petersburg - 66,700 rubles, Novosibirsk - 62,800 rubles. and Yekaterinburg - 56,000 rubles. In other cities, it is approximately equal and ranges from 43,100 rubles. (Krasnoyarsk) up to 51,800 rubles. (Nizhny Novgorod).

The number of people per vacancy varies greatly. The largest number of applicants in Moscow, Ufa and Krasnoyarsk. Least of all in Novosibirsk and Yekaterinburg, 2 and 1.9 people, respectively. The less competition among candidates, the higher salaries offer companies. Therefore, the salary in these cities is at the level of St. Petersburg: Novosibirsk - 62,800 rubles, Yekaterinburg - 56,000 rubles. In cities with higher competition, salaries are lower: Krasnoyarsk - 3.2 people per place and salary - 43,100 rubles, Ufa - 3.3 people per place and salary - 44,100 rubles.

Applicant portrait the average for Russia is as follows:

    male (81%);

    work experience - 3-6 years (26%).

IT salaries always high in comparison with other sectors of the economy. The SuperJob portal generates the SJI salary index, which shows changes by month.

Overview of vacancies for the position of Junior in Russia

Jobs. Without work experience, 1800 specialists are required for vacancies in the field of programming and web development. Geographically, most of the vacancies are in Moscow - 18.1% and St. Petersburg - 9.1%.

Most of the vacancies involve full-time work in the employer's office. Only 4% of vacancies offer remote work, 11% - flexible hours. Less than 1% offer an internship. The average salary is 40,500 rubles.

Applicants are expected good knowledge theory, desire to learn and work in a team. Practical skills are often not required, but if they are, they will be an added advantage.

Applicants. At the end of 2017, 4,100 applicants apply for the junior position. All have less than one year of experience. Thus, the number of applicants per resume is 3 people.

Typical portrait of a candidate:

    male (89%);

    age is 18-30 years (86%);

    knowledge in English (93%).

The main share of candidates lives in Moscow and the region - 35.4% and St. Petersburg - 16.7%.

Every third candidate would like to work remotely. But 81% are willing to work full-time in an office.

The skills of the applicants overlap. Most candidates know HTML (24%). JavaScript and CSS know 20% each. Least of all among junior C programmers - only 6%.

Salary expectations . US students expect a first job salary of over $33,000 a year. Junior specialists expect the same salary with less than a year of work experience. If you translate the annual salary in the United States at the current rate, the salary level will be 160 thousand rubles a month. In Russia, senior-level specialists receive such a salary.

Salary expectations of potential juniors in Russia are much more modest. The expected average salary is 38,600 rubles. It is even 5% lower than employers are willing to offer. Moreover, only 7% of applicants expect a salary of 50,000 rubles. and higher.

Results

    Popular programming languages ​​according to the TIOBE rating: Java, C, C++, Python and C#, according to the PYPL rating: Java, Python, JavaScript, PHP and C#. According to a Stack Overflow poll, favorites are Rust, SmallTalk, TypeScript, Swift, and Go, and desired jobs are Python, JavaScript, Go, C#, and Java. Three leaders coincide in three ratings: Java, Python, C#.

    Assembler, Perl and Visual Basic are outsiders in 2017. Their positions have fallen over the year by four, four and six points, respectively. They are also among the top 10 programming languages ​​that are “terrifying” to work with, according to a study by Stack Overflow. According to the PYPL rating, over the past 10 years, interest in learning the Perl language has declined significantly. The world is also losing interest in learning PHP and C++.

    According to a Stack Overflow study, 83% of programmers work full-time, while only 10.2% are freelancers. Most work in medium-sized organizations (from 20 to 100 people). Only 13% are actively looking for work. One in four does not want to move to a new place at all. The leaders in remote work are Russia and Brazil, 22% and 17% of all respondents, respectively.

    The highest salaries are now for specialists employed in DevOps and Big DATA. Highly paid specializations vary by country: in the US and Canada, the UK - DevOps and Big DATA, in France - a tester, in Germany and India - an embedded systems developer.

    The ability to receive the highest possible salary depends on work experience. Each specialization has its own experience. However, in programming languages ​​the situation is different. Developers at young and in-demand PLs receive higher salaries, regardless of experience. Developers in old well-known languages, even with many years of experience, will receive less. This is due to competition among monolingual programmers.

    The growth of IT vacancies in Russia began in the second half of this year and is now +31% more than vacancies in November 2016. A significant increase in the number of resumes of candidates in IT was in July and August and decreased by mid-autumn. Now it is +8% compared to 2016. The total increase in the number of resumes is four times less than the increase in vacancies. This means that there are more vacancies than there are specialists on the market. The total number of resumes of IT specialists in the total volume is only 5%.

    Competition among applicants is low - 2.9 people for each open vacancy. The highest competition in Russia is in Moscow, Ufa and Krasnoyarsk: in two cities - 3.3, and in the last - 3.2. The lowest competition is in Novosibirsk - 2 candidates and Yekaterinburg - 1.9.

    The average salary in the IT sector in Russia is 58,900 rubles. The highest in Moscow is 83,500, the lowest in Voronezh is 40,900 rubles. The level of salary depends on the competition among applicants. The higher it is, the lower the average wages.

    At the end of 2017, the ratio of the number of applicants to the number of vacancies for the position of junior is 3 to 1. The vast majority of vacancies are waiting for specialists to work in the office (85%). 18% of vacancies are located in Moscow, 9% - in St. Petersburg. The average salary for a junior is 40,500 rubles.

    There are 4100 active resumes with work experience up to a year. 35% of applicants live in Moscow and the region, 16% in St. Petersburg. Every fourth applicant knows HTML, CSS and JavaScript. Junior applicants in Python - 8%, C - 6%, Java, PHP, C # - 12% each. The average expected salary is 38,600 rubles.

One of the most used systems for assessing the popularity of a programming language is TIOBE, the essence of which is to count the number of web pages that contain the name of a particular language.

However, this does not always indicate how many people are actually in this moment want to use or are using a programming language, so the GitHub team approached this issue from a different angle.

Their system called PYPL (PopularitY of Programming Languages) is based on the number of searches for tutorials: the more people search for tutorials on a particular programming language, the higher it ranks in PYPL.

10. Swift

The language hasn't been around for very long, but Apple wants it to be key around the world and across all platforms, including the web and Android, within the next 20 years.

9. R

R was created in 1993 and is now used by large companies to machine learning and big data analysis.

8. Objective-C

Despite the fact that Swift was originally released to replace Objective-C, this language is still popular and is at the forefront for iOS development. But that will probably change soon.

7. C++

The most popular products written in C++ are Windows and Google Chrome.

6.C

Dad can in Xi. This is probably why this language is used everywhere, and the code in it can be run literally on any computing platform.

5.JavaScript

It is this language that is usually ranked first in various ratings. However, according to GitHub, it is not the most popular. JavaScript is mainly used for developing web applications, but there are really no restrictions for it.

4.C#

C# was developed by Microsoft and is used primarily in related systems such as Windows phone. The Bing search engine is also written in C#.

3 PHP

This language is the most popular choice for backend development. Sites such as Facebook, VKontakte, Yahoo are written on it.

2.Python

Python was created in 1989 and seems to have grown in popularity ever since.

1 Java

It is believed that Java is mainly used in corporate development and banks, but the popularity of Android provided the first place for the language, because Java is the main language for this platform.