Рейтинг языков программирования в 2021 году

JavaScript

Сложность: можно выучить JavaScript быстро, главное — отрабатывать теорию на практике в тренажерах (подборка хороших интерактивов и обучалок). Уже за полгода можно освоить документацию, поскольку логика у него простая и гибкая. Язык мощный, а его инструменты просты и доступны.

Профессии: Frontend-разработчик / Fullstack-разработчик / Веб-девелопер.

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

JavaScript — язык веб-разработок. Изначально на нем можно было программировать только frontend сайтов, но сейчас, благодаря Node.js, который выступает в роли веб-сервера, можно писать и серверные приложения. Язык делает сайты интерактивными и высокопроизводительными.  А чтобы эффективно использовать возможности языка для создания красочных сайтов, нужно уметь пользоваться инструментами верстки HTML и CSS, знать один из популярных фреймворков (React, Vue или Angular).

В веб-разработках сообщество большое, так как fullstack- и frontend-разработчики нужны всем. Сайтов огромное количество, мы пользуемся ими каждый день, и их всегда нужно улучшать. Кроме того, такие проекты можно вести самому с нуля вплоть до самого релиза, что тоже очень ценно, если вам привычнее инди-разработка.

Курс

Frontend-разработчик

Цель специализации — дать полный набор скилов, необходимых для погружения в реалии разработки визуальной части веб-приложений. Дополнительная скидка 5% по промокоду BLOG.

Узнать больше

7 JavaScript


На седьмой строчке рейтинга находится JavaScript, популярнейший на сегодня продукт для разработки веб-приложений. Язык создан в 1995 году автором Б.Эйхом.

Изначально язык назывался Mocha, затем разработчики заменили название на LiveScript, после чего появилось настоящее наименование «JavaScript», которое является товарным знаком американской компании Oracle. Перед создателями стояла задача создать гибкий продукт, похожий на Java. Основные особенности JavaScript — это прототипный стиль программирования, слабая динамическая типизация и возможность создания функций во время выполнения программ. Стандартом JavaScript является ECMAScript, который поддерживается всеми современными браузерами начиная с 2012 года.

Самым известным применением JavaScript является веб-разработка, язык дает возможность реализовать интерактивное поведение веб-страниц, такое как обновление данных, вывод карт, видео, 2D и 3D анимации. Помимо этого, язык используется и в других программных продуктах, например, node.js или Apache CouchDB. Быстро растущая популярность языка обусловлена его своевременной стандартизацией, а также возможностью встраиваться в приложения. В настоящее время без JavaScript почти невозможно создать полноценный сайт.

Julia

Julia — молодой язык, конкурент R и Python, совместимый с ними. Однако он гораздо быстрее Python и по скорости может сравниться с C/C++. Julia — универсальный язык, хотя изначально его разработали для числовых и технических вычислений.

Его можно и нужно использовать для веб-программирования низкоуровневого системного программирования в качестве языка спецификации. Он поддерживает динамическую типизацию — это делает его более гибким, но и увеличивает вероятность ошибки. В Julia есть и мастхэв-библиотеки для ML: Flux, Mocha.jl, Knet, TensorFlow.jl, ScikitLearn.jl.

Примеры ML-проектов на Julia: SALSA — софт для продвинутой работы со стохастическими алгоритмами; MLJTuning — программа для оптимизации гиперпараметров.

Проекты на Julia в основном создают для учёных и для ML-поддержки лабораторий. Из этого вывод: делать ставку только на Julia не нужно — язык ещё растёт

Но обратить внимание точно стоит.

Java

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

На Java разрабатывают десктопные программы, приложения под Android, серверные конструкции и масштабные промышленные и банковские системы. Достаточно сложный в освоении язык.

Новички могут рассчитывать на 35–60 тысяч рублей. Специалисты среднего уровня — на 50–100 тысяч. Высокий уровень — на доход 135–270 тысяч рублей.

Синтаксис простой и понятный. Методология языка — классическое объектно-ориентированное программирование. Работает на всех операционных системах. На Java можно написать ПО любой сложности — от небольшой утилиты до комплекса с миллионами строк. Кстати, если хотите писать для Android — приложения на нем делают только на Java.

Особенности:

  • Разработка на Java подразумевает высокий уровень абстракции. С одной стороны, такое ПО легче поддерживать и развивать. С другой — типовые и простые вещи требуют бОльших усилий. Сравните: на PHP для чтения файла по ссылке нужна одна строчка кода. На Java придется написать пять-десять строк.
  • Строгость языка. Это надежно, отсутствуют неявные конструкции, нет упрощений. С другой стороны, код очень громоздкий. Представьте, что вы продаете машину. Если говорить просто, то выйдет что-то вроде: «Вот машина. Вася продал ее Пете. Петя отдал деньги Васе». На Java все то же самое придется написать в форме договора купли-продажи — когда отдают деньги, где что в машине, какие номера двигателя, корпуса. Плюс еще масса данных. Так, чтобы не было многозначности.
  • Высокий порог вхождения: синтаксис прост, примеров много, но общие принципы понять сложно. Придется очень много учиться и практиковаться. Но и возможности в итоге получите практически безграничные.

Стек:

  • IDE: Eclipse, Netbeans, IntelliJIDEA, AndroidStudio;
  • среда выполнения: JVM (Java Virtual Machine);
  • фреймворк: Spring, Swing, Hibernate, OrmLite (для Android);
  • инструменты для Android: SDK Manager, Android Emulator (эмуляторы ОС разных версий);
  • базы данных: Oracle, MySQL и любые другие;
  • менеджер зависимостей: Grandle, Ant, Maven.

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

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


Пример кода на Java — создаем окно с кнопкой

По намерениям

Какая сфера привлекает вас больше других?

1. «Хочу делать сайты и веб-приложения»

Java, JavaScript, HTML 5, Ruby, Python, SQL, PHP

2. «Хочу написать приложение для айфона»

Swift (потребуется макбук или iPad с клавиатурой, чтобы писать код). Коммерческому iOS-разработчику нужно знать Objective-С и Swift.

3. «Хочу писать приложения под Android»

Java и Kotlin

4. «Хочу сделать карьеру в IT»

Разница между «работать» и «сделать карьеру» в IT есть, как и на других рынках. Хорошо начать с С/C++, так часто пишут, потому что между ними есть несколько отличий, а в целом они похожи. В описании вакансий часто пишут именно С/C++. Работы много и на российском, и на калифорнийском рынках. Хорошие перспективы для развития и вертикального роста.

5. «Хочу работать с темой AI»

Python, C/C++

6. «Хочу работать с данными»

Python, Java, R, Scala

7. «Хочу работать в геймдев»

Базис – С# и среда Unity

8. «Хочу понять, как все это работает»

С/C++

9. «Хочу работать в робототехнике»

С/C++

10. «Хочу быстро сделать свой стартап»

Ruby, Java, Swift, JavaScript

11. «Хочу работать в IoT, интернете вещей»

С/C++, Python, Java, Go, JavaScript

12. «Хочу работать в известной компании»

Вот данные авторитетного ресурса Stackshare.io по использованию популярных языков программирования в известных компаниях:

Java (Airbnb, Instagram, Uber Technologies, Spotify, Netflix, Pinterest, Slack, Google, LinkedIn, Lyft)

Python (Instagram, Uber Technologies, Spotify, Netflix, Facebook, Dropbox, Pinteres, Reddit, Google)

С (Twich, Telegram Messenger)

JavaScipt (Airbnb, Instagram, Slack, Reddit, eBay, Asana, Coursera, Product Hunt, MIT)

C++ (Google, Twich, IBM, Lyft)

C# (Microsoft, Stack Overflow)

Objective-С (Apple, Instagram, Uber Technologies, Pinterest, Slack, Snapchat)

Swift (Lyft, Asana, Apple)

Go (Google, Uber, Medium, Lyft, Shopify, Twich, Codeacademy)

Ruby (Airbnb, Shopify, StackShare, Twich, Starbucks, Hulu, Kickstarter, Product Hunt, Hotel Tonight, MIT, Coinbase, Codeacademy)

13. «Хочу перейти на IT-рынок»

Если входить через специальность QA-инженера, то можно начать, например, с JavaScript, Java, Ruby или Python. Названия Java и JavaScript похожи, но свойства языков различаются, оба языка – топовые и характеризуются как доступные для новичков.

JavaScript

Кому подходит: начинающим программистам и тем, кому нужен быстрый старт.

Средняя зарплата на начало 2021 года: 133 тысячи (в прошлом году — 110 тысяч).

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

Отдельный большой плюс — у JavaScript-разработчиков большое сообщество и в интернете можно найти ответ на любой вопрос по языку.

️ Также существует алкогольная игра: берёте любое слово из толкового словаря английского языка, добавляете к нему .js и ищете в поисковике, есть ли такая библиотека. Если есть — выпиваете. Победит тот, кто отключится последним. Помните, что употребление алкоголя вредит вашим когнитивным способностям, снижает продуктивность, алкоголь — депрессант, а трезвость — норма вашей жизни. 

Разработка под iOS


Особенности Swift. Фото с презентации Крейгом Федериги нового языка программирования на WWDC’2014.

Изначально разработка программ для Apple-устройств осуществлялась на языке Objective-C, затем в 2014-м на смену ему пришел специально созданный в Apple язык программирования Swift. Несмотря на то, что сегодня разработка iOS-приложений ведется на нем, знание Objective-C будет не лишним для программиста. Кроме лучшего понимания принципов работы приложений, которое даст его освоение, этот язык является и потенциальным первым шагом к освоению C — языка общего назначения, подходящего для широкого круга профессиональных задач, таких как разработка операционных систем, серверного программного обеспечения и драйверов устройств. Главной задачей, которую ставили перед собой создатели Objective-C было быстродействие языка при минимуме ошибок и сниженной нагрузке на оперативные мощности устройства.

Swift унаследовал и развил эти качества. Главные плюс Swift — скорость работы и простота в освоении. Минус — то, что этот язык предназначен строго для iOS-разработки. Впрочем, он отлично подходит и для того, чтобы стать первым языком начинающего программиста.

На освоение Swift потребуется около полутора месяцев. Если дополнить его изучением Objective-C, стоит заложить еще шесть–восемь недель.


Распространение iOS и Android на2017 год Источник.

3 Java


Третью позицию рейтинга занимает Java. Технология разработана в 1995 году специалистом компании Sun Microsystems Д.Гослингом.

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

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

Интересно, что при разработке Java выпущен Star7 — карманный персональный компьютер, опережающий свое время более чем на 10 лет. Star7 не нашел признания пользователей из-за высокой стоимости, однако язык пользовался значительной популярностью.

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

1 C


Лидирует в рейтинге язык программирования C, который появился в 1972 году. Название произносится как «си».

Автором разработки стал Д.Ритчи, сотрудник компании Bell Labs. Язык создавался для реализации на ОС Unix, однако в дальнейшем был перенесен и на другие платформы. В процессе развития проект получил новые возможности, а первый официальный стандарт был создан в 1989 году. Си достаточно независим и не навязывает конкретной модели программирования, пользователь может применять как уже имеющиеся исполнительные программы, так и разрабатывать различные вариации для своих потребностей. Си стал первым языком высокого уровня, потеснившим ассемблер в разработке системного ПО. Некоторое время Unix поставлялся вместе с C, что обеспечило быстрое распространение языка. Характеристики, которые также способствовали успеху проекта — эффективность, компактность и мобильность, что сделало Си удобным для пользователей.

В настоящее время C применяется в ОС и прикладном ПО, его синтаксис лег в основу C++, C#, Java и Objective-C. Можно с уверенностью сказать, что язык C значительно повлиял на развитие индустрии ПО.

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

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

Любой язык содержит в себе большой объем информации, как и средство общения, имеет определенный свод правил и норм. Чтобы усвоить начальный уровень знаний в среднем требуется от 6 до 10 месяцев. Это сравнительно небольшой срок для освоения нового навыка. Однако за это время тенденция на рынке программирования может измениться, и изучаемый вами язык утратит свою ценность.

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

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

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

Для лучшей систематизации языков программирования создаются специальные рейтинги. Два самых известных – это TIOBE и IEEE. Каждый из них использует свой алгоритм и критерии для оценки популярности языков. Рассмотрим поближе первый из них.

TIOBE (англ. The Importance Of Being Earnest) — самый популярный индекс по оценке спроса на языки программирования. Для его составления используются данные из поисковых систем, все запросы, в которых указывалось название того или иного языка. Каждый запрос рассматриваются отдельно и принимается решение, засчитывать его или нет. Бывает, что происходит специальная накрутка запросов.

TIOBE не предоставит данные о реальном использовании какого-то из языков, он опирается лишь на косвенные данные, помогая принять решение, ссылаясь на мнение большинства.

TIOBE собирает данные множества поисковых систем. Проще уточнить те, которые не входят в этот список, например, Яндекс и Baidu. Два крупнейших сервиса в России и Китае. Казалось бы, улетучивается множество запросов от самых купных стран. Но все же рейтинг не теряет свою актуальность.

Вступление

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

Поэтому для начала надо понять свои задачи

Из-за чего вообще встал вопрос выбора языка? Захотелось делать что-то конкретное (игры, сайты, мобильные приложения)? Или важно как можно скорее получить работу в IT любой ценой, что бы ни пришлось кодить? Или хочется просто попробовать «посмотрим, интересно ли мне окажется, а там как пойдёт»?. Если хочется заниматься чем-то определённым — тогда важнее не теоретические сравнения языков, а то, какие используются конкретно в этой области

Часть информации об этом можно получить из текста ниже, но есть смысл и погуглить «what languages are used for %интересующая_область%»

Если хочется заниматься чем-то определённым — тогда важнее не теоретические сравнения языков, а то, какие используются конкретно в этой области. Часть информации об этом можно получить из текста ниже, но есть смысл и погуглить «what languages are used for %интересующая_область%».

Если важно как можно скорее пройти путь до получения работы, тогда тоже важнее текстов-сравнений может оказаться другая вещь. Стоит посмотреть на сайте вроде HeadHunter вакансии Junior-разработчиков своего города: какие языки чаще всего упоминаются в них?. А если нет ни спешки, ни определённого запроса, тогда спрошу так: есть ли потребность делать что-то такое, что пользователь видит глазами? Работа над веб-сервисами делится на фронтенд и бэкенд

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

А если нет ни спешки, ни определённого запроса, тогда спрошу так: есть ли потребность делать что-то такое, что пользователь видит глазами? Работа над веб-сервисами делится на фронтенд и бэкенд. Грубо говоря, фронтенд — это «что видно в браузере», а бэкенд — это «что выполняется далеко на сервере, чтобы фронтенду было что показывать». Когда пользователь нажимает на кнопку, её поведение прописал фронтендер — но если это кнопка «перейти к диалогу» и надо показать историю переписки, то дальше бэкенд извлечёт сообщения из базы данных на сервере.

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

А вот теперь можно читать про конкретные языки и решать, какой из них соотносится с личными целями. Расположил популярные языки по хронологии, в порядке их появления:

Программы для компьютеров и игры

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

Всего в России около 4 000 вакансий для тех, кто владеет этим языком.

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

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


Интерфейс программы игрового движка Unity.

Для этих же целей можно использовать Java или C, но они больше подходят для создания мобильных приложений, операционных и встроенных систем.

C

Разработанный в 1960-х, C был создан с одним основным требованием: быть языком общего назначения, который мог бы эффективно использовать системные ресурсы. Это было время, когда каждый байт памяти был необходим.

Поскольку C++ был основан на C, они имеют такие общие функции, как низкоуровневый доступ к памяти и полный контроль над оборудованием.

C зависит от платформы и сложен в освоении. Но даже сегодня это один из самых популярных языков программирования. Это также язык, который вдохновил множество других, таких как Ruby, C ++, Python и PHP. C широко используется в областях системного программирования, разработки игр, IoT и встроенных систем.

Фрагмент кода «Hello world» в C:

C #

Как и C ++, C # (произносится C Sharp) – это объектно-ориентированный язык общего назначения, построенный на основе C. Он был изначально разработан Microsoft как часть своей платформы .NET для создания приложений Windows.

C # использует синтаксис, аналогичный другим производным от C языкам, таким как C ++, поэтому его легко подобрать, если вы пришли из другого языка в семействе C. C # – это не только средство разработки приложений Microsoft, но и язык, на котором мобильные разработчики создают кросс-платформенные приложения на платформе Xamarin.

Кроме того, всем, кто интересуется разработкой виртуальной реальности, следует изучить C #. C # является рекомендуемым языком для создания 3D и 2D видеоигр с использованием популярного игрового движка Unity, который производит треть лучших игр на рынке.

Веб-разработка

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

Наиболее распространён среди backend-разработчиков язык PHP — на нём написано около 79% всех сайтов в интернете. В России открыто около 5 000 вакансий для PHP-программистов. Он пригоден для работы небольших сайтов, которые не нужно долго поддерживать. Если же проект рассматривается как долгосрочный, то лучше выбрать Java — его любят в финансовой, банковской и государственной сферах.

Поэтому в вакансиях для Java-разработчиков есть место и создателям веб-приложений. А PHP-специалисты нужны именно для создания сайтов. В некоторых странах о нём забыли совсем — например, в Германии. Учтите это, если хотите устроиться разработчиком за границей.


Frontend — разработка видимой части сайта (интерфейс); backend — разработка серверной части (обработчик).

В вебе работают и с Python. Но новичку здесь сложнее пробиться, потому что в основном нужны люди с опытом.

Если же говорить о визуальной части сайта, тот тут у JavaScript альтернатив нет. Это язык скриптов, реакций на действия пользователя. JavaScript — самый востребованный язык из нашего списка: в России около 10 000 вакансий для специалистов по JS.

Требует ли IT-рынок реально знать несколько языков программирования?

Но вернёмся к минимальному порогу. Всё же знать четыре языка звучит реалистичнее, чем 20. Насколько часто IT-компании ищут таких эрудитов? Чтобы ответить на этот вопрос, я изучил несколько сотен вакансий на hh.ru. Большинство позиций с зарплатой от 150 тысяч выглядят примерно вот так:


Скриншот: сайт HeadHunter. Зарплатная вилка этой вакансии — от 150 до 200 тысяч рублей

Человека, который решил попробовать себя в программировании или просто не знаком с C++, такое количество иностранных слов может отпугнуть. Но опытный разработчик на C++ знает, что STL, Boost, MFC — это всего лишь библиотеки, а Qt — фреймворк. То есть в этой вакансии от вас требуется знание всего одного языка программирования — C++. И это, в общем-то, уже верхний уровень российского рынка.

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

В других вакансиях от вас могут потребовать следующее:


Скриншот: сайт HeadHunter. Зарплатная вилка этого предложения — от 150 до 260 тысяч рублей

С HTML и CSS мы разобрались выше. React, Vue.js, Node.js опять-таки инструменты профильного языка представленной вакансии — JavaScript

Обратите внимание, что базовое понимание (не владение!) C++ не обязательно, а лишь будет плюсом. Знать Go тоже не нужно, если вы уже владеете Node.js

То есть обязательных требований здесь едва ли наберётся на два языка.

Вакансии с тремя языками — огромная редкость. А если вы вдруг наткнётесь на должность, которая требует знания четырёх языков программирования на крепком уровне, то велика вероятность, что работодатель либо некорректно сформулировал должностные обязанности, либо просто некомпетентен.


Скриншот: сайт HeadHunter. Один из немногих офферов, где фигурируют три языка (всё-таки требуется отличное знание PHP 7+ и РСУБД). Но и обещанная зарплата — до 500 тысяч рублей 🙂

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector