Самые перспективные языки программирования. Рейтинг языков программирования

Редактор Ольга Евсикова специально для блога Нетологии рассказала, как выбирать язык для изучения.

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

Система оценки PYPL (PopularitY of Programming Languages) основана на количестве поисковых запросов учебных пособий в Google. Они, совместно с GitHub, составили топ языков программирования на 2017 год.

С 2005 года во всём мире Java является самым популярным языком программирования. За последние 5 лет больше всего интерес проявляется к языку , а PHP теряет популярность, но не уступает своему преследователю C#. В топе языков ещё JavaScript, C++ совместно с C, R и Ruby.

Индекс TIOBE

Другая система оценки популярности языков программирования — TIOBE формируется на основе частоты поиска в Google, Baidu, Wikipedia, Yahoo и YouTube.

По ней лидирует снова Java, но занимает всего четвертую позицию, замыкают десятку JavaScript, . А начинает двадцатку — Ruby.

Определитесь с направлением

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

Это процесс создания веб-сайтов и приложений. Это может быть все что угодно: от социальной сети до посадочной страницы спортивного клуба.

Веб-разработка внешней части называется . Сначала с помощью разметки создаётся страница. Именно эта разметка отвечает за структуру страницы. Затем внешний вид созданной страницы изменяют с помощью каскадных таблиц стилей — CSS и добавляют интерактивности на языке .

Back-end — это серверная часть. Тут происходит вся магия взаимодействия с интерфейсом, и часто мы видим только результат работы на серверной стороне. Важная часть работы с сервером — умение пользоваться базами данных. Если вам интересно это направление, смело учите язык управления базами данных SQL, MySQL и знакомьтесь с фреймворком Oracle. Бекенд можно писать на Ruby, Python, Java, .

Крупные ресурсы всегда используют несколько инструментов, так как необходимо поддерживать работу нескольких дата-центров, серверов и системы взаимодействия этих серверов. Это продукт работы большой команды: программистов, инженеров и системных администраторов. Так социальная сеть ВКонтакте использовала для своей работы транслятор от компании Facebook — HipHop, превращающий исходный язык PHP в C++ для ускорения работы. Позже ВКонтакте создали свой собственный транслятор и назвали его Kitten PHP.

Мобильные приложения

Если планируете собственный проект, полезным будет выяснить, какую операционную систему использует ваша целевая аудитория. Но любой проект, который ищет развития, выходит за рамки одной платформы.

Для разработки под систему iOS пишут на Swift и Objective-C. Под Android — Java и C++.


Мобильные приложения в Google Play Market

Настольные приложения или десктоп

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

Для Windows пишут на C++, C# и Java. Для Mac OS — Objective-C. Для разработки под Linux пишут на C и C++.


Настольные приложения в App Store

Разработка игр или геймдев

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

Мобильные игры под Android пишут на Java и C++, под IOS — Swift и Objective-C. В браузерные онлайн-игры можно поиграть в социальных сетях. Здесь вам пригодится знание веб-разработки на или Flash. Компьютерные игры часто пишут на C++. Этот низкоуровневый язык подходит больше всего, когда речь идёт о разработке сложных вещей.

Так одна из самых успешных игр в мире — Minecraft написана на языке Java, но специально для Android переписана на C++.

Ещё для создания игр используют специальные игровые движки типа Unity (C# и Java Script) и Unreal Engine (C++). Они упрощают процесс создания игр и позволяют создавать 2D и 3D игры на Mac OS, Linux, Windows и консоли PlayStation, Xbox.

Социальные сети и средства массовой информации задумались, как эффективно использовать данные, годами копившиеся в серверных хранилищах и продолжающие поступать. Большие объемы данных позволяют выяснить, как пользователь взаимодействует с сервисами, моделировать ситуации и делать прогнозы.

В России рынок Big Data только формируется, но банки и телекоммуникационные компании уже проявили большой интерес. Появилась новая профессия — . Существуют языки программирования типа R, разработанные специально для работы с большими объемами данных. Ещё используют , C, Java и Scala.


Big Data в исследовании компании МегаФон и института «Стрелка»

Оцените рынок

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


Данные «Моего круга»

По статистике видно, что самые высокооплачиваемые программисты, в среднем, это занимающиеся мобильной разработкой или программным обеспечением. В остальном — программисты крайне редко зарабатывают менее 80 тысяч рублей. К примеру, согласно отчету аналитической компании App Annie, ожидается, что мировой рынок мобильных приложений в 2017 г. вырастет на 28,6% и достигнет $166 млрд.

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

Выбирайте то, что нравится

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

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

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

Три самых популярных языка программирования в 2018 году

Анна Самойдюк

1. JavaScript

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

Stack Overflow, популярный сайт, где программисты делятся своими навыками, каждый год проводит опрос среди программистов и составляет статистику – от зарплат до любимых технологий. В январе 2018 года сайт опросил более чем 100 тысяч разработчиков.

График самых популярных языков программирования, согласно Stack Overflow :

JavaScript возглавляет этот список уже шестой год подряд.

GitHub, крупнейший веб-сервис для хостинга IT-проектов, также называет JavaScript самым популярным языком программирования.

Согласно опросу Stack Overflow, разработчики JavaScript зарабатывают около $55 тысяч в год. Программисты в США, использующие этот язык, зарабатывают около $98 тысяч в год.

Многие люди, не связанные с IT-сферой, в начале своего пути размышляют на тему: какой язык программирования учить? Ведь языков очень много, порядка тысячи . Однако не существует единственно правильного ответа на вопрос, какой язык программирования лучше всех. Каждый язык создавался для решения определенных задач. Со временем некоторые из них потеряли актуальность, соответственно эти языки отошли на второй план. Лидирующие позиции заняли языки, удовлетворяющие потребности крупных корпораций, бизнеса, занимающихся деятельностью на платформе интернета. Узнать востребованность языка на рынке IT-технологий, а также упростить себе задачу выбора, если вы решили заняться программированием, вам помогут рейтинги языков программирования.

Что такое рейтинг?

Рейтинг языка программирования – это мера его популярности, определяемая на основании одного или нескольких критериев. Например, языковые запросы пользователей в интернете, количество загруженного программного обеспечения, количество обсуждений на форумах, количество вакансий на рынке. Вот, например, как можно вычислить рейтинг Java среди четырёх языков по запросам пользователей в интернете:

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

Какие бывают рейтинги?

Рейтинг не дает ответ на вопрос, какой язык программирования лучше, скорее он характеризует популярность его использования. Ниже приведены рейтинги от различных компаний, которые занимаются мониторингом популярности языков программирования длительное время. Рейтинг компании TIOBE Software (рис.1). Анализ результатов рейтинга включает данные на основе поисковой выдачи 25 основных поисковых систем, включая Google, Ebay, YouTube, Yahoo!, Wikipedia, Amazon, Bing. Рисунок 1. Рейтинг от компании TIOBE Software Рейтинг Red Monk (рис.2) для сравнения языков использует данные GitHub и StackOverFlow. Параметры, по которым составляется рейтинг -частота обсуждения и использования языка в проектах. Рисунок 2. Рейтинг от компании Red Monk Рейтинг PYPL (рис.3) основан на анализе частоты поиска языковых документаций в Google. Чем больше запросов, тем более популярным считается этот язык. Исходные данные поступают от Google Trends. Рисунок 3. Рейтинг PYPL Рейтинг, составленный институтом инженеров электротехники и электроники IEEE Spectrum (рис 4). Здесь используются данные из 12 источников, включая Google, GitHub, StackOverFlow, Reddit,Twitter, Career Builder,Dice, IEEE Xplore. Рисунок 4. Рейтинг IEEE Spectrum за 2017 г. На рис.5 представлены лидеры среди языковых запросов на StackOverFlow (данные на конец июня 2018). Рисунок 5. Языковые запросы на StackOverFlow А на рис.6 приведена динамика популярности языковых запросов от Google Trends за последние 12 месяцев (данные на конец июня 2018). Рисунок 6. Динамика запросов по языкам Java, C++, Python, JavaScript, C#

Анализируем рейтинги и сужаем поиск

Какие выводы можно сделать, анализируя эти рейтинги? Несмотря на некоторые отличия в распределении мест языков, лидерами являются Java, JavaScript, Python, С. Именно эти четыре языка занимают порядка 60% всего объема использования языков программирования в мире. Поэтому, остановив выбор на одном из них, вы будете в тренде технологий.

Изучаем «кандидатов» поближе

Так какой язык программирования учить, если выбирать из этой четвёрки? Чтобы определиться, нужно учесть несколько важных моментов. Если вы хотите зарабатывать с помощью программирования, и чтобы к вам относились как к серьёзному разработчику – присмотритесь к Java и семейству языков Си. Изучив один из этих языков, вы овладеете базовыми понятиями и фундаментальными основами программирования нужными для любого программиста: переменные, типы, возвращаемые значения, методы, функции, выражения, инициализация и жизненный цикл, алгоритмы, потоки ввода/вывода. С++ стоит учить, если хотите, например, писать разнообразные прикладные программы или игры. С - поближе к «железу» и используется для низкоуровнего программирования. Подходит, например, для написания драйверов и операционных систем. Язык С# создан по образу и подобию Java, только с синтаксисом ещё ближе к С++ и используется преимущественно для разработки программных продуктов под платформы NET.Framework и Windows. Что касается Java, то он зарекомендовал себя как быстрый (рис.7), надежный и платформонезависимый язык, что делает его лучшим языком программирования для разработки enterprise-приложений – приложений масштаба предприятия. На рынке вакансий программистов Java уже долгое время удерживает лидирующую позицию. Об этом свидетельствуют результаты мониторинга вакансий от IEEE Spectrum за последние 4 года, а также данные от компании Indeed :

Язык Java создавался, чтобы упростить работу программистам и снизить требования к их квалификации, поэтому он более прост и «отказоустойчив» в использовании по сравнению с языками С и С++. Чтобы правильно программировать на С или С++ нужно иметь достаточно высокую квалификацию, поскольку эти языки имеют возможность использовать низкоуровневые средства программирования. При недостаточном уровне знаний, вероятность написания с помощью этих языков небезопасного и запутанного программного кода, с трудом поддающегося отладке, гораздо выше, чем в Java. Java - несложный в изучении язык, освоить который возможно «не выходя из дома», благодаря огромному количеству материала в интернете и различным обучающим интернет-ресурсам, поэтому советую внимательнее присмотреться к нему, в качестве первого языка для изучения. Благодаря существованию таких форумов как StackOverFlow , Javatalks , и Сyberforum при изучении Java вы легко найдете ответ на любой вопрос по теме программирования. Кроме того, Java-разработчики - одни из самых высокооплачиваемых программистов. Подробнее об этом можно почитать .

Подытожим

Итак, если вы ещё не определились с первым языком для изучения, проделайте следующие шаги:
  1. Подумайте, чем бы вы хотели заниматься в перспективе (веб-разработка, разработка прикладных программ и ПО для игр, мобильная разработка, разработка серверных enterprise-приложений)
  2. Просмотрите два-три основных рейтинга языков, сделайте обзор популярности языков в интернете
  3. Изучите рынок вакансий и зарплат вашего региона (например, на сайтах по поиску работы)
  4. Оцените свои силы и время, которое сможете уделять изучению программирования

Java - лучший выбор

Почему именно Java – лучший язык программирования для подавляющего большинства начинающих?
  • Зная Java, с большой долей вероятности вы будете заниматься разработкой enterprise-приложений. Эта работа хорошо оплачивается, ведь заказчики – корпорации, банки и крупные игроки бизнеса.
  • Знание Java дает вам возможность заниматься перспективной, активно развивающейся и также достойно оплачиваемой разработкой мобильных приложений.
  • Подавляющее большинство работающих серверных enterprise-приложений в мире написано на Java, поэтому язык даже при самом пессимистичном раскладе будет поддерживаться ещё много лет.
  • Уже много лет Java лидирует по количеству вакансий. Часто работодателями являются крупные компании, а в крупной компании «джуну» легче развиваться, чем в маленькой.
  • Java достаточно прост в изучении. Освоив его, вы овладеете фундаментальными основами программирования, нужными для любого программиста. При этом после него совсем просто изучить JavaScript или Python и гораздо проще подойти к относительно сложному С++.
  • Язык Java более прост в использовании по сравнению с языками семейства С. В то же время знание Java позволяет по праву считать вас профессиональным разработчиком.
  • И последний, но не менее важный пункт: Java-разработка хорошо оплачивается.

Конец года - традиционное время для подведения итогов. Мы не остались в стороне: рассказываем о популярности языков, мировом и российском рынке трудоустройства в 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 руб.