График популярности языков программирования. Рейтинг языков программирования. Java - лучший выбор

Возможности 21.07.2021
Возможности

[Сырые данные и скрипты обработки на языке R можно найти на GitHub ]

В опросе приняло участие 8186 человек, 90% участников проживают в Украине.

Основные результаты

Самым распространенным языком по-прежнему остается Java (23% рынка), JavaScript вышел на второе место (16%), незначительно опередив C# по популярности. На 4-ом месте, как и прежде, - PHP (13%) с большим отрывом от Python (7%). Программирование на C++ занимает 5% рынка, далее идут Ruby (4.5%), Swift и Objective-C. Замыкает десятку наиболее популярных языков - Scala (1.5 %), опередив C и 1C.

Cо стороны «длинного хвоста» - стало заметным использование TypeScript и Kotlin.

Посмотрим на динамику последних лет:

Видим уменьшение использования Java, несмотря на то, что язык по-прежнему остается самым распространенным. JavaScript продолжает набирать популярность теми же темпами, что и раньше. В секторе iOS разработки Swift продолжает вытеснять Objective-C (сейчас соотношение Swift к Objective C - 55/45, в прошлом году это было 20/80). Также из статистически значимых изменений по сравнению с началом 2016 - увеличение популярности Scala и Go. Снижение популярности PHP прекратилось.

Предпочитаемые технологии

Тут ситуация похожа. Из новостей рост перспективы Go, стал виден Kotlin и TypeScript, а вот Java выбрало бы для следующего проекта заметно меньше людей, чем в прошлом году. Можно предположить, что Kotlin рассматривается как предпочитаемый язык теми разработчиками, которых Java уже ограничивает, а Scala кажется либо слишком сложной, либо не очень подходящей к области. Также можно связать падение темпов роста JavaScript и появление TypeScript: его можно использовать как JavaScript со статической типизацией.

Построим «индекс удовлетворенности» - доля разработчиков, которые в следующем проекте использовали бы тот же язык:

Видим, что самый «любимый» язык - Swift, далее в следующей группе идут C#, Go и Scala, а затем - Java, Kotlin и Clojure.

Самый «нелюбимый» - Apex, за ним идут SQL-подобные и устаревающие языки.

Изучение новых языков

В этом году мы впервые включили в опрос блок вопросов об изучении новых языков: большинство разработчиков (65%) хотят в следующем году выучить какой-то новый язык.

Какой именно:

То есть 31% еще не знают какой. Наиболее притягателен для обучения - JavaScript (12%), затем Python, Java, Go, Scala и Swift.

Как именно люди собираются изучать новый язык программирования: преимущественно на основе книг и документации (61%); 27% будут проходить онлайн курсы, а офлайн курсы останутся основным методом обучения для 7% респондентов, ответивших на данный вопрос.

Дополнительные языки

Видим, что в целом картина повторяет ситуацию с основными языками разработки, за исключением появления Unix Shell на втором месте и более высокой позиции расширений SQL.

Свои проекты:

Здесь тенденции те же, изменений по сравнению с годом раньше - меньше. Может быть это связано с тем, что понятие «свои проекты» консервативно: если у меня есть проект на C++, значит, он у меня и останется.

Финальная таблица

Язык Доля рынка Изменение по сравнению с 2016 Рабочий Дополнительный В своих проектах Индекс удовлетворенности
1 Java 23.4 -2.91 1892 1129 1965 0.76
2 JavaScript 16.2 2.36 1316 4206 2606 0.69
3 C# 14.9 1210 744 1354 0.82
4 PHP 13.25 1073 852 1253 0.63
5 Python 8.71 0.74 706 1170 1157 0.71
6 C++ 5.5 -0.95 445 681 725 0.62
7 Ruby 3.5 287 279 330 0.68
7 Ruby 3.5 287 279 330 0.68
8 Swift 2.2 1.36 181 236 276 0.87
9 Objective-C 1.05 -1.34 150 283 212 0.33
10 Scala 1.52 0.47 123 207 215 0.81
11 1C 1.27 103 57 85 0.27
12 C 1.1 -0.2 90 473 240 0.37
13 PL-SQL 1 85 583 102 0.24
14 T-SQL 68 959 237 0.28
15 Go 0.55 66 235 251 0.82
16 Pascal/Delphi 66 109 205 0.47
17 Perl 35 140 65 0.28
18 R 35 122 73 0.46
19 ActionScript 30 53 48 0.26
20 TypeScript 21 112 44 0.47
21 Kotlin 16 53 57 0.75
22 Clojure 12 38 68 0.75
23 Erlang 12 43 44 0.50

Дополнительные данные

Возраст разработчика в зависимости от языка:

Что мы тут видим - модно, стильно, молодежно - это Kotlin (медианный возраст разработчика: 24 года). Для Java, JavaScript, Python, Ruby, Swift это значение составляет 27 лет. С другой стороны у нас PL/SQL, Perl, Pascal и 1C, как и следовало ожидать. А вот пользователь R помолодел: молодежь бросилась изучать Data Science.

Тут интересны аномалии: с R наблюдается то же, что и в предыдущем опросе (в программирование на R приходят люди извне); Scala и Gо, наверное, можно назвать языками для сеньоров; Perl, Pascal/Delphi и 1С очевидно не испытывают кадрового обновления.

Еще посмотрим на распределение опыта работы программистом по сравнению данными прошлых лет:

Cудя по графику, приток людей в отрасль замедлился, в то же время растет доля разработчиков с опытом старше 10-ти лет. Вероятно, это связано с тем, что условия работы «в IT-пузыре» делают переход в другие отрасли или на управленческие позиции экономически невыгодным.

Посмотрим еще на распределение возраста разработчиков в зависимости от страны:

Различие в формах распределения может нам сказать о масштабах эмиграции прошлых лет.

Различие местного и зарубежного рынков разработки также можно увидеть, сравнив данные об основном рабочем языке от людей, живущих в Украине и от диаспоры:

Видим, что за рубежом гораздо больше используют C, Scala и Go. До нас эти тенденции приходят с некоторым опозданием.

Образование:

Доля «мертвых языков» снижается, также виден рост количества людей, написавших свою первую программу на JavaScript.

Результаты предыдущих опросов: , .

Наиболее авторитетным рейтингом популярности языков программирования считается рейтинг , составляемый компанией Tiobe Software. Индекс популярности Tiobe отслеживает статистику запросов языков программирования в Google, Baidu, Wikipedia, Yahoo, YouTube и др.

Однако крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки GitHub, который еще называют «социальной сетью для разработчиков» использует другую методику определения популярного языка программирования. Их система под названием PYPL (PopularitY of Programming Languages) основана на количестве поисковых запросов руководств по конкретному языку программирования.


1. Java

Java — основной язык, используемый для разработки родных Android-приложений для смартфонов и планшетов. Популярность Java у разработчиков связана с простотой и надежностью языка, который обеспечивает долгосрочную совместимость написанных на нём продуктов. Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java. Достоинством подобного способа выполнения программ является полная независимость байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина.

2. Python

Python — высокоуровневый язык программирования, который часто считается самым легким языком благодаря своей простоте, читаемости и синтаксису. 8 из 10 факультетов информатики в США и 27 из 39 лучших университетов используют Python для обучения студентов программированию.


3. PHP

PHP — это один из наиболее широко используемых языков для разработки динамических веб сайтов. PHP открытый язык разработки, поэтому написаны уже тысячи модулей, которые можно модифицировать до требуемой функциональности. На PHP разработано большинство сайтов, ориентированных на большой объём данных.


4. C#

C# является основным языком для разработки на платформах и сервисах Microsoft. Язык С# позволяет разрабатывать практически любые приложения, которые связаны с Visual Studio IDE. Кроме того, это и один из основных языков для разработки игр на движке Unity.

5. JavaScript

Почти любой современный сайт использует элементы JavaScript — этого прототипно-ориентированного сценарного языка программирования. JavaScript — это язык программирования, выполняемый в клиентском браузере, который обрабатывает команды на компьютере конечного пользователя, а не сервера, что приводит к снижению нагрузки на сервер и увеличению скорости работы приложения.


6. C

Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C. C ценят за его эффективность; он является самым популярным языком для создания системного программного обеспечения. Изучение этого языка ведет к пониманию и других языков. Язык С используется для разработки низкоуровневых приложений, так как считается ближе всего к аппаратному, уступая только ассемблеру.


7. C++

C++ — идеальный выбор для разработки мощного «настольного» программного обеспечения, игр с функцией аппаратного ускорения, а также приложений для ПК, консолей и мобильных устройств, требующих большого объема памяти для работы.

8. Objective-C

Язык является надмножеством языка C (любой C код компилируется Objective-C компилятором). Особенно распространился Objective-C среди разработчиков под платформы Apple. В последнее время теряет популярность на волне подъема языка программирования Swift.


9. R

R — язык программирования системы статистической обработки данных и работы с графикой. Он и сегодня используется для машинного обучения и анализа больших данных.

10. Swift

В 2014 года компания Apple представила собственный язык программирования Swift в качестве замены давнему Objective C. Язык программирования Swift популярен у разработчиков во всём мире как новый, простой и быстрый способ разработки для операционных систем OS X и iOS.

Перепечатка статьи допускается только при указании активной ссылки на сайт сайт

Конец года - традиционное время для подведения итогов. Мы не остались в стороне: рассказываем о популярности языков, мировом и российском рынке трудоустройства в IT-сфере и перспективах джуниоров.

Какой язык программирования был популярен в 2017 г.

TIOBE регулярно публикует рейтинг популярности ЯП и динамику его изменения. Формируется он на основании количества поисковых запросов с упоминанием языка вида “наименование ЯП + programming”. По итогу 2017 г. пятерка самых популярных языков - Java, C, C++, Python и C#.

Дополнительно на основании данных рейтинга можно понять, какие из языков быстро набрали или потеряли популярность за год. Большой прыжок вверх сделали R, MATLAB и Scratch. Значительно опустились в рейтинге вниз Ассемблер, Perl, Visual Basic.

Популярность оценивает и индекс PYPL (PopularitY of Programming Language Index). Он показывает, насколько популярен язык программирования среди тех, кто еще учится. Индекс считается по поисковым запросам обучающих материалов в Google.

Рейтинг PYPL тоже возглавляет Java, за ней - Python, PHP, JavaScript и C#. Самым популярным языком для обучения в 2017 г. стал Kotlin , создание которого продолжалось почти шесть лет до первого релиза, выпущенного в прошлом году. Kotlin полностью совместим с Java и на нем можно разрабатывать Андроид-приложения.

На втором месте по поиску обучающих материалов находится TypeScript - язык, разработанный компанией Microsoft для создания сложных веб-приложений. По сути, он - надстройка JavaScript.

Остальные языки, интерес к изучению которых рос в этом году - JavaScript, R, VBA, Rust.

При сравнении интереса к изучению языков в динамике за последние 10 лет виден:

    стабильный интерес к Java, JavaScript;

    растущий к Python, Swift, C#;

    снижающийся к PHP, Perl, C++.

Нестандартный рейтинг популярности составляет Stack Overflow. С 2011 г. ежегодно он проводит анкетирование программистов со всего мира. В 2017 г. в исследовании приняли участие 64 тысячи человек. Один из вопросов звучит так: “Какой язык вы больше всего любите / ужасаетесь от работы с ним/ хотели бы использовать чаще?”

Ответы в 2017 г. распределились так:

Любят

Ужасаются

Хотят использовать чаще

Rust

Visual Basic 6

Python

Smalltalk

JavaScript

TypeScript

CoffeeScript

Swift

VB.NET

MATLAB

Java

Python

Objective-C

TypeScript

Elixir

Ассемблер

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 занимает первое место второй год подряд, хотя в рейтинге TIOBE он находится на 43 месте. В рейтинге PYPL интерес к его изучению растет. Скорее всего, язык мало известен в кругах программирования, но те, кто работает на нем, высоко оценивают его возможности.

Языки, которые программисты хотят лучше изучить и чаще применять в работе - Python, JavaScript, Go, C++ и Java. Все языки, кроме Go, занимают верхние строчки в рейтинге TIOBE.

Обзор занятости программистов в мире

Согласно исследованию Stack Overflow, средние показатели по занятости программистов следующие:

Тип занятости . Более 83% программистов работают в штате компании на полной занятости. Причем на момент проведения опроса в поиске работы находились только 1,3%. Это примерно 470 человек из 36 000 участников исследования.

Размер компании . Программисты работают в компаниях разного размера: больше всего опрошенных (22,1%) трудится в компаниях с численностью персонала от 20 до 99 человек, 18,7% - в компаниях с численностью от 100 до 499 человек и 14,6% - в крупных компаниях с численностью свыше 10 тысяч человек.

Поиск работы. Из 33 тысяч респондентов только 13,1% находятся в активном поиске работы. Но 62,1% опрошенных готовы поменять работу на более интересное предложение. Только 24,8% или 8000 человек лояльны к нынешнему работодателю и не интересуются сменой работы.

При распределении по странам наименьшая доля ищущих работу программистов во Франции - 8%, наибольшее количество - в США, 12,7%.

Специализация соискателей . Наибольшую долю среди соискателей занимают специалисты смежного профиля: по машинному обучению и data science. Совокупно они составляют 27,5%, треть от всех респондентов-соискателей в IT-сфере. Возможно, это связано с двумя причинами: недостаточной потребностью рынка в подобных специалистах и/или неудовлетворенными зарплатными ожиданиями.

Средняя зарплата . В опросе, посвященном уровню оплаты, приняли участие 12 тысяч человек. Первые четыре места занял популярный DevOps профессионал и три должности, связанные с обработкой больших данных.

Примечательно, что при распределении по англоязычным странам - США, Канада, Великобритания - в зарплатах тоже лидируют специалисты по машинному обучению и data science. Во Франции самый высокооплачиваемый специалист - тестировщик, а в США и Канаде это самая низкооплачиваемая должность. В Германии и Индии самые большие зарплаты у разработчиков встроенных систем, а в Великобритании такие специалисты на нижних строчках.

Зависимость зарплаты от опыта работы . Имеет место прямая зависимость от опыта работы и получения максимально возможной оплаты труда. Например, специалисты, связанные с Big Data, должны иметь опыт 7-8 лет, веб-разработчик - 7 лет, графический дизайнер - 6 лет. Максимальный опыт работы ждут от DevOps специалистов - 9-10 лет.

С языками программирования немного другая ситуация. Программисты со знанием языков, находящимся выше синей линии, получают больше, даже при небольшом опыте работы. Программисты с языками под синей линией зарабатывают меньше, даже с многолетним опытом работы. Связано это с общим количеством программистов, использующих язык. Языки Go, Rust или Hack востребованы, а разработчиков на них мало. Это порождает дефицит специалистов и приводит к конкуренции между работодателями. Визуально количество разработчиков на каждом языке показано с помощью размера круга.

Удаленная работа . В исследовании об удаленной работе приняло участие 44 тысячи программистов. Абсолютным лидером по количеству специалистов, работающих удаленно постоянно, стала Россия. На втором месте - Бразилия. Вместе они занимают почти 40% всех опрошенных респондентов.

Большое количество объясняется более низким уровнем жизни, чем в других странах, и обширной территорией. Низкий уровень вынуждает людей искать места работы с лучшими условиями, а большие территории усложняют переезд. В случае с россиянами еще необходима рабочая виза для переезда и работы full-time в другой стране. Обычно ее получение вызывает определенные трудности, поэтому русские программисты часто работают удаленно.

Удаленно могут работать не все. Наиболее часто встречающиеся специалисты на удаленной работе - графический дизайнер и разработчик графики.

Обзор рынка труда в IT-сфере в России

Рынок труда в IT-сфере рос меньше, чем в прошлом году. Для сравнения аналитика за прошлый год представлена в материале “ ”. Статистика рынка труда в России составлена на основании статистики портала HeadHunter, который с 2016 г. ведет исследовательский проект hh Индекс .

Динамика вакансий . Количество вакансий на IT-специалистов снижалось почти всю первую половину 2017 года. Рост вакансий начался только в июне и достиг к концу года 31% по сравнению с аналогичным периодом в 2016 г.

Для сравнения общий прирост всех вакансий в первой половине года был вообще отрицательным, но к концу года составляет +28%.

Прирост вакансий не однороден по отраслям. За 2017 год стало в два раза больше требоваться госслужащих, рабочих и сотрудников по безопасности. Вакансии в IT находятся в нижней части списка: +31%. Меньше, чем программистов, требуется бухгалтеров, hr-ов, рекламщиков, учителей и продажников.

Работодатели больше всего ищут продавцов - 34% вакансий от общего количества всех размещенных вакансий на портале HeadHunter. На втором месте - айтишники: 12% от всех вакансий.

Динамика резюме . Количество резюме IT-специалистов в первом полугодии практически не увеличивалось: +1-2% по сравнению с предыдущим годом. Существенный рост был в июле и августе, но снизился к середине осени. В процентном соотношении рост количества резюме почти в четыре раза меньше, чем количества вакансий, 8% против 31%. Это значит, что новые вакансии открываются чаще, чем на рынок выходят новые соискатели.

Общее количество резюме по другим вакансиям увеличивается и сокращается аналогично с IT-специальностями.

На конец 2017 года доля резюме IT-специалистов в общем количестве соискателей составляла всего 5%. Больше всего в банке соискателей HeadHunter размещено действующих резюме на работу без опыта и продажи.

Конкуренция между соискателями. Портал HeadHunter ежемесячно подсчитывает hh-индекс, который показывает соотношение количества открытых вакансий к количеству активных резюме или количество соискателей на одну вакансию. В IT обычно приходится от двух до 3,5 соискателей на каждую вакансию. Для сравнения в общем по всем вакансиям этот показатель составляет 5,5-8,5, т.е. в 2-3 раза выше.

Если сравнить по отраслям, на одну вакансию в страховании претендуют 1,3 кандидата, в медицине - 2, в недвижимости - 4,1, в бухгалтерии - 7,6. На каждое вакантное место юриста приходится 9,5 кандидатов, на госслужбу - 10,3 и на каждое кресло топ-менеджера - 12,5 желающих.

На одну IT-вакансию в России - 2,9 соискателя.

Статистика по городам. Прирост работодателей и соискателей по городам не равномерен. В Москве количество вакансий увеличилось на 23%, количество резюме осталось прежним. Такая же ситуация в Самаре: прибавилось только количество вакансий на 28%. Из рассмотренных городов только в Казани и Омске количество соискателей растет намного быстрее предложений работодателей.

Сфера “Информационные технологии и интернет” славится своими высокими зарплатами: от 150 000 руб. до бесконечности. Это уровень оплаты труда высококвалифицированных специалистов и руководителей. Но по всей отрасли уровень зарплаты в целом выше у всех типов специалистов.

Самая высокая средняя зарплата в IT-сфере в Москве - 83 500 руб. За ней следуют Санкт-Петербург - 66 700 руб., Новосибирск - 62 800 руб. и Екатеринбург - 56 000 руб. В остальных городах она примерно равна и колеблется в диапазоне от 43 100 руб. (Красноярск) до 51 800 руб. (Нижний Новгород).

Количество человек на одну вакансию сильно различается. Самое большое количество претендентов в Москве, Уфе и Красноярске. Меньше всего в Новосибирске и Екатеринбурге, 2 и 1.9 человека соответственно. Чем меньше конкуренция среди кандидатов, тем выше зарплаты предлагают компании. Поэтому зарплата в этих городах на уровне Санкт-Петербурга: Новосибирск - 62 800 руб., Екатеринбург - 56 000 руб. В городах с более высокой конкуренцией зарплаты ниже: Красноярск - 3,2 человека на место и з/п - 43 100 руб., Уфа - 3,3 человека на место и з/п - 44 100 руб.

Портрет соискателя в среднем по России следующий:

    мужчина (81%);

    опыт работы - 3-6 лет (26%).

Зарплаты в IT всегда высокие по сравнению с другими отраслями экономики. Портал SuperJob формирует зарплатный индекс SJI, который показывает изменения по месяцам.

Обзор вакансий на позицию Junior в России

Вакансии . Без опыта работы по вакансиям из области программирования и веб-разработки требуются 1800 специалистов. Территориально больше всего вакансий находится в Москве - 18,1% и Санкт-Петербурге - 9,1%.

Основная часть вакансий предполагает работу на полный день в офисе работодателя. Только 4% вакансий предлагают удаленную работу, 11% - гибкий график. Меньше 1% предлагают стажировку. Средняя заработная плата составляет 40 500 руб.

От соискателей ждут хорошего знания теории, желания учиться и работать в команде. Иметь практические навыки часто не обязательно, но при наличии они станут дополнительным преимуществом.

Соискатели. В конце 2017 года на позицию junior претендуют 4 100 соискателей. Опыт работы у всех - до одного года. Таким образом, количество соискателей на одно резюме составляет 3 человека.

Типовой портрет кандидата :

    мужчина (89%);

    возраст составляет 18-30 лет (86%);

    знание английского языка (93%).

Основная доля кандидатов живет в Москве и области - 35,4% и Санкт-Петербурге - 16,7%.

Каждый третий кандидат хотел бы работать удаленно. Но 81% готовы работать на полный день в офисе.

Навыки соискателей частично совпадают. Больше всего кандидатов знают HTML (24%). JavaScript и CSS знают по 20% . Меньше всего среди junior программистов С - только 6%.

Зарплатные ожидания . Студенты США ожидают зарплату на первом месте работы более 33 тысяч долларов в год. Такую же зарплату ждут и junior-специалисты при опыте работы менее года. Если перевести годовую зарплату в США по текущему курсу, уровень зарплаты составит 160 тысяч рублей в месяц. В России такую зарплату получают специалисты уровня senior.

Зарплатные ожидания потенциальных джуниоров в России намного скромнее. Ожидаемая средняя заработная плата составляет 38 600 руб. Она даже на 5% ниже, чем готовы предложить работодатели. Причем только 7% соискателей ожидают зарплату от 50 000 руб. и выше.

Итоги

    Популярные языки программирования по рейтингу TIOBE: Java, C, C++, Python и C#, по рейтингу PYPL: Java, Python, JavaScript, PHP и C#. По опросу Stack Overflow, любимые: Rust, SmallTalk, TypeScript, Swift и Go, и желаемые в работе: Python, JavaScript, Go, C# и Java. В трех рейтингах три лидера совпадают: Java, Python, C#.

    В 2017 г. в аутсайдерах находятся Ассемблер, Perl и Visual Basic. Их позиции снизились за год на четыре, четыре и шесть пунктов соответственно. Также они входят в топ-10 языков программирования, работа с которыми “ужасает” согласно исследованию Stack Overflow. По рейтингу PYPL, за последние 10 лет интерес к изучению языка Perl сильно снизился. Также теряется интерес в мире к изучению PHP и C++.

    По данным исследования Stack Overflow, 83% программистов работают в штате на полный день, полностью фрилансят только 10,2%. Большинство работают в средних организациях (от 20 до 100 человек). Только 13% находятся в активном поиске работы. Каждый четвертый вообще не желает переходить на новое место. Лидеры по удаленной работе Россия и Бразилия, 22% и 17% от всех респондентов соответственно.

    Самые большие заработные платы сейчас у специалистов, занятых в DevOps и Big DATA. Высокооплачиваемые специализации по странам разнятся: в США и Канаде, Великобритании - DevOps и Big DATA, во Франции - тестировщик, в Германии и Индии - разработчик встроенных систем.

    Возможность получать максимально высокую зарплату зависит от опыта работы. Для каждой специализации - свой опыт. Однако в языках программирования ситуация другая. Разработчики на молодых и востребованных ЯП получают зарплату выше, вне зависимости от опыта. Разработчики на старых хорошо известных языках даже при многолетнем опыте работы будут получать меньше. Это связано с конкуренцией в среде одноязычных программистов.

    Рост IT-вакансий в России начался во второй половине этого года и сейчас составляет на +31% больше, чем вакансий в ноябре 2016 г. Существенный рост количества резюме кандидатов в IT был в июле и августе и к середине осени снизился. Сейчас он составляет +8% по сравнению с 2016 г. Общий прирост количества резюме в четыре раза меньше, чем прирост вакансий. Это значит, что вакансий открывают больше, чем выпускается специалистов на рынок. Общее количество резюме айтишников в общем объеме составляет всего 5%.

    Конкуренция среди соискателей невысокая - 2,9 человека на каждую открытую вакансию. Самая высокая конкуренция по России в Москве, Уфе и Красноярске: в двух городах - 3,3, и в последнем - 3,2. Самая низкая конкуренция в Новосибирске - 2 кандидата и Екатеринбурге - 1,9.

    Средняя зарплата в IT-сфере по России составляет 58 900 руб. Самая высокая в Москве - 83 500, самая низкая в Воронеже - 40 900 руб. Уровень зарплаты зависит от конкуренции среди соискателей. Чем она выше, тем меньше средние зарплаты.

    На конец 2017 г. соотношение количества соискателей к количеству вакансий на позицию junior составляет 3 к 1. Подавляющее число вакансий ждет специалистов на работу в офис (85%). 18% вакансий находится в Москве, 9% - в Санкт-Петербурге. Средняя зарплата для junior - 40 500 руб.

    Активных резюме с опытом работы до года - 4100. В Москве и области проживают 35% соискателей, в Санкт-Петербурге - 16%. Каждый четвертый соискатель владеет HTML, CSS и JavaScript. Junior-соискателей на Python - 8%, С - 6%, Java, PHP, C# - по 12%. Средняя ожидаемая заработная плата - 38 600 руб.

Уже ни для кого не секрет, что в мире существует огромный спрос на специалистов в областях науки, технологий, инженерии и вычислений, а также то, что труд этот очень и очень высокооплачиваем. В период с 2007 по 2012 год количество вакансий, связанных с программированием вырос на 31%. Таким образом, спрос на специалистов этой области рос примерно в три раза быстрее, чем спрос на любую другую рабочую силу. По оценкам Американского Бюро статистики труда, вакансии на должность разработчика вырастут еще на 22% в течение 2012-2022 годов. Средняя заработная плата разработчика программного обеспечения по состоянию на май 2016 года составила $100,080 в год.

Если вы решили научиться кодить, огромное количество языков программирования могут сначала свести вас с ума, в голове появится закономерный вопрос – какой язык действительно следует учить? В этой статье мы постараемся сравнить некоторые особенности (сравнение зарплат, популярности и перспективы на будущее), связанные с разными языками программирования.

Краткое описание языков программирования

Перед тем как сравнивать особенности, давайте сначала бегло ознакомимся с языками программирования, о которых мы будем говорить.

Динамические языки

Динамические языки чаще всего более просты для изучения начинающими программистами из-за своей гибкости и интересности. Вы можете быстро создать программу, которая будет выполнять то, что вам требуется, с нуля и с небольшим количеством кода, а также без каких-либо строгих правил написания. Поскольку динамические языки обычно являются языками высокоуровневыми, вы сможете тратить меньше времени на понимание деталей и уделять больше внимания изучению концептов программирования. А это еще одна причина, по которой динамические языки программирования более популярны среди новичков, вдохновленных своими результатами, достигнутыми в очень сжатые сроки.

JavaScript

Не стоит путать JavaScript с языком Java. JavaScript – это базовый скриптовый язык, который используется для фронт-энд разработки и выполняется на устройстве клиента. Язык JavaScript совместим со всеми браузерами и используется для создания интерактивных веб-приложений, достаточно часто с применением библиотек вроде jQuery и такими фронт-энд фреймворками как AngularJS, Ember.js, React и прочими.

Также JavaScript можно использовать как серверный язык на базе платформы Node.js. Два года назад Node.js только начинал свое развитие, но с того момента количество его сторонников значительно выросло. Здесь вы можете найти множество ресурсов, посвященных данной платформе. Также с помощью JavaScript вы можете создавать гибридные мобильные приложения, используя фреймворк вроде phonegap, а React Native поможет вам в разработке исходных мобильных приложений с применением JavaScript.

Однако считается, что JavaScript – сложный из-за своей нетипизированности язык. Поэтому программы, написанные на этом языке, сложны в отладке. Впрочем, существуют статично типизированные версии, например, TypeScript от корпорации Microsoft или JSX, который используют в React.

Язык Ruby был создан таким образом, чтобы разработчикам было интересно, и в то же время их продуктивность сохранялась бы на высоком уровне. Язык Ruby получил свою популярность благодаря фреймворку Ruby on Rails. Это комплексный фреймворк, оптимизированный под все необходимые потребности программирования. Поскольку код Ruby легко читается, а Rails обладает встроенными инструментами, которые упрощают задачи разработчика, многие специалисты советуют начать изучение программирования именно с этого языка.
Язык Ruby в большинстве случаев используется для бэк-энд разработки, и многие популярные веб-сайты вроде Airbnb, Shopify, Bloomberg, Hulu, Slideshare были созданы с применением фреймворка Ruby on Rails.

Python – это еще один язык, который настоятельно рекомендуется для изучения новичками. Также Python является самым распространенным вводным языком программирования в самых лучших университетах Соединенных Штатов. Разработчики использовали Python для достижения сходства настольных программ и веб-приложений. Также язык предлагает отличные инструменты для анализа данных. В дополнение, язык Python достаточно широко используется в исследовательских кругах в области научных вычислений, анализа данных и биоинформатики.

Google, Dropbox, Pinterest, Instagram, Reddit, BitTorrent, Civilization IV и другие ресурсы были созданы на языке Python.

PHP – это исполняемый на сервере скриптовый язык, который считается достаточно простым для начального уровня. Достаточно просто представить себе, какую функцию выполняет код PHP. Большинство веб-сайтов были созданы с применением языка PHP, поскольку он в значительной мере специализирован для веба.

При создании таких известных ресурсов как Facebook, Wikipedia, Yahoo!, Tumblr, WordPress и др. широко был применен язык программирования PHP.

Статично типизированные языки

Программы, созданные при помощи статично типизированных языков, считаются более настраиваемыми, стабильными и удобными в обслуживании. Статические языки обычно более строги в поиске ошибок при проверке соответствия типов. Также необходимо больше кода для создания прототипа. Игровые движки, мобильные приложения и бэк-энды корпоративного уровня обычно создаются с применением статически типизированных языков программирования.

Java – это универсальный язык программирования, который используется для создания Android-приложений, настольных программ и игр. Также язык Java обычно применяют для разработки бэк-энда корпоративного уровня: 90 процентов компаний из рейтинга Fortune 500 используют Java.

Более того, Hadoop – это популярный фреймворк на базе Java, который используется для хранения и передачи больших массивов данных, и внедрен в такие веб-сервисы как Yahoo, Facebook и Amazon.

Язык С обычно используется для программирования системного программного обеспечения и считается языком-посредником для операционных систем.

Язык программирования С повлиял практически на каждый язык, который мы рассмотрим в нашей статье, а в особенности на Objective-C и C++. Поэтому, если вы хорошо знаете С, возможно, вам будет проще вникнуть в другие популярные языки программирования.

Поскольку С использует более сложный код для решения простых задач, новичкам может быть трудно сохранить свой интерес, если это первый язык программирования, который они взялись изучать. Однако, знание языка С определенно поможет вам как программисту в дальнейшей перспективе.

Objective-C / Swift (для iOS разработки)

Язык Objective-C является своего рода надстройкой языка С, что делает его статичным. При этом его можно использовать и для динамической типизации. Swift от компании Apple – это статический язык, разработанный для совместимости с Objective-C, однако статичная типизированность делает его более устойчивым перед ошибками.

Язык Swift (созданный под влиянием Python), был разработан для упрощения жизни новичка-программиста и нацелен на исправление некоторых проблем Objective-C.

C++ — это мощный язык, основанный на С. Изначально язык был разработан для систем программирования программного обеспечения, но достаточно часто используется для создания игр/игровых движков, настольных, мобильных и веб-приложений. С++ мощный и быстрый – даже создатели Facebook разработали несколько высокопроизводительных и надежных компонентов с помощью этого языка. Большое количество программного обеспечения было создано на С++, включая Adobe Systems, Amazon, Paypal, Chrome и пр. Как и в случае с С, язык С++ считается сложным для самостоятельного изучения новичками. Так что, если вы решили изучать С++ в качестве своего первого языка программирования, лучше найдите себе наставника через Meetups или на Codementor.

C# («C Sharp») был создан для фреймворка.NET от Microsoft, который работает главным образом на Microsoft Windows.

C# используется для веб-разработки, создания игр и общих разработок Microsoft. И хотя раньше Microsoft не отличалась кросс-платформенностью, Xamarin работает на проекте с открытым кодом под названием Mono, который нацелен на перенос C# на другие платформы, а также на добавление лучших инструментов для разработчиков Linux. С недавних пор вы также можете использовать C# для создания исходных мобильных приложений под системы iOS и Android через Xamarin.

Другие

SQL («Sequel»), или Язык Структурированных Запросов – это язык запросов, который используется для взаимодействия с базами данных. И хотя язык SQL нельзя использовать для создания приложений, его можно применять для управления данными в приложениях, которые используют системы управления реляционными базами данных (RDMS).

Возможности по трудоустройству

Итак, теперь вы имеете кое-какие знания о разных языках программирования и о сопутствующих им трудностях. Однако не все языки одинаково востребованы и одинаково оплачиваемы. Если вы нацелены на изучение программирования для улучшения своих возможностей по трудоустройству и вас не пугает сложность языка, предлагаем вашему вниманию некоторые зацепки, которые помогут вам определиться с выбором языка для изучения.

На основе оценки уровня заработной платы ресурса indeed.com мы можем разделить языки программирования на 9 категорий:

Результаты показывают, что Ruby/Ruby on Rails помогут вам заработать больше всего, а Python, C++, iOS и JavaScript также являются достойными вариантами. К тому же, если вашей основной целью является доход, тогда C, PHP, и SQL не станут идеальными вариантами…или все же?

Средняя заработная плата может зависеть от многих факторов, например, от спроса (насколько много есть вакансий), предложения (как много разработчиков знают язык) и опыта (младший разработчик, естественно, будет получать меньше, чем старший разработчик). Так что перед принятием решения в чью-либо пользу стоит лучше узнать подобные детали.

Будущее каждого из языков программирования

Насколько необходимым будет какой-либо язык программирования в будущем? Прежде всего, будущее языка будет во многом зависеть от роста его поклонников, ведь именно уровень притока свежих кадров и уровень освоения поддерживает популярность языка и гарантирует продолжение обеспечения ресурсами. Итак, давайте разберемся, в изучении каких языков программирования больше всего заинтересованы люди:

Кажется, Python, JavaScript, Java (в 2014 году третье место занимал C#) и C++ получили самые высокие оценки. Основываясь на имеющихся у нас данных, мы можем сделать следующие выводы:

JavaScript

Без сомнения, JavaScript только набирает свою популярность, особенно потому, что теперь этот язык можно использовать для бэк-энд разработки и даже создавать исходные мобильные приложения (посредством React Native). JavaScript продолжает в достаточно быстром темпе получать большое количество новых инструментов, так что, можно предположить, что этот язык в будущем будет иметь очень большое значение.

Старт-апы любят Ruby on Rails. Многие известные сайты, включая Airbnb, Twitch, Hulu и т.д. созданы на основе Ruby on Rails, а это значит, что им всегда нужны разработчики Ruby. Также, поскольку разработчикам всегда интересно работать на Ruby on Rails, ведь там все просто и понятно, этот фреймворк вероятнее всего сохранит свою популярность среди новичков.

С другой стороны, рост популярности Node.js определенно повлияет на распространение Ruby on Rails - Node.js уже обошел Rails на Github. И хотя это не стопроцентная гарантия того, что Node.js вытеснит Rails, стоит отметить, что всего несколько лет назад Rails обошел самый значительный фреймворк для бэк-энд разработки от Python — Django.

Кроме всего прочего, тенденция «изоморфных» приложений, скорее всего, повлияет на освоение Rails – практику, которая призвана улучшать производительность веб-приложения. Поскольку изоморфные приложения в значительной степени должны работать на платформе Node.js, которая включена в JavaScript, вероятнее всего, Node.js со временем будет набирать популярность. Также желание быть специалистом только в одном языке (JavaScript) может отвернуть новичков от изучения Ruby. Go от Google – это еще одна бэк-энд альтернатива, которой в течение последних двух лет уделяется все больше и больше внимания.

Однако, учитывая тот факт, что Rails постоянно дополняется обновлениями, он будет сохранять свое распространение еще долгое время. Не говоря уже о невероятно лояльной поддержке с уймой полезных инструментов, которые помогут упростить процесс разработки. Поэтому, несмотря на спад популярности, Ruby еще задержится с нами.

Язык Python широко распространен среди научных исследователей и специалистов по обработке и анализу данных. Кроме того, как мы уже говорили ранее, многие учебные заведения принимают решение начинать изучение программирования именно с Python. А это значит, что этот язык в дальнейшем будет стабильно развиваться и также будет востребован. И хотя Python не развивается и не набирает популярность так же стремительно, как JavaScript, он все же продолжит укреплять свои позиции, особенно с учетом большого спроса на специалистов по обработке и анализу данных.

Направление бэк-энд разработки за последние несколько лет слегка отошло от языка PHP, но 80% веб-сайтов сети по-прежнему созданы на PHP. В конце концов, язык ведь был создан для веба.

Тем не менее, если вы загуглите, какие языки программирования стоит изучать начинающему программисту, вы увидите, что большинство разработчиков не советуют изучать PHP. Более того, многие разработчики ненавидят этот язык.

Сторонники PHP пытаются избавиться от плохой репутации, создавая новые руководства на предмет того, как правильно кодить на PHP, а также разрабатывая новые инструменты. Но в целом, развитие языка остановилось еще в 2015 году (по крайней мере, в Соединенных Штатах). И хотя у некоторых таилась надежда, что PHP7 воскресит интерес, все же этот язык остается слегка фрагментарным.

Система Android внесла значительную лепту в популярность и распространение языка программирования Java, а многие предприятия любят его за относительную стабильность и гибкость.

Учитывая рост популярности Spark (который использует язык Scala) и Cassandra (который поддерживает другие языки), сложно оценить, как долго Hadoop сохранит лидерство в рейтинге самых популярных больших фреймворков. Однако с учетом того, как большие предприятия реагируют на изменения, Hadoop еще не скоро уйдет со сцены. То же самое можно сказать и о языке программирования Java в целом, поскольку в нем есть превосходные инструменты для бэк-энд разработки, а также потому, что этот язык распространен в разработке корпоративных приложений.

Таким образом, язык Java будет оставаться одним из самых популярных в течение последующих лет.

Objective-C/Swift
Поскольку Apple выпустила Swift, а Objective-C работает только для продуктов Apple, не стоит ожидать, что Objective-C в будущем будет востребован. В то же время, Swift, конечно же, будет оставаться востребован еще много лет, пока люди будут продолжать пользоваться продуктами Apple.

Впрочем, это не значит, что вам незачем изучать Objective-C в 2017 году, ведь большинство проектов для iOS разработки по-прежнему написаны на Objective-C. Проще говоря, не очень полезно использовать то, в чем вы не разбираетесь. Вряд ли нужно говорить о том, что у вас не возникнет никаких сложностей при изучении Objective-C, если вы знаете Swift и наоборот.

Сложно сравнивать С с другими языками программирования. Однако, раз уж данный язык является языком-посредником операционных систем и многие разработческие инструменты написаны на С, включая Linux, язык сохранит свою актуальность.

Язык SQL знают и понимают практически все администраторы баз данных. На некоторое время могло показаться, что SQL утратил свое значение с приходом NoSQL-сервисов вроде MongoDB и Redis, а также использующих non-SQL компьютерных платформ с большими базами данных, включая Hadoop, Spark и Cassandra. Многие люди думали, что эра SQL подходит к своему завершению.

С ростом больших массивов данных и возникшими трудностями в их управлении, SQL актуален как никогда (как вы уже догадались по тенденциям роста вакансий). Google также недавно обновил свой сервис BigQuery, и теперь он может обрабатывать до 100 000 строк в секунду. Этот сервис также использует язык SQL. Spark, начиная с версии 1.3, также обладает модулем Spark SQL. В таких продуктах как ClustrixDB, DeepSQL, MemSQL и VoltDB все, что вам понадобится, это просто добавить узлы вместо закачки целого сервера баз данных.

Так или иначе, язык SQL снова востребован, потому что он нужен для управления и анализа (а не хранения) больших массивов данных. Сообщество разработчиков даже предрекает некоторого вида объединение SQL и NoSQL. Как бы то ни было, можно с уверенностью сказать, что язык SQL по-прежнему будет оставаться актуальным.

C++ все еще считается самым мощным языком программирования с точки зрения производительности и возможностей (даже против Rust). Очевидно, что C++ будет оставаться востребованным в определенных секторах, где необходимо поддерживать высокую производительность (например, игровые движки). Поскольку ISOCPP (Международная организация по стандартизации) уже закончила свою работу над стандартом C++17 (который уже на финишной прямой ISO голосования по стандартизации ISO), то вполне вероятно, что разработчики начнут работу над C++20 уже в июле 207 года. Так что, что и говорить, язык программирования C++ по-прежнему развивается.

Возможно, Rust в будущем вытеснит C++ в определенных отраслях системного программирования. В конце концов, ведь Rust нацелен на создание менее уязвимого программного обеспечения, чем программы C++. Больше информации о сравнении Rust с другими языками программирования вы можете найти здесь. Независимо от того, действительно ли Rust заменит C++, самое время заняться изучением Rust, если вы продвинутый разработчик.

Тот факт, что C# ограничен платформами Microsoft и имеет закрытый код, в прошлом никак не способствовало улучшению положения языка, но, слава Богу, Mono пришел на выручку (хотя раньше у Mono были определенные проблемы в работе, недавние обновления значительно улучшили ход событий).

Разработчики, которые работали с языком C#, видимо, очень его любят, и процесс распространения этого языка программирования набирает обороты. Не стоит лишний раз напоминать, что C# является основным языком Unity 3D – весьма популярного игрового движка, который совместим с iOS, Linux и другими системами. Рост популярности Unity3D как независимого игрового движка, а также приложения виртуальной реальности укрепили будущее C#. Поскольку виртуальная реальность получила очень широкое распространение и сохранит свою популярность в дальнейшем, язык программирования C# определенно имеет светлое будущее.

Кроме того, язык C# также достаточно распространен в корпоративной разработке за пределами Соединенных Штатов, например, в Великобритании. Очевидно, что компания Microsoft будет поддерживать жизнедеятельность C#, а также сохранять его актуальность для платформы.NET. По факту, компания активно ведет работу над открытием кода своих продуктов и создает благоприятные и доступные условия для их освоения разработчиками.

Заключение

Какой язык стоит изучать начинающему программисту? Очевидно, что если вы хотите посвятить себя веб-разработке, вам необходимо изучать JavaScript независимо от того, хотите вы или нет. Если вы хотите работать в бэк-энде, вы просто обязаны знать SQL.

Далее, если вы желаете заниматься анализом баз данных веб-сайтов или вам хотелось бы стать специалистом по обработке и анализу данных, стоит изучить Python. Если вы хотите работать с корпоративной разработкой, вплотную возьмитесь за Java. Если вы не заинтересованы в создании продукта, а просто хотите найти работу, стоит начать с языка SQL (в особенности, если вам нравится математика).

Так или иначе, выбор языка программирования в 2017 году будет полностью зависеть от того, чем вы хотите заниматься.



Рекомендуем почитать

Наверх