Онлайн-курсы
- Для быстрого погружения в Go рекомендуем прочитать статью «Дорожная карта Go-разработчика в 2023 году», которая поможет составить структурированный план обучения.
Онлайн-курсы – это отличная возможность изучить основы языка в интерактивной форме и понять, насколько он вам интересен. Они не требуют специальных знаний на старте, поэтому отлично подойдут для знакомства с программированием, в отличие от многотомных учебников и мануалов.
По традиции путь изучения Go начинается с прохождения Tour of Go – интерактивного самоучителя по основам языка от его создателей. Здесь собраны все необходимые знания для освоения синтаксиса Go, и даже немного продвинутых тем.
Особенностью курса является отсутствие видео-уроков: весь материал объясняется в кратких теоретических справках. Каждая тема снабжена конкретными примерами и поучительными задачами с автоматической проверкой. Они варьируются по степени сложности, но для их выполнения достаточно внимательного чтения теории.
![Первый урок Tour of Go](https://media.proglib.io/posts/2023/11/15/79e619c8d76e5f5b522b5907e7eeae61.png)
Стоит отметить, что весь туториал написан на английском языке, поэтому представляем список альтернативных курсов на русском:
- Программирование на Golang (Stepik). В этом курсе изучаются основы языка, а также продвинутые темы, такие как работа с файлами и json, создание и развертывание веб-сервера. Важное место уделено заданиям разного уровня сложности, которые позволяют лучше понять материал и закрепить его на практике.
- Go (Golang) – первое знакомство (Stepik). В курсе представлены основные концепции Go, достаточные для того, чтобы получить о нём базовое представление и понять, стоит ли изучать его на более глубоком уровне. Для успешного прохождения желательно иметь хотя бы минимальное представление о программировании.
- Курс по основам Go (Code Basics). На этом курсе из 35 уроков рассматриваются базовые конструкции языка, коллекции, строки, функции и методы, конкурентное программирование. Теория подкрепляется практическими задачами с автоматической проверкой и решениями.
YouTube-каналы
![YouTube-каналы по Go: туториалы, подкасты, разбор внутреннего устройства языка](https://media.proglib.io/posts/2023/11/28/20d52d6b566667f88b121ebad608caf2.jpg)
Много полезной информации можно найти на YouTube каналах. Туториалы, подкасты, разбор внутреннего устройства языка – все это собрано здесь.
Представляем список наиболее популярных русскоязычных каналов:
- Николай Тузов — Golang. Николай в доступной форме объясняет основные концепции Go и его внутреннее устройство. На канале часто проводятся подкасты с экспертными Go-разработчиками, в которых обсуждаются важные обновления, проводятся code review проектов, затрагиваются темы профессионального роста, скорости разработки, и другие.
- Maksim Zhashkevych. На канале вы найдете много полезных уроков по backend-разработке на Go. Программирование веб-сервисов, работа с базами данных и API, CI / CD, тестирование – это лишь малый список тем, которые автор затрагивает в своих видео.
- The Art of Development. Автор канала записал полноценный курс из 20 видео по основам программирования на Go, в котором на понятных примерах объяснил концепции языка и показал, как разработать go приложение с развертыванием в docker.
Сайты с теорией
![Сайты с теорией по Go](https://media.proglib.io/posts/2023/11/28/27999238348eec4c9bc14992c5b78604.jpg)
- Документация + Блог. Документация языка – самый авторитетный и исчерпывающий источник информации, к которому нужно обращаться в первую очередь. Здесь можно найти практические уроки по разработке веб-сервиса, рекомендации по эффективному написанию кода на Go, исходный код языка и многое другое.
- Введение в программирование на Go. На этом сайте с первого урока делается упор на разбор и написание кода, что позволяет увидеть, как теория работает на практических примерах. Помимо стандартных тем, рассматриваются особенности стандартной библиотеки, тестирование кода и рекомендации по дальнейшему изучению языка.
- Go в примерах. Сайт содержит конкретные примеры применения синтаксиса языка и затрагивает как базовые, так и продвинутые темы, такие как процессы, сигналы и хеширование.
- The Golang Handbook. Структурированное пособие на английском языке, которое сопровождается короткими видео с доступным объяснением основных концепций. Отлично подойдет тем, кто хочет в кратчайшие сроки разобраться с синтаксисом языка и начать писать собственные программы.
Сайты с задачами
![Сайты с задачами по Go](https://media.proglib.io/posts/2023/11/28/16c08e89491954debd00aa5a572ba41b.jpg)
Решение задач – это отличный способ развить мышление, научиться анализировать код и подготовиться к техническим интервью. Можно ставить себе задачи самостоятельно, например «написать алгоритм сортировки подсчетом», а можно воспользоваться уже существующими сайтами с готовыми условиями и тестирующей системой.
Вот наиболее подходящие для новичков ресурсы с обширной базой задач и развитым сообществом:
- Codewars. Англоязычная площадка для решения задач на популярных языках программирования, включая Go. Есть задачи как на отработку синтаксических конструкций, так и на более сложные алгоритмические темы.
- Leetcode. Классический ресурс для подготовки к техническим собеседованиям. Большинство задач взяты с реальных coding-интервью и разделены на три уровня сложности: easy, medium и hard. Отлично подойдет для отработки алгоритмов и структур данных на Go.
- Exercism. Сайт содержит интерактивные пособия по изучению популярных языков программирования, включая Go. Теория преподается последовательно, а задания заточены под применение базовых конструкций и проверяют умение писать простейшие программы.
- Codeforces. Популярная во всем мире площадка для участия в онлайн-соревнованиях по спортивному программированию. Также здесь можно решать задачи из открытого архива, участвовать в виртуальных соревнованиях и делиться знаниями в блоге. Отлично подходит для подготовки к алгоритмическим собеседованиям.
Книги и самоучители
Книги по программированию, как правило, содержат всю необходимую теорию для погружения в язык и его внутреннее устройство. Чтобы читателям не приходилось тратить время на выбор, представляем подборку наиболее подходящих трудов для изучения Go с нуля:
«Язык программирования Go», Алан Донован, Брайан Керниган.
![Язык программирования Go](https://media.proglib.io/posts/2023/11/15/d88f4d4b45fbf151d210b97c74e1a529.jpg)
Традиционно новичкам рекомендуют начать изучение Go с этой монументальной книги. Она представляет обширный обзор основных концепций и особенностей языка, начиная с основ и до более сложных тем. В книге отдельное внимание уделено примерам кода и задачам, чтобы помочь читателям углубить понимание и научиться применять полученные знания на практике. Это поистине фундаментальный труд для изучения Go от его создателей, однако для быстрого и эффективного старта лучше подойдут перечисленные ниже книги.
«Head First. Изучаем Go», Джей Макгаврен
![Head First. Изучаем Go](https://media.proglib.io/posts/2023/11/15/d33afcac31f60d2b789b1a06da8b518f.jpg)
Издания серии Head First известны своей оригинальной подачей материала с использованием наглядных иллюстраций, карикатур и интересных заданий, которые помогают лучше запомнить пройденные темы. Книга позволяет в быстром темпе освоить классические приемы в разработке на Go и на практических примерах познакомиться с его особенностями.
«Язык Go для начинающих», Максим Жашкевич
![Язык Go для начинающих](https://media.proglib.io/posts/2023/11/15/06ea856cbdf697199419a08615f86b01.jpg)
Автор доступным языком объясняет синтаксис Go и фундаментальные концепции разработки. Отдельное внимание уделено применению Go в разработке веб-приложений. Для закрепления теории в заключительной части книги содержится туториал по разработке полноценного REST API.
«Программирование на языке Go», Марк Саммерфильд
![Программирование на языке Go](https://media.proglib.io/posts/2023/11/15/fb313b3da1bf5e3a9f03ae97fef0e9b2.jpg)
По словам автора, эта книга представляет собой одновременно и учебник, и справочник, в котором содержатся все необходимые знания для освоения Go и создания на нём высокопроизводительных программ. Отличительной чертой этого пособия является то, что здесь с самого нуля в полном объеме объясняются аспекты конкурентного программирования и ООП.
Подведём итоги
В этом уроке мы рассмотрели полезные материалы для самостоятельного изучения Go и отобрали из них самые подходящие для новичков.
В следующем уроке разберем первую программу на Go, настроим модули и скомпилируем исходный код.
Содержание самоучителя
- Особенности и сфера применения Go, установка, настройка
- Ресурсы для изучения Go с нуля
- Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
- Переменные. Типы данных и их преобразования. Основные операторы
- Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
- Функции и аргументы. Области видимости. Рекурсия. Defer
- Массивы и слайсы. Append и сopy. Пакет slices
- Строки, руны, байты. Пакет strings. Хеш-таблица (map)
- Структуры и методы. Интерфейсы. Указатели. Основы ООП
- Наследование, абстракция, полиморфизм, инкапсуляция
- Обработка ошибок. Паника. Восстановление. Логирование
- Обобщенное программирование. Дженерики
- Работа с датой и временем. Пакет time
- Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
Комментарии