Как я начала учить Go на Хекслете спустя год занятий фронтенд-разработкой

Статья написана студентом Хекслета. Мнение автора может не совпадать с позицией редакции
Читать в полной версии →

В этой статье я делюсь, почему рассматриваю язык Go для возможного дополнения или замены текущего стека. Изучением языка занимаюсь в удовольствие и, в какой-то степени, для снятия тревожности. Пока это скорее эксперимент, чем попытка сменить или расширить стек.

Введение

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

Как я выбрала Go

Перед тем, как выбрать язык для своего эксперимента, я выбирала направление. Мне также всегда была симпатична мобильная разработка, но в анамнезе всего несколько небольших (и весьма кривых, честно признаться) учебных проектов. Этим летом я немного познакомилась с Kotlin и решала на нем задачки на Leetcode.

Мне понравился язык, даже очень понравился, но углубляться в архитектуру Android у меня желания было мало. Оно не появилось и сейчас. Поэтому, хоть я с легкой завистью поглядывала на спрос разработчиков этого стека, все же решила, что не в этот раз. Разумеется, я рассматривала и разработку под iOS, но пробежавшись глазами по разным roadmap, почитав пути в том числе и сменивших стек, мое сердце так и не застучало быстрее.

Менять фронтенд на фронтенд в другой среде не захотелось, а языки хоть и любопытны, но вагон всего, что необходимо изучить для начала, меня оттолкнул. Подумала — значит, не мое. У меня также был опыт обучения нейросеток в учебных целях, но по итогу это был один из нелюбимых предметов в университете, несмотря на потрясающего преподавателя. Тоже не мое, ML-разработчиком пока не стать.

Посмотрела в сторону бэкенда. Немного по нему даже скучала последние месяцы, когда болтала с бэкендерами. Родной и милый сердцу C#, давно замененный на JS, казался таким знакомым и покрытым дымкой девячьей памяти, но душа требовала нового, поэтому оставила как запасной вариант. Честно признаться, меня на текущем стеке немного отталкивает небольшое количество вакансий в РФ в крупных компаниях (и уровень зарплат в средних, соответственно, так как спрос выходит небольшой). Поэтому мне в любом случае, чтобы чувствовать себя свободнее, пришлось бы расширять стек React (и, возможно, придется). Но за последнее время от JS я сильно устала, мысль об изучении очередного фреймворка отталкивала.

Мне было важно, чтобы в крупных компаниях в РФ были возможности с выбранным языком пройти стажировки/обучения/просто однажды к ним попасть. Подумала, что, наверное, на языки, на которые готовы обучать и нанимать даже студентов, скорее всего, есть большой спрос.

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

Затем я просмотрела Hh.ru по разным языкам на джуна и мидла и смотрела следующие значения:

Я вычеркнула из списка возможных языков Python и PHP и занесла их в слова-исключения. Оба языка пробовала в учебных целях и мы с ними абсолютно не подружились, возвращаться к ним не хотелось ни при каких условиях.

К этому моменту из рассматриваемых языков у меня остались: Java, C++, C#, Go, Scala.

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

На C++ тоже писала лабы еще на первых курсах. Мысленно потерла многократно простреленное колено и с ностальгическим вздохом вычеркнула.

Scala - темная лошадка для меня. Что-то где-то слышала, никогда не видела и даже не встречала лично людей использующих этот язык. Решила пока взять в список запасных.

И того на скамейке запасных двое игроков: C# и Scala, а из оставшихся претендентов только Go.

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

Решила попробовать.

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

Пользуюсь регулярно сайтом для запуска Go в браузере. И в скором времени думаю добавить задачи на leetcode.

План

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

В подзадачи входит:

Изучите Go на Хекслете Пройдите наш трек «Веб-разработка на Go », чтобы узнать основы одного из развивающихся языков для бэкенд-разработки

Стать бэкенд-разработчиком