Спор о том, какой язык программирования лучше, длится, пожалуй, столько, сколько эти самые языки существуют. Приверженец каждого языка приведет вам множество аргументов — порой весьма убедительных — указывающих на то, что данный язык является самым лучшим (мощным, быстрым, удобным, простым, распространенным). И спор этот не утихает.
Данный холивар является благодатной почвой для всякого рода рейтингов языков программирования. Исследователи ранжируют современные языки программирования по популярности, легкости в освоении, доходности и другим качествам. При этом используются самые разнообразные методики: кто-то подсчитывает суммарное количество строк кода, написанных на том или ином языке, кто-то анализирует поисковые запросы для выяснения популярности языка…
Попробуем и мы внести свою лепту в составление рейтингов языков программирования. Для этого изучим белорусский рынок труда и выясним, какие языки программирования являются наиболее востребованными у работодателей и какие приносят наибольший доход программисту.
Этот обзор может быть полезен тем молодым людям, которые пока только выбирают профессию и присматриваются к сфере информационных технологий. Возможно, что-то полезное для себя почерпнут и бывалые программисты, которые возможно хотят сменить язык программирования или расширить свой профессиональный кругозор и приобрести новые навыки.
Чтобы выяснить востребованность конкретного языка, изучим как часто он встречается в вакансиях минских компаний на некоторых наиболее популярных веб-ресурсах для поиска работы. Кроме того, обратим внимание и на зарплату, которую предлагают работодатели специалистам по различным языкам программирования. Опираться будем на список языков, которые входят в ТОП-20 языков программирования по версии авторитетного рейтинга TIOBE.
Все данные по белорусскому рынку труда приводятся по состоянию на 30 марта 2015 года.
Самые востребованные
Для изучения были взяты сайты jobs.tut.by, praca.by и rabota.by. Рассматривались и некоторые другие сайты, где работодатели размещают свои вакансии, но количество вакансий там невелико и по многим из рассматриваемых языков программирования вакансий попросту не находилось. Поэтому и было решено остановиться на этих трех сайтах.
После подсчета вакансий "нарисовалась" следующая картина (таблица 1).
Таблица 1
Количество упоминаний языков программирования
в вакансиях компаний г. Минска.
Место в рейтинге |
Язык |
Место в рейтинге TIOBE |
Количество упоминаний в вакансиях на сайтах: |
Общее количество упоминаний |
||
jobs.tut.by |
praca.by |
rabota.by |
||||
1 |
JavaScript |
7 |
237 |
18 |
43 |
298 |
2 |
SQL |
14 |
227 |
18 |
49 |
294 |
3 |
Java |
2 |
153 |
6 |
15 |
174 |
4 |
PHP |
6 |
111 |
19 |
39 |
169 |
5 |
C |
1 |
97 |
12 |
32 |
141 |
6 |
.NET |
9 |
111 |
10 |
6 |
127 |
7 |
C# |
5 |
82 |
4 |
22 |
108 |
8 |
C++ |
4 |
69 |
8 |
15 |
92 |
9 |
Python |
8 |
62 |
0 |
12 |
74 |
10 |
Ruby |
18 |
34 |
6 |
13 |
53 |
11 |
Objective-C |
3 |
21 |
0 |
12 |
33 |
12 |
PL/SQL |
17 |
28 |
1 |
0 |
29 |
13 |
Perl |
12 |
20 |
1 |
3 |
24 |
14 |
Delphi/Object Pascal |
13 |
7 |
1 |
2 |
10 |
15 |
ABAP |
16 |
8 |
0 |
0 |
8 |
16 |
19 |
3 |
2 |
2 |
7 |
|
17 |
Visual Basic |
10 |
6 |
0 |
0 |
6 |
18 |
F# |
11 |
0 |
0 |
0 |
0 |
19 |
15 |
0 |
0 |
0 |
0 |
|
20 |
R |
20 |
0 |
0 |
0 |
0 |
Для большей наглядности эти же данные представлены в виде диаграммы (рисунок 1).
Рисунок 1. Распределение вакансий по упоминаниям языков программирования.
Самые высокооплачиваемые
Любопытно узнать, как много готовы платить работодатели кандидатам со знанием тех или иных языков программирования. Для этого были проанализированы существующие вакансии на предмет предлагаемой заработной платы. Для этого были определены самые низкие и самые высокие предлагаемые ставки заработной платы по всем рассматриваемым сайтам, а затем рассчитано среднее арифметическое этих значений. Метод, возможно, и не самый правильный, но дающий общее представление о положении дел.
Зарплаты, указанные в иностранной валюте, переведены в белорусские рубли по текущему курсу Национального Банка Республики Беларусь. Результаты — в таблице 2.
Таблица 2
Средняя зарплата, предлагаемая кандидатам
со знанием языков программирования
Место в рейтинге |
Язык |
Место в рейтинге TIOBE |
Количес- |
Минимальная предлагаемая зарплата |
Максимальная предлагаемая зарплата |
Среднее значение зарплаты |
|
1 |
C++ |
4 |
92 |
6 000 000 Br |
73 600 000 Br |
39 800 000 Br |
|
2 |
C |
1 |
141 |
4 000 000 Br |
73 600 000 Br |
38 800 000 Br |
|
3 |
Objective-C |
3 |
33 |
11 776 000 Br |
51 520 000 Br |
31 648 000 Br |
|
4 |
Java |
2 |
174 |
8 832 000 Br |
51 520 000 Br |
30 176 000 Br |
|
5 |
JavaScript |
7 |
298 |
6 500 000 Br |
51 520 000 Br |
29 010 000 Br |
|
6 |
SQL |
14 |
294 |
5 000 000 Br |
44 160 000 Br |
24 580 000 Br |
|
7 |
.NET |
9 |
127 |
4 000 000 Br |
44 160 000 Br |
24 080 000 Br |
|
8 |
Ruby |
18 |
53 |
5 888 000 Br |
41 216 000 Br |
23 552 000 Br |
|
9 |
C# |
5 |
108 |
7 360 000 Br |
36 800 000 Br |
22 080 000 Br |
|
10 |
Python |
8 |
74 |
14 720 000 Br |
29 440 000 Br |
22 080 000 Br |
|
11 |
PHP |
6 |
169 |
4 416 000 Br |
30 000 000 Br |
17 208 000 Br |
|
12 |
Delphi/Object Pascal |
13 |
10 |
11 776 000 Br |
22 080 000 Br |
16 928 000 Br |
|
13 |
Perl |
12 |
24 |
8 600 000 Br |
22 080 000 Br |
15 340 000 Br |
|
14 |
PL/SQL |
17 |
29 |
6 000 000 Br |
6 000 000 Br |
6 000 000 Br |
|
15 |
Visual Basic |
10 |
6 |
0 Br |
0 Br |
0 Br |
|
16 |
F# |
11 |
0 |
0 Br |
0 Br |
0 Br |
|
17 |
Pascal |
15 |
0 |
0 Br |
0 Br |
0 Br |
|
18 |
ABAP |
16 |
8 |
0 Br |
0 Br |
0 Br |
|
19 |
MATLAB |
19 |
7 |
0 Br |
0 Br |
0 Br |
|
20 |
R |
20 |
0 |
0 Br |
0 Br |
0 Br |
Далеко не все работодатели указывают в объявлениях уровень заработной платы на конкретной должности. Отсюда и нули в таблице.
Кроме того, нужно понимать, что при небольшом количестве исследуемых вакансий возрастает погрешность в расчетах, так как в этом случае одна вакансия с очень высокой или очень низкой зарплатой может существенно изменить картину. Например, по аутсайдеру данной таблицы — языку PL/SQL была найдена только одна вакансия с указанием зарплаты, все остальные работодатели предпочли о зарплате умолчать. Итог — эта зарплата стала и минимальной и максимальной для данного языка, и, очевидно, не совсем точно отражает реальное положение вещей.
Более-менее реальную картину можно увидеть только по тем языкам, на которые существует высокий спрос и соответственно имеется большой объем данных для анализа. Поэтому для справки здесь приведено общее количество вакансий, соответствующих каждому языку, чтобы можно было понять, насколько данные о зарплате адекватны.
Приведем эти же данные в виде диаграммы (нулевые значения на ней опущены). См. рис. 2.
Рисунок 2. Распределение средней зарплаты по языкам программирования
Пояснения и рассуждения
Приведенный выше анализ (а скорее — беглый взгляд на ситуацию) не стоит воспринимать как догму, так как в ходе исследования могли возникнуть определенные неточности. В частности, имелись сложности с поиском по вакансиям языка C (Си) — не все поисковики на сайтах хотели выдавать адекватную информацию, норовя подсунуть вместо знания языка «С» требование владеть пакетом «1С». Приходилось просматривать результаты поиска и вручную отбрасывать ненужные. Тем не менее, этот анализ дает довольно корректное представление о белорусском рынке IT-профессий.
Кроме того, нужно отметить, что работодателю, как правило, нужны работники, которые не столько владеют конкретным языком программирования, сколько определенными фреймворками, технологиями, приложениями и т.п. Отсюда вытекает тот факт, что в вакансиях иногда вообще не упоминаются языки программирования. В то же время язык программирования является базой для фреймворков, технологий, приложений и т.п., и без его изучения нельзя научиться работать с названными инструментами.
Еще одно наблюдение. Наличие большого числа вакансий, скажем, для владеющих языком PHP, вовсе не означает, что такому соискателю будет легко найти работу. Ведь, несмотря на высокий спрос на PHP-специалистов, существует и высокое предложение таковых. Проще говоря, если вы являетесь разработчиком со знанием языка PHP, то вас ждет высокая конкуренция при трудоустройстве, несмотря на большое количество вакансий.
Экономическая теория учит, что любой рынок (в том числе и рынок труда) стремится к равновесному состоянию — когда спрос и предложение совпадают. Поэтому сферический рынок труда в вакууме со временем должен выровняться и спрос должен совпасть с предложением. Теоретически, со временем спрос и предложение по каждому из языков программирования должны будут совпадать.
Но на IT-рынке все сложнее. Здесь все меняется настолько быстро, что предсказать положение дел на ближайшие несколько лет практически невозможно. Появляются и исчезают новые языки программирования, технологии, задачи. В начале двухтысячных чуть ли не поголовно все писали на Delphi. Ну и где сейчас этот Delphi? На 13-й строчке рейтинга с 10-ю упоминаниями в вакансиях. Это я веду к тому, что выбирая язык для изучения нужно быть готовым к тому, что через некоторое количество лет он окажется невостребованным и придется снова садиться за учебники. Впрочем, те, кто работает в сфере IT, и так знают, что себя (а точнее свои знания) нужно держать в тонусе.
В свете этого привлекательно выглядят такие языки программирования как С и С++. Эти долгожители и сейчас держат марку как по доходности, так и по востребованности (во всяком случае не плетутся в хвосте).
А еще при выборе языка программирования стоит прислушиваться к себе, то есть изучать тот язык, который больше по вкусу и на котором вам нравится писать. А работа обязательно найдется!
Дмитрий Макарский
Комментарии
Страницы
leo3 > Скорее, просто JavaScript разделится на браузерный JS и новый NodeScript:
Node.Js - это НЕ ЯЗЫК - это технология выполнения программ на языке JavaScript.
Но уже есть наработки, когда ты пишешь кусок кода (модуль) и его , этот модуль, можно настроить (НЕ переписывая сам модуль вовсе) на выполнение как в броузере так и на сервере (под Node.Js) - это приводит к тому, что по крайней мере на уровне ИСХОДНОГО кода, пропадает явное указывание в самом исходном коде ГДЕ ВЫПОЛНЯТЬСЯ модулю - (в броузере или на сервере)
P.S.
"Каждый день сайт Stack Overflow, популярную систему вопросов и ответов, которая есть в закладках у многих программистов, посещают около 32 млн человек. Раз в год среди пользователей сайта проводят опрос, который позволяет составить портрет среднестатистического пользователя сайта, во многом совпадающий с образом современного программиста...
5. Самый популярный язык программирования — JavaScript
На нём пишут код 54,4% респондентов. Следом идут SQL (48%), Java (37,4%), а также PHP, Python и языки семейства C. Популярность Objective-C и Ruby стабильно падает, а вот у платформы Node.js и фреймворка AngularJS она, наоборот, растёт."
Логик, это всем понятно:) Речь о том, что способ и место выполнения меняет со временем и сам язык. Например, бурый медведь, переселившись ближе к полярным снегам, стал белым. Так и JS, переселившись на сервер, станет NS возможно:)
Для РБ это совершенно объяснимо, так как все остальные языки применяются в более тяжеловесных разработках, а JS для разработки сайтов, чем, собственно, в основном и занимаются на нашем ИТ рынке. Я, кстати, люблю JS и пишу на нем некоторые свои забавы и модельки.
А вообще статья хорошая... информативная. Пожалуй нужно плюсонуть
>Для РБ это совершенно объяснимо, так как все остальные языки применяются в более тяжеловесных разработках, а JS для разработки сайтов, чем, собственно, в основном и занимаются на нашем ИТ рынке. Я, кстати, люблю JS и пишу на нем некоторые свои забавы и модельки.
Дело в том, что petro45 начал изучать Java, крича - корпоративный стандарт!
Никто не спорит, Java - корпоративный стандарт. И лет 10 назад я бы тоже начал изучение программирования с Java. И это было бы круто!
НО НЕ СЕГОДНЯ!
Если бы я начинал сегодня, я бы начал с JavaScript - там жизнь бурлит ГОРАЗДО КРУЧЕ чем в омуте Java. - А зарплаты программистов на Java и JavaScript УЖЕ СРАВНЯЛИСЬ!
Начинать, имхо, нужно с начала:) Я сторонник надязыкового подхода и освоения всех языковых семейств + углубленно что-то, на чем планируется специализироваться. Начинать нужно с алгоритмизации и теории + базовые языковые семейства. Классика - Паскаль и С, наверное обязательно. Немного ассемблера нужно. Logo,NetLogo + Basic не помешает. ООП + Java, С++, VB. Fortran, Algol, Cobol, Lisp - значимые исторические языки. PHP+HTML+CSS+JavaScript+VBScript - иметь представление. Python + Ruby - для общего развития... Примерно так
>Начинать, имхо, нужно с начала
Потерять время.
> Классика - Паскаль и С, наверное обязательно. Немного ассемблера нужно. Logo,NetLogo + Basic не помешает. ООП + Java, С++, VB. Fortran, Algol, Cobol, Lisp - значимые исторические языки.
Только как чисто исторически их просмотреть. Только.
Чтобы написать программу для Apple Watch не надо знать устройство солнечных часов!
У меня как-то сформировался такой образ наиболее актуального сейчас персонажа. Это чел со знанием JavaEE и его обвеса: собсно Java, фреймворки, JavaScript, HTML ну и с умением писать SQL запросы до кучи.
>У меня как-то сформировался такой образ наиболее актуального сейчас персонажа. Это чел со знанием JavaEE и его обвеса: собсно Java, фреймворки, JavaScript, HTML ну и с умением писать SQL запросы до кучи.
Это верно. Но это уже типа ВООРУЖЁННОГО СЛОНА.
А вот начать - я бы сейчас выбрал JavaScript - на нём можно и алгоритмы изучать и ООП и шаблоны и фреймворки - ну, а потом уже ...
Удивляюсь я на вас молодых:) Вы, блин, относитесь к знаниям как к ключам от сейфа с бабками:) умора, если честно:) Почитайте каталог факультета computer science типичного американского университета (я взял Бейкерсфильдский универ, так как там бывал)
http://www.cs.csub.edu/CS/2013-2015_CEECS_Catalog.pdf
Образование должно носить системный характер и охватывать не сиюминутные фигулинки-загогулинки, а фундамент, на котором можно строить здание всю жизнь. Для АйТишника это - и дискретка, и теория алгоритмов, и все языковые семейства и концепции, и многое многое, что перечислено в каталоге, включая, между прочим и философию, и логику
Страницы