fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Топ-3 ресурсов для изучения языка GoLang в 2021 году

Как выучить golang

Топ-3 ресурсов для изучения языка GoLang в 2021 году

6 минут чтения Обновлено: 15 января 2021 г.

Зачем изучать Go

Я знаю, что немного опоздал, ведь Go уже более 10 лет, но основная причина, по которой я изучаю Go, заключается в том, что это язык, используемый здесь, на Earthly.

Почему вы должны изучать Go? Главная причина в том, что мир облаков, похоже, работает на Go. Kubernetes, Docker, CockroachDB, Prometheus, etcd, Traefik, Istio, InfluxDB и многие другие написаны на Go.

Для кого этот список

Этот список предназначен для опытных разработчиков, которые хотят изучить Go. Я использую этот список для изучения.

Я работаю разработчиком уже более десяти лет и за это время выучил множество языков. Это то, что мне действительно нравится. Если вы изучаете go так же, как и я, вот 3 лучших ресурса, которые я нашел в 2021 году для его изучения.

Этот список короче, чем я ожидал, поскольку он составлен на основе Scala. Я уверен, что часть успеха Go связана с этой простотой.

#1 Экскурсия по Go

“Честно говоря, у меня был опыт работы на C, поэтому я просто просматривал различные учебники вроде https://tour.golang.org/list”.

– Алекс Кутюр-Бейл

Первый ресурс, который мы рекомендуем, – это Go Tour. Он называется “A Tour of Go” и представляет собой интерактивное упражнение, которое поможет вам изучить основные возможности Go. Оно включает в себя несколько упражнений, хотя, на мой вкус, их недостаточно.

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

#2 Go на примере

“Я обнаружил, что посещение gobyexample.com, когда мне нужны практические примеры, очень помогает”, – Кори Ларсон.

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

В любом случае, написание и выполнение некоторого реального кода – отличный способ освоить язык. При этом Go by Example является отличным справочником. Лично я уже давно не писал циклы for в стиле C и не уверен, использовал ли я раньше ключевое слово continue. Приведенные рядом примеры действительно помогли закрепить знания.

#3 Эффективный Go

Следующим идет Effective Go. Этот документ написан авторами языка и объясняет многие идиомы языка. Он плотный, но очень информативный. Если вы используете язык достаточно долго, синтаксис и семантика становятся второй натурой, но я еще не дошел до этого, и для меня очень полезно понять причины, стоящие за некоторыми функциями. Эта предыстория дает мне крючок, который помогает укрепить мое понимание.

Вот пример. Когда я просматривал “Тур”, я был удивлен появлением запятых. Все примеры были лишены точек с запятой, а тут они вдруг появились в циклах for и больше нигде.

Effective Go объясняет, что, как и в JavaScript, лексер Go автоматически вставляет точки с запятой, используя простое правило.

если новая строка идет после лексемы, которая может завершать высказывание, вставьте точку с запятой – Effective Go

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

Это лишь один пример того, что я узнал, прочитав этот документ. Для человека, который является опытным программистом, но новичком в Go, Effective Go – это сокровищница знаний.

Начните кодировать

Если на данный момент вы еще не начали создавать что-то на этом языке, то, вероятно, вам стоит это сделать, но сначала обязательно прочитайте статью How To Write Go Code, чтобы узнать, как организовать свои проекты и вызывать компилятор.

Бонусные ресурсы

Когда я искал рекомендации по обучению у своих коллег и на reddit, было много замечательных ссылок. Вот некоторые из них в моем списке будущих уроков.

Бонус №1 Go – Полное руководство для разработчиков

“[Go – The Complete Developers Guide] – это очень доступное и солидное введение в Golang”. – Эрик Валли

Я очень люблю смотреть, как люди работают. Видеть, как люди взаимодействуют со своими текстовыми редакторами, как они работают с компилятором и думают над решением проблем. Если у вас есть кто-то, с кем можно работать в паре, это отличный способ. Если у вас нет такой возможности, то видеокурсы – отличный вариант.

Курс Go – The Complete Developers Guide написан Стивеном Грайдером и охватывает все, начиная с настройки VS Code и заканчивая каналами и горутинами. Я не проходил этот курс, но я поклонник Стивена.

Курсы по Go от Тодда Маклеода также очень рекомендуются людьми в Интернете.

Немного об Udemy

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

Курс Стивена Грайдера находится в моем списке, потому что в прошлом я проходил курс Стивена по Docker и Kubernetes, и он мне понравился. Мне нравится его подход к обучению, который заключается в том, что вы набираете и выполняете код по ходу дела.

Бонус №2: Распределенные сервисы с помощью Go

“Для меня основным стимулом для изучения go было то, что он был похож на Erlang в отношении goroutines / message-passing concurrency model, но без недостатков в производительности”. Влад А. Ионеску

Все, о чем говорилось до сих пор, относится к категории “для начинающих” и “введение в язык”. Но в самом начале я упомянул, что мой интерес к Go связан со всеми замечательными облачными и распределенными вычислениями, происходящими в Go. Именно это и заинтересовало меня в книге “Распределенные сервисы с Go” Трэвиса Джеффери.

“Go стал самым популярным языком для построения распределенных сервисов, о чем свидетельствуют такие проекты, как Docker, etcd, Vault, CockroachDB, Prometheus и Kubernetes. Однако, несмотря на количество таких известных проектов, нет ни одного ресурса, который научил бы вас, почему и как вы можете расширить эти проекты или создать свои собственные.” – Распределенные сервисы с Go

На момент написания статьи книга находится только в бета-версии, и я прочитал только бесплатную 1-ю главу, но, похоже, это именно та книга, которая мне нужна.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *