Как выбрать язык программирования для старта
Существует несколько сотен языков программирования, и это не считая тех, что созданы ради веселья — например, безумный Brainfuck. Как среди всего этого многообразия выбрать правильный язык для старта, рассказывает основатель и CEO первого в России буткемпа Elbrus Георгий Бабаян.
На самом деле всё не так страшно. Будущему программисту придётся выбирать среди первой десятки самых популярных языков программирования. Именно эти языки интересуют потенциальных работодателей — стартапы, крупные ИТ-компании, центры обработки данных.
Популярные языки? Огласите весь список, пожалуйста
Достаточно объективный способ подсчитать популярность языка — статистика поисковых запросов, которая учитывает как поиск самого языка, так и документации к нему. Результаты статистического анализа можно найти здесь.
Согласно этому рейтингу, в топ-15 самых популярных языков вошли:
На популярность языка влияют разные факторы. Приведу несколько примеров:
Lua, язык, на котором написали игру Angry Birds, потерял любовь разработчиков из-за того, что количество программистов на Lua многократно превышало рыночный спрос.
- Objective-C вошёл в топ-3 самых ужасных языков согласно опросу Stack Overflow 2019 года. Он использовался в разработке для OS X и iOS, пока в 2014 году Apple не представила более дружелюбный Swift.
- Erlang постепенно теряет популярность на рынке, так как потребность в нём ограничена нуждами индустрии телекоммуникаций.
Так что же всё-таки выбрать
В первую очередь следует выбирать не язык, а область, в которой вы собираетесь строить карьеру. Игры, веб-разработка, разработка мобильных приложений, работа с большими данными — каждое направление требует своего набора языков. Определились с направлением? Выбирайте один из популярных языков в области.
При этом важно понимать, что одним языком программирования дело не ограничится: со временем придётся освоить два-три близких ЯП, которые помогут эффективнее решать «взрослые» задачи по разработке. Если владеете английским, тут можно пройти классный тест для подбора идеально подходящего вам языка.
Подводные камни при выборе языка
Новички часто не обращают внимания на важные факторы и уже в ходе изучения языка понимают, что лучше было бы выбрать другой. Чтобы не жалеть о потерянном времени, важно учесть пять факторов:
- Простота изучения и использования.
- Вендор.
- Комьюнити.
- Востребованность языка в конкретном регионе.
- Размер зарплат.
Простота изучения и использования
Знакомство с программированием удобно начинать с простых языков с дружелюбным синтаксисом. Команды в таком языке задаются английскими словами, понятны без словаря и легко запоминаются, а код напоминает предложения текста.
Чем дальше от повседневного английского логика языка и названия команд, тем сложнее будет втянуться в работу. Лайфхак: если название языка знакомо человеку без опыта в ИТ, он, скорее всего, достаточно прост для изучения.
Кроме этого, важно чтобы выбранный язык нравился вам визуально — именно его вы будете видеть большую часть дня. Уже упомянутый выше тест предлагает сравнить образцы кода на популярных ЯП и выбрать тот, к которому больше лежит душа:
Ещё один важный момент — количество доступной информации о конкретном языке. Если документации мало, учёба может стать очень сложной. Подробнее об этом расскажу в пункте об уровне развития языка.
Вендор
Многие языки, библиотеки и фреймворки привязаны к определённой платформе и компании. Возьмём для примера 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 как на самом подходящем языке для старта в профессии. Буду рад обсудить выбор в комментариях.
Язык, язык кто хочет выучить язык программирования, начните с языков общения сначала. А чтобы стать, хоть мало мальским программистом, нужны не только знания языка, а ещё и алгоритмов, парадигм и кучу всего, что приобретается только с опытом. А все эти подборки, этот круче там платят больше, по большей части бред, сорри за тафтологию. И то что вы знаете синтаксис языка, не делает вас программистом, это все популизм. Программист это художник, плохой или хороший, но он делает, потом переделывает и видит рост. Итеративный подход. Нельзя из человека сделать строителя хорошего ПО, ни одни курсы и тд, не дадут вам этого, программист это призвание, со своими плюсами и минусами, так что такие статьи мне кажется только вводят людей в большое заблуждение, а потом в разочарование. Ни кто из программистов в начале, а бывает и в середине или даже в конце карьеры не зарабатывает миллионы. А выбирать язык который учить надо, это когда вы рутину хотя бы для себя хотите автоматизировать, либо идти к мечте.
Путь к мечте у каждого свой. Не вижу ничего плохого в том, что у кого-то он начинается с подборок в интернете. Курсы дают билет в профессию, дальше — делать и переделывать, набираться опыта на реальных задачах, все как вы написали.