📜 ⬆️ ⬇️

Skills, tools, requirements - HackerRank's large-scale developer market research 2018



HackerRank this month provided an interesting analytics based on a survey of 39,441 developers. The survey raises many topical issues about the state of the IT market, the qualities demanded among developers and what programmers are looking for among potential employers. The report was interesting, many can be useful.

There are a lot of pictures under the cut.
')
1. Prologue

Hello world


In the future, the way we all work will change. No matter who you work for, it is important for everyone to learn programming, because it develops computational thinking (or computational thinking ), which plays an important role in decision making. Regular resumes will be a thing of the past and it is their skills that will come to the forefront in hiring new employees.

We launched HackerRank at the end of 2012 to help developers find a job that they like. Over the years we have grown a lot - now in our community, 3.2 million people and 2% of all new developer hires were made with our help last year.

And now we first surveyed our community of developers to figure out exactly how they work and how they learned it: when they first launched the code in the repository, how they learned to code, asked about their favorite programming languages ​​and frameworks, found out what they want from employers. We also asked HR managers about what exactly they are looking for in candidates for positions of developers and about many other things. We interviewed 39,441 people and are willing to share the knowledge that they have gained as a result.

Did you know that 1 out of 4 developers learned how to code before you got a driver's license?

We hope that our report will be useful for you.

Vivek Ravinskar, Co-founder / CEO HackerRank

Table of contents


  1. Prologue
  2. Training and education
  3. The most popular languages ​​and frameworks
  4. The most sought after skills
  5. Development tools
  6. How to hire a good developer
  7. Interesting Facts
  8. Research methodology



2. Training and education

1 out of 4 developers learned how to code before getting a driver's license


It can not be too early - or too late! - To learn how to code. Nearly a quarter (of the 39 thousand developers surveyed from around the world) wrote the first lines of code before they turned 16 years old.

At the same time, out of 5.2% of those developers who started programming after 26 years, 36% are now working in senior positions and above.



The emergence of affordable home PCs strongly motivated children of the 70s to learn how to code


Until the 1970s, there simply were no accessible ways to teach young people how to program - unlike the children of subsequent generations. If the guys of the first generation of home PCs wanted to do something innovative, they had to do it on their own. Therefore, 47% of all developers aged 45 to 54 began coding before they turned 16. But developers aged 18 to 24, on average, learn to program later - only 20% start to 16.

In their youth, the developers of the category “from 45 to 54” were among the first to work with the first home PCs, such as Acorn Archimedes, TRS-80, Commodore 64 and Apple II. Therefore (because for some reason it was not available to study programmers, or there was no place at all), young people with their first home PCs had a strong desire to learn how to code on their own.



In the UK, children are most motivated to learn programming.


Of the 17 countries that represent at least 100 developers in the study, the UK has the largest percentage of those who started coding from 5 to 10 years. Most of these developers are now over 30 or even 40.

When these developers were still in school, they developed and produced Acorn Archimedes computers at Cambridge. Thanks to the Tesco Computers to Schools supermarket program, in which shoppers in these supermarkets could donate to schools PCs, a large number of students had access to computers that were unique for those years.

Nowadays, British children are among the first who have programming in the school curriculum at the age of 5.

Politicians often repeat that the earlier children start programming, the sooner they take the first steps towards a career in development and the better they understand the principles of computational thinking and how different software affects their daily lives.



Almost all developers are drawn to self-education.


It seems that every year there is a new language, a framework or a library, which all development blogs are starting to buzz about - just yesterday everyone was talking about Backbone.js, and today AngularJS and React are in fashion. Therefore, self-education is commonplace for developers of any age.

Despite the fact that 67% of respondents have a higher education in the field of computer science, about 74% said that they are at least partially self-taught.

On average, developers know 4 programming languages ​​and want to learn another 4. Thirst for new knowledge varies slightly with age: young developers (from 18 to 24 years) plan to learn 6 new languages, and developers 35+ will learn 3 new languages.

Since programming is based on independent research aimed at solving various problems, self-study is an important part of what makes a developer successful. When a developer chooses what to learn, it is best to settle in a specific subject area and learn various tools to grow in it. Tools change all the time, so interest in programming should be fueled by curiosity and a sincere desire to develop and adapt to the existing needs of the technological environment.



Young people are studying on YouTube, not by textbooks


Not surprisingly, the number one self-taught platform of any age is Stack Overflow. Developers appreciate the advice of other developers who have already found solutions to their concerns and share step by step instructions for a particular solution.

Second place was shared by programming textbooks and YouTube, and older people choose books, and younger - video, because for different generations, effective ways of learning may differ. YouTube is chosen by 65% ​​of millenials (born in the 80s and 90s), books are chosen by 85% of the representatives of the “generation X” (born from the 60s to the 80s).

Each of these methods has its advantages. YouTube allows you to build and organize a training scheme no worse than at a university, but to study at your own, comfortable pace. Another advantage of educational videos on YouTube is relevance, because they quickly keep up with new technologies, and a new tutorial can be recorded in a day. At the same time, textbooks better help you learn fundamental knowledge.

Whatever learning method you choose, one thing is clear - we are on the verge of a powerful leap in the development of programming training.





3. The most popular languages ​​and frameworks

Developers teach the programming languages ​​that potential employers need.


Despite the fact that new programming languages ​​are constantly emerging, it is important for developers to master basic, well-established languages. Currently, the most sought-after languages ​​by employers are JavaScript, Java, Python, C ++, and C.





















There is no difference between the languages ​​that potential employers need and the languages ​​that developers know - most developers have told us that they know exactly Java, JavaScript, C and C ++, and Python.

The level of demand for language varies depending on the scope of the company that wants to hire a developer. For example, Java has been dominating the financial industry for many years. C programmers are hired by companies that make hardware because of direct access to the low-level API and the availability of compilers for many platforms. And various government organizations hire developers who own C #.

Demand for JavaScript framework knowledge above offer


Typically, programming languages ​​do not become popular as soon as they are developed, but JavaScript frameworks seriously change the situation. JavaScript frameworks are so in demand because, thanks to them, JS is applicable in the frontend, in the backend, in mobile development, and in the development of browser extensions. Now JavaScript rules the web, and the most popular frameworks are AngularJS, Node.js and React.



It is in these three frameworks that there is the greatest gap between the demand from employers and the possession of the framework by developers. React comes in first place - 33% of companies need this framework, but only 19% of developers know it. In other words, now is a great time for developers to start learning React, because it is well in demand in the market.

Such gaps between supply and demand can occur because the JavaScipt ecosystem is changing and evolving rapidly.



4. The most popular skills

Problem solving is the most important skill of a developer that almost all employers are looking for.


Problem solving is the most important skill for potential programmer employers, more important than mastery of programming languages, debugging bugs and systems architecture. That is, the use of computational thinking, the ability to solve large and complex tasks, in the work of the programmer is almost more important than the technical skills necessary for the work.

There is a small difference in what large companies and smaller companies are looking for in developers. For example, for small companies, knowledge of framework developers is a little more important than for large and medium-sized ones.

Most likely, this difference appears because it is important for startups to quickly update the code, and frameworks help to do this.



Practical experience is more important than a beautiful resume


There is a misconception that companies are more likely to take a graduate with a diploma in technical specialty, and moreover, from the university is more prestigious. Actually, Eycharam is more important than what you have achieved, and not where you studied. Most of the interviewed HR managers reported that first of all they look at the evidence that the developer applied his skills - where they worked, what was their experience, did they have their own projects, can they see their code on GitHub.

9 out of 10 Eycharov said that previous experience and developer experience was most important for them.

What a strong resume is usually built on (education, academic degrees, certificates of additional training) is in last place among what Eycharov cares about, because this is not proof that the developer has practical experience. The only real indicator of skills in a resume is just the experience, as skill grows with practical experience. It is impossible to carefully consider all the huge number of resumes, so if he is looking at something, it will be for years of experience - which may interfere with talented developers who grow very quickly in their careers.



For corporate executives, personal projects and portfolios on GitHub are important.


In addition to the usual resume, employers want developers to see personal projects and code on GitHub in order to be able to better assess their skills. When we sorted out data from employers by respondent positions, we saw that for top management, incl. founders, technical directors and vice-presidents of companies, a GitHub portfolio is more important than experience. The presence of higher education is important for them even less than Eycharam.

Most likely this happens because when a developer comes to the level of company management during the hiring process, the points important for a resume are no longer important. Most often, recruiters or other employees involved in the hiring process have already checked everything - and for top managers, the most important thing is to see the code in action: personal projects, previous experience, and a portfolio.





5. Working development tools

Developers are interested in programming languages ​​that have made large technical companies popular.


When we looked at the difference between the demand for specific programming languages ​​and the proposal from developers with knowledge of these languages, Go, Kotlin, Rust, Scala, and Swift were among the most sought-after, but unpopular languages ​​(for justice, Go is going to learn an order of magnitude more applicants than Swift). But the developers are planning to learn them, following the trend set by the companies in Silicon Valley.



Google's Go language offers developers support for simultaneous work, fast compilation, and, of course, extensive support from its creators. Google also popularized the Kotlin language when they left the familiar Java Android development.

Twitter drew attention to the easily scalable Scala when they outgrew Ruby on Rails and began to look for a more efficient and payable alternative. Finally, when Apple switched from Objective-C to Swift, developers had to adjust to this.

Python comes first


So far, the most popular language among employers is Javascript, and the most favorite among developers of any age group is Python, if you look at our “indicator of love and hate.” Python also leads among the languages ​​that developers want to learn, and a significant proportion of respondents already know it.













The language preference graph is based on a “measure of love and hate.” To calculate it, we took the% of developers who love the programming language / framework and subtract from it the% of developers who do not like it. So we appreciated the positive or negative attitude of developers to languages ​​and frameworks. On the graph, 100% = very positive attitude, -100% = sharply negative attitude.

Python is renowned for its simplicity, code readability and the wide availability of research libraries. It is also increasingly being included in introductory computer science courses.

We noticed an unusual trend that concerns younger languages: young developers do not like newer languages ​​(Go, Kotlin and Scala), and they don’t like more than older developers. The biggest difference in the “indicator of love and hate” by age group for Go is that developers from 18 to 24 years old do not pay much attention to it, and for developers from 45 to 54 this is one of the most favorite languages. But JavaScript is exactly the opposite - younger developers love and are ignored by older people.

For us, this fact is particularly interesting, because many new programming languages, including Go, include what the developers have learned from older languages. One of the key creators of Go was involved in creating C many decades ago.

However, we cannot deny that younger developers have an innate desire for knowledge. They are more willing than older developers to learn any programming language at all - even those they don’t like. But older developers are more selective and prefer to choose languages ​​that they think will last a long time.

Node.js - hit of the season














The language preference graph is based on a “measure of love and hate.” To calculate it, we took the% of developers who love the programming language / framework and subtract from it the% of developers who do not like it. So we appreciated the positive or negative attitude of developers to languages ​​and frameworks. On the graph, 100% = very positive attitude, -100% = sharply negative attitude.

A large proportion of developers of all age groups told us that Node.js is their favorite framework - which is not surprising, because this is the only way to write a backend in JavaScript. Well, if we talk about frameworks for the frontend, then React and AngularJS win - but mostly with younger developers.

The developers of group 45-54 did not rate React and AngularJS so highly - in this group Vue.js took the lead. We could not determine why the results are just like that, and we hope to receive additional feedback from the developers on Vue.js.


6. How to hire a good developer

Accurate assessment of skills is a big headache for Eychara than lack of personnel






As we were informed by more than 7 thousand employers, viewing a resume is still the most used method of selecting candidates for a developer position. 81% of HR managers review a resume at the first stage of selection.

When we asked what is the greatest difficulty in the process of selecting candidates, most recruiters reported that this is an assessment of skills, and not a shortage of personnel in the market. At the same time, only 55% of developers believe that resumes fully reflect their skills and abilities.

At that time, until Eychary still rely on resumes in the first stages of candidate selection, almost all respondents believe that skills assessment is the most difficult thing in the process of hiring programmers. It turns out the discrepancy between what skills companies are looking for and the tools they use to find such skills. Looking through a resume can serve as a barrier to hiring for HR, because it is often impossible to understand the real level of developer skills only from a resume. And they practically do not learn to use other methods.

The balance of work and personal life is more important than bonuses














Look at any vacancy of the developer - usually the recruiters first of all write about the technological stack of the company, the mission of the company and various bonuses to attract developers. But all these things should not be in the first place if you want to hire a good developer.

The most important thing for developers is a good balance between work and personal life. For the interviewed developers, he was in the first place, a little ahead of the opportunity to grow professionally and learn new things. The balance is especially important for developers in the USA - more than for developers in Europe and Asia.

Despite the fact that the balance between work and personal life turned out to be a little less important for employees of small companies, he still ended up among the top three. And, not surprisingly, the balance is more important for developers from 25 years and less important for developers from 18 to 24.

In general, there are no major differences in the values ​​of developers by country, except for a couple of exceptions. So for developers in Canada salary is most important, and in Australia - corporate culture.

Developers want to work in flexible graphics.


We understand that for different people the phrase “the balance of work and personal life” can mean different things, so we decided to clarify what they mean.

As we found out, employers can create a healthy balance of work and personal life by allowing developers to work in a free schedule - in fact, many companies still work fixed from 10 am to 8 pm.

Developers want to work in companies where they value the result, and not how many hours the employees spend in the office. The ability to work remotely also helps create a balance. Most of all, developers over 25 years old want to work remotely, and the age group from 25 to 44 wants them to have the opportunity not to respond to mail during off-hours.











Professional growth is most important for students.


For student developers, professional growth is most important, but the salary is on the 7th place - while for professional professionals the salary rises to the 3rd. The balance between work and personal life still plays a role for students and takes second place.

But developers at college age want to learn more and discover their potential, so it’s not surprising that while they are young, it’s less important to them.

At the same time, the fact that professionals value the balance more than their salary shows that with experience in the industry, people begin to appreciate such simple pleasures of life as a little time for themselves, mental health and freedom of action.





7. Interesting facts

With Vim - we will win!


Vim won by a large margin among all code editors. Vim lovers told us that they like using it thanks to the convenience of typing commands.



Of the interesting - the founders of companies begin to code from 5 to 10 years three times more often than others


15% of the founders of companies began to code up to 11 years - in contrast to 5% of people in other positions.





8. Research Methodology

HackerRank conducted research on developers to highlight trends in their education, skills and abilities, as well as in hiring practices for technical vacancies. 39,441 developers of different levels of experience were polled online, from October 16 to November 1, 2017. The survey was conducted using the SurveyMonkey service, the developers were invited to participate through a mailing list of 3.2 million people and on social networks.

Tests of significant differences were carried out at a level of 0.01 (the probability of 99% that the difference is real, not random). Percentages of results may not always equal 100% when added due to rounding.

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


All Articles