Збираємо базу IT-компаній. Приєднуйтесь 👇

Мануал для джуна. Что необходимо знать, уметь и понимать для покорения GO

О том, с чего начать изучение Go, что делать, когда не все удается с первого раза, как и где искать дополнительные знания, рассказывает Виктор Пахучий, Go Engineering Lead в Intellias. Виктор — один из менторов курса Go, который состоялся в рамках IntelliStart — образовательного хаба, где специалисты и специалистки Intellias делятся своей экспертизой по разным направлениям с теми, кто стремится начать свой профессиональный путь в IT.

Оставить комментарий
Мануал для джуна. Что необходимо знать, уметь и понимать для покорения GO

О том, с чего начать изучение Go, что делать, когда не все удается с первого раза, как и где искать дополнительные знания, рассказывает Виктор Пахучий, Go Engineering Lead в Intellias. Виктор — один из менторов курса Go, который состоялся в рамках IntelliStart — образовательного хаба, где специалисты и специалистки Intellias делятся своей экспертизой по разным направлениям с теми, кто стремится начать свой профессиональный путь в IT.

Знакомство с языком программирования и его нишей

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

Итак, почитайте о том, что такое Go и где используют этот язык, какие продукты созданы с его использованием. Обратите внимание на преимущества и недостатки. Также попробуйте поискать объявления о работе, где требуются такие специалисты.

Затем приглашаю продолжить чтение этого материала.

С чего начать изучение

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

Однако в случае с Go существует единоличный лидер для старта знакомства с языком — A tour of Go.

Это интерактивный курс, знакомящий с синтаксисом языка, его базовыми конструкциями, типами данных и другими доступными инструментами. Опытные разработчики уже могут начинать писать код на Go и практиковаться.

Итак, пройдя этот тур, вы должны закрепить каждую из его тем на практике. Кроме того, по каждой теме нужно искать дополнительные материалы, чтобы лучше понять теоретическую часть. Именно для этого могу посоветовать книгу «The Go Programming Language» (Alan AA Donovan · Brian W. Kernighan). К сожалению, она не охватывает последние важные изменения в языке, однако помогает получше структурировать знания в самом начале.

На этом этапе вы должны владеть определенными инструментами языка и уметь писать несложные программы. Именно поэтому я рекомендую обратить внимание на логику и процесс мышления — поиграть с алгоритмическими задачами.

Существует портал Codewars, на котором можно решать задачи разного вида и сложности. Я не призываю к фанатизму, но решение 10–15 задач простейшей сложности придаст вам уверенности и позволит погрузиться в атмосферу problem solving.

Кстати, ссылку на этот портал потом можно использовать как часть самопрезентации на собеседовании.

А если хочется копнуть поглубже?

Если у вас есть время и желание улучшить теоретические знания, приглашаю на этот портал — go101. Здесь можно найти знания разной глубины почти по каждой теме, касающейся языка Go. Итак, если вам непонятны интерфейсы, можно прийти сюда и почитать.

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

Ну и напоследок, существует куча записей докладов из разных конференций или других встреч сообществ. Обратите внимание на:

  • Golang UK Конференция
  • GolangUA | Russian Golang Community
  • dotGo conferences
  • GopherCon conference

Знание, кроме языка

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

Прежде всего, советую обратить внимание на это — https://github.com/avelino/awesome-go. Там можно найти, пожалуй, что-нибудь, связанное с Go. Если вам нужен какой-нибудь новый инструмент — идем туда. Хотите найти что-нибудь почитать — тоже туда.

В общем, этот портал круто помогает с поиском необходимых библиотек для решения тех или иных задач.

Что касается вещей универсальных. Следует познакомиться со следующими технологиями/инструментами/практиками:

  • WEB, Client-Server
  • HTTP, REST
  • Git, Github/Gitlab
  • RDBMS, PostgreSQL/MySQL
  • Golangci-lint
  • Unit-tests, Mocks, Postman
  • Docker
  • JSON
  • DRY; KISS

Это сравнительно минимальный список. В зависимости от проекта, на который вы пройдете собеседование, могут потребоваться те или иные вещи. Кто-то захочет, чтобы вы знали, что такое gRPC, а кому будет некритично, что вы не знаете, что такое Docker.

Желательно все же пройтись по всему списку, понять, что это за вещи и для чего их создали. Хорошо понимать проблемы, которые они помогают решать. Будет круто, если у вас есть понимание преимуществ и недостатков той или иной технологии по сравнению с альтернативами.

То есть, если идете, например, ко мне на интервью, самое главное — понимать, что это за вещи, когда их лучше использовать, а когда они не нужны или вредны. Отлично знать альтернативы — а можно ли писать программы без REST? Ну и так далее.

Проект?

Мы обсудили теоретическую часть, но невероятно хорошо, когда у вас будет и практический опыт работы с этими инструментами. Лучший вариант — начать писать собственную программу, собственный проект.

Возьмите за основу понравившуюся идею и пошагово ищите пути решения маленьких задач. Все задачи старайтесь разделять на маленькие. Тогда и искать решение легче, и прогресс будет ощутимее.

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

Интервью

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

Выделю определенные темы, на которые будет полезно обратить больше внимания:

  • Slices/Arrays; Maps
  • Interfaces; comparison and usage
  • Errors usage; error vs panic
  • Go modules
  • Comparable types

Конечно, вам могут достаться вопросы большей сложности в отношении goroutine и channels, concurrency-инструментов и так далее. Однако, по-моему, понимание этого хотя бы в какой-то степени является большим преимуществом, но отнюдь не необходимостью для начинающего.

Если отойти от Go, то вот еще некоторые темы:

  • DB CRUD operations; indexes; ACID
  • REST
  • Git branch vs Git commit
  • Binary search

Опять же, это не будет лишним, но вы не должны надеяться, что понимание этого даст вам 100% шанс прохождения собеседования. Чем больше знаете, чем больше кода вы написали — тем больше у вас шансов. Это только советы, как их повысить. Работайте над собой, развивайте скиллы — и желаемое предложение обязательно достанется вам!

Мануал для джуна. Что должно знать уметь и учить Junior Product Owner в Gamedev: разбор от специалиста с 12-летним опытом
Мануал для джуна. Что должно знать, уметь и учить Junior Product Owner в Gamedev: разбор от специалиста с 12-летним опытом
По теме
Мануал для джуна. Что должно знать, уметь и учить Junior Product Owner в Gamedev: разбор от специалиста с 12-летним опытом
Мануал для джуна. Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих
Мануал для джуна. Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих
По теме
Мануал для джуна. Как стать хорошим Java-разработчиком с нуля: максимально подробная инструкция для начинающих
Мануал для джуна. Что нужно знать начинающему в fullstack-разработке: 30 вопросов и примеры тестовых заданий
Мануал для джуна. Что нужно знать начинающему в fullstack-разработке: 30 вопросов и примеры тестовых заданий
По теме
Мануал для джуна. Что нужно знать начинающему в fullstack-разработке: 30 вопросов и примеры тестовых заданий

Больше мануалов для джунов здесь.

Читайте главные IT-новости страны в нашем Telegram
Читайте главные IT-новости страны в нашем Telegram
По теме
Читайте главные IT-новости страны в нашем Telegram
dev.ua запускає джобборд з акційною пропозицією для IT-роботодавців

Надсилайте вакансії

Мы запускаем рассылку об украинском IT-комьюнити. Оставьте email, чтобы понимать больше. Премьера — скоро!
Спасибо! На указанный адрес отправлено письмо для подтверждения подписки.
Читайте также
В прошлом году количество специалистов компании Intellias выросло вдвое
В прошлом году количество специалистов компании Intellias выросло вдвое
В прошлом году количество специалистов компании Intellias выросло вдвое
«Меня унесло течением». Delivery Manager в Intellias теперь – межконтинентальная пловчиха, еще 5 лет назад она об этом и не думала
«Меня унесло течением». Delivery Manager в Intellias теперь – межконтинентальная пловчиха, еще 5 лет назад она об этом и не думала
«Меня унесло течением». Delivery Manager в Intellias теперь – межконтинентальная пловчиха, еще 5 лет назад она об этом и не думала
«Вокруг IT» — рубрика, в которой мы собираем все полезное для жизни айтишника, не касающееся его работы. Сегодня о своем хобби рассказывает Людмила Костышена, Delivery Manager в Intellias, межконтинентальная пловчиха, участница разнообразных заплывов в Украине и за рубежом. Она делится своим опытом профессионального плавания и даст советы тем, кто хочет попробовать подобный спортивный опыт.
Intellias в Ужгороде: «Клиенты чаще хотят нанимать специалистов вне Украины из-за риска потери инженеров в связи с мобилизацией»
Intellias в Ужгороде: «Клиенты чаще хотят нанимать специалистов вне Украины из-за риска потери инженеров в связи с мобилизацией»
Intellias в Ужгороде: «Клиенты чаще хотят нанимать специалистов вне Украины из-за риска потери инженеров в связи с мобилизацией»
Живописный регион Закарпатье, славящийся своей природой, курортами, вином и приветливыми людьми, похоже, имеет хорошую возможность стать еще и немаленьким IT-хабом. Из-за полномасштабного вторжения рф регион приютил значительное количество айтишников. Уже создан Закарпатский IT-кластер, в Ужгороде открыли свои офисы одни из крупнейших IT-компаний — EPAM (читайте наш репортаж — здесь), SoftServe и Intellias. Мы посетили новый ужгородский офис компании Intellias, которая много лет является одним из лучших IТ-работодателей по версии DOU. О новой локации, стратегии глобализации бизнеса, эвакуации, IT-кластере, образовательных проектах и жизни во время войны, читайте в нашем материале.
Intellias открывает новый центр разработки в Болгарии, до конца года наймут 40 специалистов
Intellias открывает новый центр разработки в Болгарии, до конца года наймут 40 специалистов
Intellias открывает новый центр разработки в Болгарии, до конца года наймут 40 специалистов

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментариев пока нет.