Golang. Опыт и мои ошибки фото
Разработка Разработка

Golang. Опыт и мои ошибки

Санал Хохлов - Golang-разработчик RentaTeam.

Почему Go

Большое количество компаний используют Golang для написания бэкенда с нуля. Почему? Это простой язык, здесь строгая статическая типизация, высокая скорость разработки и хорошая производительность. В этом языке есть кросс-компиляция и хорошая стандартная библиотека. 

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


С чего начать?

Разработчики на Go начинают с прохождения A Tour of Go. Здесь можно получить базовые знания о языке. Материал подается на слайдах и после изучения каждого модуля можно проверить себя, выполнив предложенные задания. Советую не пропускать вопросы и все-таки пытаться разобрать их. Информация достаточно обобщенная и базовая, поэтому при возникновении конкретных вопросов придется обращаться к другим платформам.

 Для Golang-разработчика важен и этот ресурс . Возможно, некоторым он покажется подобием «википедии», все же стоит выделить на это время и прочитать от и до, чтобы начать писать код на Go.

В первое время "Язык программирования Go" от Алана А. А. Донована и Брайана У. Кернигана была моей настольной книгой и помогла изучить язык с нуля. Параллельно полезно смотреть материалы на habr, medium, youtube, подкасты и читать исходники. На чтение и разбор исходников я потратил много времени, но это абсолютно точно помогло мне повысить качество написания кода. 

Будет преимуществом, если вы знаете еще и другой язык программирования. Я интересовался многим, и у меня есть опыт коммерческой разработки в JavaScript (TypeScript), Java. В целом, полезно изучать что-то новое, расширять кругозор, держать мозг в тонусе. Распыляться на все, конечно, тоже не стоит. Я бы советовал развиваться в так называемой Т-форме: осведомлен о многих вещах, но профессионал в чем-то одном. 


Как получить опыт?

Теория без практики в разработке не имеет смысла. В первое время я приобретал опыт в pet проектах, небольших сервисах и простых вспомогательных программах. К примеру, я работал над сервисами рассылки сообщений на почту, смс, пуш уведомлений, которые хорошо ложатся на Go. Как получите первый опыт, думаю, стоит найти команду, которая работает над сложными кейсами: чем круче проекты, тем быстрее выйдете на хороший уровень. В первое время не стоит ставить в приоритет зарплату, так как на начальном этапе важнее опыт. Для меня приоритетным в работе является возможность научиться чему-то новому: в RentaTeam работаю в команде Golang-разработчиков, но кроме повышения навыков в Go, расширил знания по kubernetes и devops в целом.

Стоит ли говорить об участии в конференциях GopherCon Russia, Golang Conf, где можно получить нужную информацию. Интересные вещи рассказывают на Highload++. Но посещать их нужно с конкретным вопросом: нет смысла ходить только ради того, чтобы «послушать». Кроме того некоторые компании, использующие Go (Авито, Mail.ru и т.д.) проводят небольшие митапы. Эти встречи особенно важны для тех, кто планирует работать в их командах.

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


Что спросят на собеседовании?

Думаю, новичкам в любой сфере интересно знать, о чем могут спросить на собеседовании.Так, я отвечал на вопросы про структуры данных, асинхронное программирование, конкурентность,о планировщиках ОС и Go. До интервью желательно разобрать вопросы про SOLID, микросервисы и базы данных.



Ошибки, которые не стоит повторять

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

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

Подписывайтесь на нас в соцсетях, если хотите быть в курсе последних событий в сфере бизнеса и технологий.