💳 Trustee Plus — твоя персональна картка європейського банку: 3 хвилини і 10 євро 👉
Марія БровінськаВойти в IT
26 декабря 2022, 11:52
2022-12-26
Мануал для джуна. Что необходимо знать, уметь и понимать для покорения 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.
Желательно все же пройтись по всему списку, понять, что это за вещи и для чего их создали. Хорошо понимать проблемы, которые они помогают решать. Будет круто, если у вас есть понимание преимуществ и недостатков той или иной технологии по сравнению с альтернативами.
Проект?
Мы обсудили теоретическую часть, но невероятно хорошо, когда у вас будет и практический опыт работы с этими инструментами. Лучший вариант — начать писать собственную программу, собственный проект.
Возьмите за основу понравившуюся идею и пошагово ищите пути решения маленьких задач. Все задачи старайтесь разделять на маленькие. Тогда и искать решение легче, и прогресс будет ощутимее.
В идеале вы должны создать собственный проект, используя вышеперечисленные технологии/инструменты. Проект дает очень большое преимущество перед собеседованием. Показывает не только реальные знания человека, но и его личные качества — чистоплотность, педантизм, настойчивость.
Интервью
Каждое интервью индивидуально. Сложно быть готовым к нему так, чтобы прийти и абсолютно удачно его пройти. Вас всегда могут спросить о чем-то, чего вы не знаете, и это нормально. Именно здесь вам и понадобится умение размышлять над технологиями, их целями и альтернативами.
Выделю определенные темы, на которые будет полезно обратить больше внимания:
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% шанс прохождения собеседования. Чем больше знаете, чем больше кода вы написали — тем больше у вас шансов. Это только советы, как их повысить. Работайте над собой, развивайте скиллы — и желаемое предложение обязательно достанется вам!
Запускай код прямо в браузере: лучшие онлайн-компиляторы для C++, PHP, Python, Java, C#, Go и не только
Не всегда есть доступ к любимой IDE или время на ее запуск. Но когда нужно быстро проверить какой-то простой функционал или воплотить новую идею, пригодится онлайн-компилятор.
«Меня унесло течением». Delivery Manager в Intellias теперь – межконтинентальная пловчиха, еще 5 лет назад она об этом и не думала
«Вокруг IT» — рубрика, в которой мы собираем все полезное для жизни айтишника, не касающееся его работы.
Сегодня о своем хобби рассказывает Людмила Костышена, Delivery Manager в Intellias, межконтинентальная пловчиха, участница разнообразных заплывов в Украине и за рубежом. Она делится своим опытом профессионального плавания и даст советы тем, кто хочет попробовать подобный спортивный опыт.
Intellias в Ужгороде: «Клиенты чаще хотят нанимать специалистов вне Украины из-за риска потери инженеров в связи с мобилизацией»
Живописный регион Закарпатье, славящийся своей природой, курортами, вином и приветливыми людьми, похоже, имеет хорошую возможность стать еще и немаленьким IT-хабом. Из-за полномасштабного вторжения рф регион приютил значительное количество айтишников. Уже создан Закарпатский IT-кластер, в Ужгороде открыли свои офисы одни из крупнейших IT-компаний — EPAM (читайте наш репортаж — здесь), SoftServe и Intellias.
Мы посетили новый ужгородский офис компании Intellias, которая много лет является одним из лучших IТ-работодателей по версии DOU. О новой локации, стратегии глобализации бизнеса, эвакуации, IT-кластере, образовательных проектах и жизни во время войны, читайте в нашем материале.
Хотите сообщить важную новость? Пишите в Telegram-бот
Главные события и полезные ссылки в нашем Telegram-канале