Pull to refresh
175.6
Яндекс Практикум
Помогаем людям расти

Переходим на Go: 16 материалов для самостоятельного изучения языка

Level of difficultyEasy
Reading time5 min
Views58K

Привет! Меня зовут Владислав Попов, я автор курса «Go-разработчик» Яндекс Практикума.

Когда-то я сам был студентом — хотел учиться Go, но такого курса в Практикуме не было, поступил на Python. Прошёл вводную часть — и тут стартовал желанный курс по Go. В тот же вечер оформил возврат и перепоступил. Попал в первый поток, прошёл его, и после сдачи итогового проекта мне предложили стать тестером курса «Продвинутый Go-разработчик».

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

За время работы с Go я понял, что сам язык не очень сложный и подходит даже в качестве первого, но нужно выучить синтаксис и погрузиться в некоторые особенности, которые отличают Go от других языков: например, интерфейсы и особенности встраивания. А ещё важно на старте хорошо знать Git и ориентироваться в работе SQL (причём любого).

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

1. SQL Tutorial от W3Schools

Go-разработчик работает с базами данных и должен знать SQL. Заполнить пробелы поможет этот туториал — в нём есть весь необходимый минимум знаний по теме (а где-то и максимум).

SQL Tutorial от W3 Schools →

2. Официальный тур по Go

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

Официальный тур по Go →

3. Бесплатный курс «Основы Go»

Бесплатный курс от Яндекс Практикума, который подготовит вас к работе на Go. Он помогает понять, как и что работает в языке, и даёт первую практику — к концу курса уже можно будет писать простые проекты: приложения командной строки, веб-серверы, REST API, микросервисы. Материал в нём не такой сжатый и краткий, как в туре, встречаются интересные конструкции — рассматриваются паттерны проектирования и многопоточности, работа с базой данных и JSON, профилирование, документирование своего API, кодогенерация, дженерики, статический анализ кода, gRPC. Хорошая база для дальнейшего продвижения.

Бесплатный курс «Основы Go» →

4. «Введение в программирование на Go», Калеб Докси

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

«Введение в программирование на Go», Калеб Докси →

5. «Язык программирования Go», Алан Донован и Брайан Керниган

Книга от мастодонтов — соавтора языка Алана Донована и Брайана Кернигана, соавтора известного руководства по C. Непростое руководство для тех, кто уже уверенно владеет другим языком. Подойдёт, если вы уверены в себе и хотите сразу перейти к сути.

«Язык программирования Go», Алан Донован и Брайан Керниган →

6. «Go в примерах», Марк МакГрэнаган

Учебник для тех, кто не любит много читать, а предпочитает сразу переходить к коду и уже потом разбираться, как он устроен.

«Go в примерах», Марк МакГрэнаган →

7. Эффективный Go

Дополнение к официальному туру по Go, переведённое на русский язык. Часто его используют для согласования кодстайла в компаниях. Поможет привыкнуть и понять философию языка.

Книга состоит из небольших глав, в каждой из которых описываются особенности Go — не от простого к сложному, а просто в формате перечисления фишек, по принципу «лучшие практики».

«Эффективный Go» →

«Эффективный Go» (на русском языке) →

8. Стандартная библиотека Go

Хорошей практикой для Go-разработчиков считается читать стандартную библиотеку языка — там всё очень подробно и классно комментируется. Умеешь читать стандартную библиотеку, значит, понимаешь, как развивался и создавался язык, глубже погружаешься в него и качественнее пишешь свои продукты.

Она огромная, и лучше не читать её полностью, а заглядывать время от времени. Например, не знаешь, как работает та или иная функция, — находишь и читаешь подробное описание.

Стандартная библиотека Go →

9. Go Cheat Sheet

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

Go Cheat Sheet →

10. Go go-to guide

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

Go go-to guide →

11. «Чистая архитектура и как её готовить», Михаил Непряхин

Чистая архитектура хороша тем, что разные составляющие кода в ней разделены: если что-то поменять в одном «слое», то в другом ничего не сломается. Такие системы легче масштабировать и совершенствовать. Чтобы понять, что такое чистая архитектура и как она работает, можно прочитать какую-нибудь книгу — но видео объясняет тему не хуже.

12. «Изучаем Golang. Интерфейсы», The Art of Development

В Go своеобразные интерфейсы, в которых может быть непросто разобраться — некоторые делают это спустя месяцы практики, хотя это необходимо. Хуже всего, что большинство книг раскрывают эту тему так, что становится ещё непонятнее. В видео суть интерфейсов в Go объясняется более простым языком.

13. «Go: десериализация JSON с неправильной типизацией, или как обходить ошибки разработчиков API», Юрий Плохов

Этот материал советуют все менторы Практикума. Он просто и сжато рассказывает про JSON и как с ним не напортачить, десериализовать без ошибок и так далее.

«Go: десериализация JSON с неправильной типизацией, или как обходить ошибки разработчиков API», Юрий Плохов →

14. «Программист из 80-х / История появления интернета и программирования в СССР / Всё о Go» — интервью с Романом Губаревым

Интервью с ведущим разработчиком Juno Романом Губаревым может понравиться людям, которые давно занимаются разработкой, привыкли к своему языку и хотят, но боятся что-то менять.

15. Podlodka #240 — Golang

Интервью с Алексеем Палажченко из Sidero Labs и подкаста GolangShow — мотивационное видео с объяснением, что такое Go и зачем он нужен, где востребован и почему стоит им заниматься.

16. «Гениальный Go-разработчик из Узбекистана Влад Тен — пишет код, читает рэп — Мы обречены #31»

Интересное интервью с Владом Теном, который был стендапером и ворвался в IT со скоростью ракеты, дойдя за пару лет до работы в Microsoft. Правда, сейчас он уже пишет на C#.


И ещё один вариант, который подойдёт тем, кто хочет учиться не самостоятельно, а с поддержкой менторов, код-ревью, спринтами и дедлайнами, — это наш курс «Go-разработчик». Студенты проходят теорию и тут же закрепляют её на рабочих задачах, создавая большой проект к концу обучения — навык для голосовой помощницы Алисы. 

Это главное, но далеко не всё, что может быть полезно для начинающего Go-разработчика, — если у вас есть свои варианты, поделитесь ими в комментариях. Удачи!

Tags:
Hubs:
Total votes 16: ↑12 and ↓4+11
Comments12

Articles

Information

Website
practicum.yandex.ru
Registered
Founded
Employees
101–200 employees
Location
Россия
Representative
Ира Ко