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

Kate

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

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

82d4801acc5e1c0c2afcc3dee9b39a52.png

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

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

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

1. SQL Tutorial от W3Schools​

c9ce694ab53ba9104085f5d3eb339ea5.png

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

SQL Tutorial от W3 Schools →

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

23cf3077f297d3bc3a1bbd49ae2aa2c5.png

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

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

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

08d085cc12631a122a451250b3ca7106.png

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

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

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

4fab9a651569caf2d85f6510b3351602.png

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

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

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

ca8d567c2742c00700855020d04d8f35.png

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

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

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

95c7f6539d912d9c6edf54ca6945e6af.png

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

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

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

f5952f08b6c8a08d30842ca51f585da7.png

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

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

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

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

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

fd72b025843d8ee40c613ab391125b4e.png

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

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

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

9. Go Cheat Sheet​

fc8d9facc1441a9d1b72c2600b2d334f.png

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

Go Cheat Sheet →

10. Go go-to guide​

c32135455fb54a330ba4725a1af798c8.png

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

Go go-to guide →

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

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

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

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


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

64ed39f85230f66b104e6d475576e1c8.png

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

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

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

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


15. Podlodka #240 — Golang​

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


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

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



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

 
Сверху