Сегодня на рынке много IT-продуктов, и каждый хочет обойти конкурентов. Кто быстрее написал, протестировал и выкатил фичу, тот скорее занял нишу на рынке. В такой реальности писать код долго и длинно — роскошь. Популярными становятся языки с простым синтаксисом, более низким порогом вхождения, высокой производительностью. Go — один из них. Именно поэтому так востребованы специалисты, владеющие этим языком.
В статье расскажем, кто такой разработчик Go, где используется этот язык и сколько получает специалист, который пишет на голанге.
Какие задачи решает Go?
В 2009 году компания Google представила язык Golang, сокращенно Go. Он разрабатывался как проект с открытым исходным кодом и за время своего существования стал одним из самых популярных языков — занял шестое место по популярности в первом квартале 2024 года.
Язык Go объединяет в себе простоту написания кода на Python и скорость программирования на C++. Создатели языка искали решение для быстрого написания микросервисов. Так, в большом продукте микросервис или модуль выполняет конкретную функцию, а при объединении с другими складывается в полноценную и работающую систему. Например, в супер-апп-приложении, где можно заказать такси, найти каршеринг, заказать доставки, над каждым конкретным модулем работает отдельная команда программистов. И почти всегда для создания модуля используют язык Go.
Голанг позволяет быстро формировать высокопроизводительные приложения, способные работать на различных платформах: Linux, macOS и Windows. Кроме того, Go обладает мощными инструментами для работы с многопоточностью и асинхронным кодом, что опять-таки делает его идеальным для написания микросервисов. В целом, голанг применим для разных сфер программирования, но лучше всего он прижился на бэкенде — в серверной части приложений. Ведь именно там происходит обработка данных, вычисления, работа с базами данных, которые легко обрабатываются кодом на Go.
Сам язык Go строго типизирован, у каждой переменной есть свой тип, и его нельзя менять. Несмотря на это, голанг — простой, гибкий язык, в нем мало ключевых слов и неявных элементов. Основной упор сделан на эффективное использование вычислительных ресурсов при минимальных затратах и на написание кода благодаря встроенным в язык примитивам многопоточности.
Работая над голангом, разработчики хотели создать синтаксис, с помощью которого программисты не тратили бы время на рутинные задачи — под них в Go сразу сделали встроенные инструменты.
Для чего и как пишут код на Go?
Голанг задумывался как язык, который можно использовать для модулей или микросервисов. Поэтому если нужно писать код многопоточно, то отлично подойдет Go — у него много примитивов для обработки таких задач. Кроме того, с голангом удобно работать с HTTP, на нем можно быстро создавать API, а также мелкий портативный тулинг. Но чаще всего его используют для серверных приложений и сервисов, где есть сложные вычисления, многопоточные системы, парсеры.
Голанг подходит:
- для создания облачных и серверных приложений, веб-сервисов;
- DevOps и автоматизации процессов;
- создания приложений для работы с командной строкой;
- машинного обучения, работы с нейросетями и большими данными;
- программирования микроконтроллеров и робототехники.
На Golang были написаны многие популярные инструменты: Docker, Kubernetes, GitHub CLI и другие.
Среди множества фич, за которые Go получил признание среди разработчиков, особенно выделяют несколько:
- Облегченный синтаксис. Именно он позволяет писать код быстрее. Например, компилятор в языке сам расставляет точки с запятыми в нужных местах.
- Автоматическое создание документации с помощью команды в коде Go.
- Отслеживание устаревших конструкций в коде, подсвечивание их для удобства разработчика.
- Наличие инструментов тестирования. Внутри Go уже есть инструменты для тестирования: например, команды для упрощения сложных конструкций, поиска уязвимостей в коде, проверки соответствия типов в коде.
- Автоматическое управление памятью и сбор мусора.
Кроме того, язык поддерживается сообществом разработчиков. А это гарантирует наличие большого количества библиотек, инструментов и документации.
Какие технические навыки нужны, чтобы начать программировать на Go?
Погружение в голанг у каждого происходит по-разному. Иногда разработчик осваивает его в качестве второго языка, иногда начинает изучать разработку с него.
По словам создателя Go Роба Пайка, у языка есть много общих черт с C, C++ или Java, поэтому освоить голанг в качестве второго языка тем, у кого есть база из этих языков, будет несложно. Go не станет чем-то абсолютно новым, но даст новые инструменты и сократит длительность разработки. Если голанг — первый язык, стоит сначала получить базовое представление о C, C++, Java или Python.
Само изучение Go не отличается от изучения других языков. Отталкиваться лучше от позиции: учить Go — значит учить язык для бэкенда. Потом, когда освоите его и будете уверены в своих умениях, можете попробовать использовать его в других сферах разработки.
Краткий план освоения Go:
- Общие принципы backend-разработки.
- Основы разработки микросервисов.
- Работа в Linux.
- Базовые навыки по работе в Git.
- Основные функции, операторы и типы данных языка Go.
- Базы данных и умение формировать запросы.
- Принципы работы с протоколом HTTP.
- Основы многопоточности.
- Тестирование качества кода.
Что же касается технических навыков, на которые смотрят при приеме на работу, то часто у специалистов проверяют:
- Опыт работы с системами контроля версий, такими как Git.
- Понимание принципов объектно-ориентированного программирования и умение их применять.
- Навыки работы с базами данных, такими как MySQL или PostgreSQL.
- Знание основ сетевого программирования.
- Умение работать с API различных сервисов и программ.
- Опыт разработки веб-приложений с использованием фреймворка вроде Gin или Echo.
- Навык тестирования и отладки кода.
- Опыт работы с облачными сервисами, такими как Amazon Web Services или Google Cloud Platform.
- Знание принципов работы с контейнерами, такими как Docker.
- Владение инструментами для непрерывной интеграции, такими как Jenkins или GitLab CI/CD.
- Опыт работы со средствами мониторинга и логирования, такими как Prometheus, Grafana и Loki.
А нужны ли soft skills?
Знать Go и писать на нем — это лишь половина успеха для программиста. Узкие профессиональные знания не перекрывают и не компенсируют замкнутость, недостаток эмоционального интеллекта и отсутствие других soft skills. ИТ-компании предпочитают кандидатов, которые могут и хотят коммуницировать. HR-менеджеры и тимлиды при подборе кандидатов уделяют особое внимание их способности работать в команде, лидерству, навыкам эффективного взаимодействия с клиентами и адаптивности.
Также важна готовность постоянно учиться и критически оценивать свое обучение, задавать вопрос: «Как повлияет новое обучение на мой уровень зарплаты или мое развитие?»
Кроме этого, навыки тайм-менеджмента и приоритизации задач также остаются востребованными среди работодателей — никому не хочется напоминать о дедлайнах. Умение приоритизировать задачи и управлять своим временем — ключевой навык в эпоху непрекращающегося потока работы.
Зарплата Go разработчиков
По подсчетам сервиса Stack Overflow за 2023 год, Go-разработчик может зарабатывать в среднем в мире $92 тыс. в год — это десятая позиция по прибыльности среди существующих языков. Если же обратиться к популярным языкам, то средняя зарплата Python-разработчика — $78 тыс. в год, JS-разработчика — $74 тыс. в год, а Java-программиста — $72 тыс. в год. Go давно используют ряд таких гигантов, как Amazon, Microsoft, Cisco Systems, Netflix, Spotify, Apple.
Что же касается российского рынка голанг-разработчиков, то на середину апреля 2024 года на сайте HeadHunter была 1601 вакансия с упоминанием языка программирования Go. Зарплата начиналась от 50 тыс. рублей, при этом есть около 50 вакансий, где доход стартовал от 500 000 тыс. рублей в месяц. Уже сегодня российские компании пишут часть кода на голанге. Например, его используют в Mail.ru Group, Avito, Ozon, Lamoda, «Ростелекоме».
По исследованию рынка IT-вакансий Habr, в 2023 году вырос спрос на backend-разработчиков. Самыми быстрорастущими стеками стали Python (30%), Java (17%), С++ (15%) и Golang (13%). Авторы отмечают, что если интерес к Python традиционно высокий, то к Go он значительно вырос, так как этот язык быстрее Java и PHP и многие компании либо запускают новые проекты на Go, либо переписывают на нем старые продукты. Go привлекает все больше внимания благодаря своей производительности, простоте использования и поддержке параллельных вычислений, нo остается нишевым языком. Поэтому пока спрос на таких специалистов превышает предложение.