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

Существует несколько сотен языков программирования, и это не считая тех, что созданы ради веселья — например, безумный Brainfuck. Как среди всего этого многообразия выбрать правильный язык для старта, рассказывает основатель и CEO первого в России буткемпа Elbrus Георгий Бабаян.

На самом деле всё не так страшно. Будущему программисту придётся выбирать среди первой десятки самых популярных языков программирования. Именно эти языки интересуют потенциальных работодателей — стартапы, крупные ИТ-компании, центры обработки данных.

Популярные языки? Огласите весь список, пожалуйста

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

Согласно этому рейтингу, в топ-15 самых популярных языков вошли:

На популярность языка влияют разные факторы. Приведу несколько примеров:

  • Lua, язык, на котором написали игру Angry Birds, потерял любовь разработчиков из-за того, что количество программистов на Lua многократно превышало рыночный спрос.

  • Objective-C вошёл в топ-3 самых ужасных языков согласно опросу Stack Overflow 2019 года. Он использовался в разработке для OS X и iOS, пока в 2014 году Apple не представила более дружелюбный Swift.
  • Erlang постепенно теряет популярность на рынке, так как потребность в нём ограничена нуждами индустрии телекоммуникаций.

Так что же всё-таки выбрать

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

При этом важно понимать, что одним языком программирования дело не ограничится: со временем придётся освоить два-три близких ЯП, которые помогут эффективнее решать «взрослые» задачи по разработке. Если владеете английским, тут можно пройти классный тест для подбора идеально подходящего вам языка.

Мой результат: Ruby. Идеальный язык для стартапа

Подводные камни при выборе языка

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

  1. Простота изучения и использования.
  2. Вендор.
  3. Комьюнити.
  4. Востребованность языка в конкретном регионе.
  5. Размер зарплат.

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

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

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

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

Фрагмент одного и того же кода на популярных языках
Фрагмент одного и того же кода на популярных языках

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

Вендор

Многие языки, библиотеки и фреймворки привязаны к определённой платформе и компании. Возьмём для примера Swift, который тесно связан с Apple и её программными продуктами. Если Apple внезапно уйдёт с рынка, как это случилось с Nokia, исчезнет потребность в специалистах по Swift и Objective-C.

Платформа Java была создана компанией Sun Microsystems, которую затем поглотила Oracle — ей принадлежат права на торговую марку Java.

Другие популярные языки программирования, например Python и Haskell, не зависят от платформы и вендора. Они будут популярны до тех пор, пока не сойдёт на нет использование соответствующих технологий.

Ещё один хороший пример — Ruby: этот язык поддерживается Airbnb и хорошо подходит для стартапов. У него элегантный синтаксис, который позволяет быстро писать код, и активное доброжелательное комьюнити.

Выбор между «корпоративными» и «независимыми» языками зависит от ваших карьерных планов и личных убеждений.

Уровень поддержки в комьюнити

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

Молодые языки, например Ruby, Python и JavaScript, отличаются позитивным и очень общительным комьюнити: тут всегда ответят и помогут, регулярно проводятся митапы, а в Telegram полно профильных каналов на любой вкус, например:

  • Python Beginners — база знаний для новичков в Python.
  • Python — чат разработчиков на Python.
  • pro.js — разработчики на JavaScript.
  • JS Jobs — популярный канал с вакансиями JavaScript.
  • Ruby, Rails, Hanami | dry-rb — разработчики Ruby и Ruby on Rails.

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

Популярные площадки для программистов:

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

  • GitHub — площадка для обмена кодом.

  • В России программисты поголовно сидят на «Хабре», в Америке — на Reddit.
  • В англоязычном комьюнити также популярна площадка Hacker News, которую сделал Y Combinator.
  • У дата-сайнтистов есть мощное сообщество ODS, основная движуха в котором вертится вокруг собственного канала в Slack.
  • А разработчики JavaScript регулярно собираются в Москве выпить крафтового пива и обменяться опытом на митапах BeerJS.

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

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

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

Уровень зарплат

Кадровый голод в ИТ-сфере заставляет компании конкурировать за специалистов всеми возможными способами, в том числе и соблазнять их зарплатами внушительных размеров. Однако размером оплаты труда специалистов, владеющих конкретным языком, лучше поинтересоваться заранее. Удобно сделать это на hh.ru и его отечественных и зарубежных аналогах, например, indeed.com.

В Elbrus Bootcamp изучают JavaScript. Это третий по популярности язык программирования с низким порогом входа и развитым комьюнити. Он очень востребован в крупных корпорациях и широко применяется в мобильной разработке на Android. Hackr.io включил JS в десятку самых перспективных языков для изучения в 2019 году.

Проанализировав все факторы, я остановился на JavaScript как на самом подходящем языке для старта в профессии. Буду рад обсудить выбор в комментариях.

0
99 комментариев
Написать комментарий...
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alex Hold

Ну можно ещё Rust и C# добавить.
Да и с Node.js на бекенд живется прекрасно.

Ответить
Развернуть ветку
Make Luv

Пока полтора запроса в час нода может и хороша. Серьезная разработка на языке без типизации - это оксюморон.
Rust вообще не для бэка.
А C# хорош, да.

Ответить
Развернуть ветку
Alex Hold

Fastify Node.js быстрее Beego фреймворка на Go.
Почему прямые руки решают.

Node.js за счет асинхронности быстрее большинства скриптовых языков.
Быстрее PHP, а на нем больше 60% интернет сайтов работает.
Wikipedia на которой ты бываешь очень часто написана на PHP думаешь там 1 запрос ?
А Node.js быстрее.
Netflix тоже наверно сайт с одним запросом.
И думаю компании из топ 30 тоже с 1 зпросом ))

На Rust быстрейший web фреймворк использующий модель акторов Actix.
Быстрейший это означает что он быстрее вообще всех известных web фреймворков.
И сам Rust часто используют в нагруженных бекенд приложениях крупные компании.
Dropbox тому пример.

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

Думаешь разработчики на Python, Ruby, PHP , Perl, JS и ещё многих языков с динамической типизацией.
пишущие сложные проекты, часто со сложными паттернами и математическими моделями.
Считают что они пишут херню потому что Make Luv говорит что их язык это несерьезно ?

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

А пока ты яркий представитель школы я выучу с++ за 21 день!

Ответить
Развернуть ветку
Make Luv

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

Ответить
Развернуть ветку
Alex Hold

Что что вы преклоняюсь перед вашим опытом небожитель.
Расскажите мне про Spring монолит с десятью годами доработок.
Можете ещё про микросервисную архитектуру рассказать вдруг чему научите.

Что ещё есть на Rust и какие компании его используют вам расскажет google и crates.io.
Хотя судя по вам вы очень хреново им пользуетесь.
Можете не отвечать мне не интересно!
Ушел читать про кровавый энтерпрайз на хабр!

Ответить
Развернуть ветку
Пётр Самохин

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

Ответить
Развернуть ветку
Make Luv

Потому что на пхп пишут и о типизации не слышали. Зато олимпиадники поголовно, задачки умеют на доске решать.

Ответить
Развернуть ветку
Пётр Самохин

Конечно, вопросов «как так вышло» не возникает, больше вопросов «почему». Не особо приходилось руки об пыхапе пачкать, но почти уверен, что сделать по-человечески можно было и без особого труда.
Но они отдают ошибки в жсоне, при этом http code 200 (хотя не всегда, и эта неразбериха многое о них говорит), массивами/объектами жонглируют как хотят, и из строгой типизации парсинг того, что они в респонсе нагадили, превращается в сплошной трай-кетч.

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

Ответить
Развернуть ветку
96 комментариев
Раскрывать всегда