Материалы для изучения GolangОбещал написать список ресурсов которые использовал во время своего изучения языка Golang, делюсь:Курсы на StepikСтепик это основной источник по которому я изучал базовый синтаксис, прошел на 100% два курса, один совсем легкий, другой уже гораздо лучше. Основная теория подана хорошо, но до момента где начинается многопоточность, там совсем мало материала для этой темы. Из плюсов - сразу практикуешь пройденное, из минусов - бывают глуповатые задачки и в целом платформа степика не идеальна. Ну и самое главное - курсы бесплатные.https://stepik.org/course/100208/https://stepik.org/course/54403/Их вполне хватило что бы перейти к следующему этапу.CodewarsДля закрепления базового синтаксиса использовал решение задачек 8-7kyu на кодварсе. Задачки такого легкого уровня потому что цель на этом этапе не заниматься раздумыванием над тем как решить задачу и следить за алгоритмической сложностью, а просто закрепить синтаксис. Решал до уровня когда я перестаю задумываться над тем как там пишутся циклы, как объявляются слайсы, как инициализируются мапы и так далее. Суммарно нарешал около 60-70 задач. Так как задачи легкие, их за час можно несколько штук нарешать.https://www.codewars.com/LeetcodeПосле этого я решил что лучше будет тренироваться на алгоритмических задачах, тем более решать 8-7kyu стало скучно. Я решил 10 задач easy уровня, но после этого понял что сейчас я занимаюсь тренировкой и изучением алгоритмов, а не изучаю Golang. Это конечно тоже имеет смысл изучать, но ближе к поиску работы. Еще ловил себя на мысли что занимаюсь решением задач на литкоде потому что это уже понятно как делать, так как я делал это уже, в отличие от прикладной разработки на Go. Поэтому я бы рекомендовал пропустить этот этап и сразу после закрепления синтаксиса идти писать что-то прикладное.https://leetcode.com/Пет проектОдин мой товарищ с которым я теперь записываю подкасты советовал начать делать какой-нибудь пет-проект. Первое, что мне пришло в голову - писать какой-нибудь сервер с тудулистом. Но так как на Go часто пишут что-то связанное с мониторингом - мне посоветовали сразу писать что-то подобное, в итоге это вылилось в разработку прокси-сервера с prometehus и grafana. По моему это был хороший выбор, после этого я показывал проект по запросу собеседующих и проходил дальше. Единственное, что я бы поменял сейчас - я бы все таки добавил в этот проект какую нибудь базу данных так же для практики работы с БД. Важно тут получать ревью от действующих Go разработчиков, например в профильных чатах.https://github.com/MaksimPozharskiy/proxy-goПодготовка к собеседованиямПосле этого начал готовится к собеседованиям, кроме дефолтного способа подготовки (смотреть интервью/решать задачки/учить теорию) отметил бы что чем больше почитаете про планировщик Go - тем лучше, это хорошая тема где можно козырнуть глубиной знаний, при этом потратив пару дополнительных дней на изучение. Проблема в том что одной статьи где описано всё сразу - мне найти не удалось, поэтому набирал по кускам из нескольких источников и записывал в конспект:https://habr.com/ru/articles/478168/https://habr.com/ru/articles/489862/https://habr.com/ru/articles/743266/https://medium.com/@sanilkhurana7/understanding-the-go-scheduler-and-looking-at-how-it-works-e431a6daacfhttps://medium.com/@hatronix/inside-the-go-scheduler-a-step-by-step-look-at-goroutine-management-1a8cbe9d5dbdПочему в списке нет A Tour of Go?Я знаю что большинство гошников когда спросят с чего начать назовут этот ресурс, это интерактивный учебник в котором вроде как можно быстро пролистать основные темы и в короткий срок освоить язык. Честно говоря, мне он не понравился. Я приучен к обучению в формате как было в Яндекс.Практикуме - проходим кусок темы, делаем несколько задач на эту тему. По моему опыту конкретно на мне работает именно такой формат, просто почитать про синтаксис и идти пилить сервера для меня не очень работает. Но так как авторитетные Go разработчики советуют его - думаю стоит его отметить, может вам он понравится больше.https://go.dev/tour/welcome/1
Оставить комментарий/отзыв