Все любят язык Go: почему он стал популярным и сколько зарабатывают разработчики
Язык Go создавался для внутренних нужд Google, а теперь его используют в большинстве крупных компаний. И они неплохо платят разработчикам.
vlada_maestro / shutterstock
Молодой язык программирования Go становится всё популярнее: его поддерживает Google и чаще используют гиганты вроде Adobe, BBC, IBM, Intel. Он подходит для разработки консольных утилит, бэкенда, надёжных серверных и системных приложений, микросервисов. Нишу и цель создания Go определил один из отцов языка — Роб Пайк:
Ключевая причина [создания Go] в том, что наши программисты — это гуглеры, а не учёные. Как правило, они довольно молоды, недавно окончили школу, возможно, изучили Java, C или C++, ещё, вероятно, Python. Они неспособны понять крутой и сложный язык, но мы хотим, чтобы они могли создавать для нас хорошее программное обеспечение. Таким образом, язык, который мы даём им, должен быть простым для понимания и освоения.
Из выступления Роба Пайка на конференции Lang-NEXT в 2014 году.
Он должен выглядеть привычно, быть похожим на С. Программисты из Google находятся ещё в начале своей карьеры, они лучше знакомы с процедурными языками, особенно из семейства С. Необходимость быстро перевести программистов на новый язык означает, что он не может радикально отличаться от уже известных им языков.
Из выступления Роба Пайка на конференции SPLASH в 2012 году.
Некоторые интернет-комментаторы тут же выпустили саркастические статьи. Мол, руководство Google считает своих разработчиков не слишком умными. Но слова Пайка нужно понимать правильно. Учёный и программист отличаются друг от друга так же сильно, как хороший водитель и пилот «Формулы-1»: чтобы нормально управлять машиной, не нужны навыки Шумахера.
Поэтому Golang — это как C или C++, но с коробкой-автоматом. Он просто берёт на себя рутину и сложные мелочи, оставляя талантливым программистам больше времени на инженерное творчество. В этом его сила, и за это его ценят крупные компании: код и пишется, и компилируется, и выполняется достаточно быстро.
Go позволяет экономить ресурсы и за ту же единицу времени выполнить больше задач (см. обсуждение скорости разработки на форуме по Go). Привет, Agile, спринты и Story Points! : -) Получается, что даже средний программист может в короткие сроки создавать качественный код просто благодаря архитектуре языка.
Язык Go — любимчик программистов
Международное программистское сообщество любит Go. В опросе Stackoverflow за 2020 год язык расположился на пятом месте среди самых обожаемых.
А в рейтинге дополнительных языков, которые программисты хотят изучить в ближайшее время, он занял третье место — уступил только Python и JavaScript. Плюс к этому, Golang используют 10% профессиональных разработчиков — 12-е место среди всех языков программирования. И это молодой специфичный язык!
Также Go успел дважды стать языком года в рейтинге TIOBE: первый раз — сразу после выпуска, в 2009 году, а второй — в 2016.
Сколько получают Go-разработчики
Тут Golang показывает просто космические результаты: третье место после Perl и Scala в мире и второе — после Scala — в США (опрос Stackoverflow).
На российском рынке у Go тоже всё хорошо: даже стажёра-студента берут на зарплату в 30−40 тысяч рублей (сентябрь 2020 года, данные hh.ru, geekjob.ru, rabota.yandex.ru), а начинающий программист (junior) с небольшим опытом может претендовать на 60−70 тысяч. Среди работодателей, которые готовы брать джунов: Avito, «СберТех» и другие крупные компании. Похоже, что Go — самый простой способ для новичка закрепиться в них и сделать карьеру.
Более опытным программистам (middle) компании предлагают уже 120−130 тысяч рублей, а экспертам (senior) и тимлидам — 200 и даже 300 тысяч. Если есть хороший английский, то даже на hh.ru можно найти удалёнку в иностранных компаниях с зарплатой до 7500 долларов.
Разработчиков на Go всё ещё не так много, а язык точно будет набирать популярность — это показывают рейтинги TIOBE и Stackoverflow, а также мощная поддержка в лице Google и популярность в крупных компаниях. Например, его используют в российских Mail.ru Group, Avito, Ozon, Lamoda, «Ростелеком». Так что вложиться в изучение Go сейчас — отличная инвестиция. Можно достаточно быстро сделать карьеру, конкуренция ведь ещё не такая высокая.
Карьерный путь в Golang
Минимальный порог вхождения в Go: писать код в соответствии с официальным руководством по стилю и работать с GitHub.
Но вообще-то, сейчас мало кого из работодателей интересует какая-то технология в чистом виде — большинство проектов делаются на разных инструментах и языках программирования. Именно поэтому Go очень хорош как второй язык, а в вакансиях Go-разработчиков часто указывают знание PHP, Python, JavaScript, HTML/CSS и отдельных библиотек вроде Angular и Vue. Понадобятся и базы данных, которые потянут за собой SQL, — всё-таки Go используют в бэкенде.
Go связан с многопоточностью, консольными и серверными приложениями, а значит, чтобы претендовать на middle-позиции, придётся глубоко изучить операционную систему Linux, командную строку, Docker, Kubernetes и подобные технологии.
Для перехода на должность senior-разработчика важен опыт, не связанный напрямую с Go, — умение писать свои API, работа со сложными веб-сервисами и высоконагруженными системами.
С позиции middle- или senior-разработчика можно получить должность teamlead — то есть взять на себя руководство командой программистов. Тогда кроме hard skills — навыков программирования, будут важны и soft skills — коммуникативность, менеджмент, планирование, способность договариваться, отстаивать свою позицию и решать конфликты.
Где изучать Go
Golang — минималистичный язык, в нём практически нет лишнего, это принцип создателей. Даже официальная спецификация занимает не больше 50 страниц — простой понятный текст, куча примеров и переводы от сообщества на множество языков (есть на русском). Опытный программист может выучить язык просто по мануалам с официального сайта, не прибегая к гигантским академическим книгам вроде «Learning Python» Майка Лутца. Но чтобы узнать тонкости и практику использования, придётся погрузиться в тему более серьёзно.
Книг на русском пока что мало, зато их хвалят читатели. В первую очередь это «Язык программирования Go» и «Go на практике». Повторимся, что и официальная документация на сайте Go написана простым и весёлым языком, а изучать по ней язык — одно удовольствие.
Есть бесплатные онлайн-курсы и тренажёры. Например, программа из двух частей на Coursera, цикл лекций в Техностриме от Mail.ru или платформа для тренировок. Порог вхождения в язык довольно низкий. Но если у вас нет кучи свободного времени и хочется освоить Golang быстро, глубоко, эффективно и на реальных задачах — лучше выбрать программу с опытными менторами.
В Skillbox есть полноценный курс по Go. Опытные преподаватели помогут изучить язык и узнать детали его применения. А заодно вы подтянете технический английский и общую теорию программирования, разберётесь в тонкостях GitHub и SQL. Будет и дипломная работа: сетевой многопоточный демон.