Отзывы о школе «GOLANG NINJA»
Больше всего в этом курсе мне понравился подход авторов. Он очень обстоятельный и продуманный, что делает процесс обучения не только эффективным, но и увлекательным. Я узнал много нового как по Go, так и по разным инструментам и технологиям. Например, я научился настраивать логгер и освоил другие полезные практики.
Особенно запомнился Outbox Pattern. До курса я с ним не сталкивался, и на первый взгляд может показаться, что он не нужен. Однако, в реальности он значительно повышает надёжность системы, хотя и размазывает часть логики по приложению.
Сложности и инфраструктура
На второй неделе было много возни с инфраструктурой, особенно с Sentry. Хотя в Avito его используют, но в модных и молодёжных проектах, как я понимаю, уже предпочитают другие системы (возможно, я ошибаюсь). В любом случае, Sentry показался мне довольно сложным инструментом, и это сделало вторую неделю самой скучной и трудоёмкой.
Самые интересные и сложные недели
Самыми интересными были 4-я и 5-я недели. В этих модулях было много нового, например, работа с Outbox, взаимодействие с AFC и т.д. Хотя они оказались и самыми сложными, особенно 5-я неделя, на которой пришлось писать сложный код с использованием Kafka и WebSocket.
Больше всего времени я потратил на конкурентный код в Outbox (не знал, как правильно реализовать блокировки) и на работу с Kafka и WebSocket.
Нагрузка и интенсивность
Если оценивать нагрузку на среднестатистического человека, я бы умножал её минимум на 2, а в реальности, наверное, на 3-4. Часто планируемые 4 часа работы превращались в 12-16 часов. Тем не менее, это помогло мне глубже погрузиться в материал и получить больше знаний.
Правила прохождения
Правила прохождения курса очень помогли, особенно в части избегания лишних вопросов в чате из-за невнимательности. Это позволило мне более эффективно управлять своим временем и сосредоточиться на решении задач.
Поддержка и взаимодействие
— Code Review: Просто супер. Всё по делу и быстро. Я получил много ценных замечаний и рекомендаций.
— Ответы на вопросы: Скорость реагирования меня устроила. Конечно, когда ты глубоко погружен в задачу, хочется, чтобы тебе ответили как можно быстрее, но все мы люди и должны отдыхать. Авторы тоже 🙂
— Вебинары: Вебинары — отличный способ узнать много нового из первых уст и просто пообщаться на темы разработки. Это позволяет получить знания и одновременно наладить общение в сообществе.
Мой уровень подготовки
Я пришел на проект в августе 2022 года с грейдом примерно junior+ как fullstack-разработчик на Node.js, а сейчас уже несколько месяцев работаю в роли лида. До уверенного мидла мне не хватает алгоритмических знаний. Поскольку большую часть кода я пишу не на Go, пришлось потратить больше времени на освоение материала.
Рекомендации и итоги
Порекомендовал бы курс тем, у кого есть время и мотивация стать хорошим разработчиком. Уровень подготовки должен быть middle и выше. Менее опытным тоже можно попробовать, но нужно быть готовыми к сложностям.
Авторы курса попали в мои ожидания на 99.99%.
Сравнение с другими курсами
Я проходил курс по Django в 2021 году, и по сравнению с ним, этот курс гораздо сложнее в плане технологий, требуемых знаний и результата. Однако он также лучше организован и продуман. Результат, полученный в этом курсе, на порядок круче.
Ожидания от других курсов
Я с удовольствием рассмотрю другие курсы от этих авторов. Хоть они и не очень дешевые в абсолютных значениях, но они точно стоят своих денег.»
Что мне понравилось:
— Возможность тестирования решений: Вы можете запускать свои решения локально, используя готовые тесты из GitHub, что очень удобно и позволяет оттачивать навыки.
— Интересная теория: Теории много, и порой нужно тщательно вчитываться, чтобы понять все нюансы, так как информация очень интересная. Однако, она не «»душная»» и разбавлена уместными мемами, что делает процесс обучения более увлекательным.
— Разнообразие тем и задач: Курс охватывает широкий спектр тем. Отдельный респект за задачи с AST-деревом и Errorf «»на стероидах»» — это действительно было интересно.
— Постоянное обновление материала: Это значит, что информация всегда актуальна, и вы учитесь современным практикам программирования.
Если кратко резюмировать: авторы предлагают вам Ferrari по цене жигулей. Рекомендую!
Основные преимущества курса:
— Лаконичное изложение материала: Информация подаётся чётко и по делу, что облегчает её восприятие.
— Полезные комментарии: К каждому уроку прилагаются комментарии, которые помогают лучше понять материал.
— Интересные задачи: Задачи не только сложные, но и интересные, позволяющие применять знания на практике.
— Открытые автотесты: Автотесты помогают быстро и эффективно проверять собственные решения.
— Авторские решения: Наличие авторских решений позволяет взглянуть на задачи с другой стороны и учиться на лучших примерах.
— Рекомендации по best practices: Курс предоставляет советы о том, как лучше организовывать код и использовать возможности Go.
— Мемы и юмор: Весёлые картинки делают процесс обучения более лёгким и увлекательным.
Личные впечатления:
Для меня ассемблерные вставки оказались сложными из-за минимального опыта работы с ассемблером. Однако это не мешает прохождению курса, так как основное внимание уделяется практическим задачам на Go.
Я проходил курс в течение нескольких месяцев, выполняя задания на 100%, но при желании можно завершить его быстрее.
Вывод: Курс однозначно стоит вложенных средств и времени. Он позволяет значительно углубить знания о Go и научиться использовать язык более эффективно.
P.S. Я был бы заинтересован в будущих курсах, таких как Advanced Go Programming и Advanced Go Concurrency, особенно если они будут предоставляться с гибким графиком обучения и скидками для постоянных студентов.
Включить программу чтения с экрана
Хотя курс сосредоточен на обработке ошибок, он затрагивает все основные аспекты программирования на Go. Большое внимание уделяется стилю кода, использованию линтеров и многим полезным библиотекам, что помогает писать более чистый и поддерживаемый код.
Этот курс идеально подходит для тех, кто уже знаком с Go и имеет некоторый опыт программирования. Для новичков в программировании он может оказаться слишком сложным, поэтому им лучше начать с более простых курсов.
В начале курса всё было понятно и доступно, но потом, в одном из разделов, автор сразу начал объяснять всё на примере готового проекта. Я надеялся, что он покажет, как создать этот проект с нуля, но, к сожалению, этого не произошло.
Курс я возвращать не стал, так как он, возможно, пригодится в будущем, когда нужно будет разобраться в какой-то конкретной теме Go, а не в языке в целом.
Верю, что преподаватели будут на связи и окажут мне необходимую поддержку в процессе обучения.
Особо хочу отметить домашние задания. Они очень интересные и помогают закрепить полученные знания.
Пока рано делать какие-то выводы, но начало курса меня радует.
Буду следить за обновлениями и делиться своими впечатлениями дальше.
Знания, полученные в школе, я уже успешно применяю в своей работе.
Курс помог мне разобраться в тонкостях языка, освоить необходимые инструменты и подходы к разработке.
Я рекомендую Golang Ninja всем, кто хочет углубить свои знания Go и выйти на новый уровень.
Я почерпнул для себя массу фишечек не только по теме обработки ошибок, но и по общим аспектам языка.
Теория дается очень подробно, а задания настолько разнообразны, что не дают заскучать.
Благодаря школе я узнал о разных подходах к обработке ошибок в Go, их преимуществах и недостатках, и уже применяю эти знания в своих рабочих проектах.
Всем, кто хочет прокачать свои навыки Go, я рекомендую Golang Ninja!
Школа не подойдет новичкам, но опытным разработчикам он поможет выйти на новый уровень.
Задания могут показаться сложными, но не стоит отчаиваться.
Верьте в себя, упорно трудитесь, и вы обязательно добьетесь успеха!
Мне очень понравилось, что курс охватывает всю тему обработки ошибок целиком: от базовых концепций до перспективных направлений развития.
Стоит отметить, что Golang Ninja – это не для новичков.
Курсы рассчитаны на опытных разработчиков, которые хотят выйти на новый уровень в своей профессии.
Курсы будут полезны даже опытным разработчикам.
Несмотря на то, что я программирую на Go уже более трех лет, я узнал много нового и интересного.
Материал преподносится доступно и структурировано, а задания заставляют хорошенько поразмыслить.
Сенсеи из «GOLANG NINJA» предлагают тебе вступить в клан истинных мастеров Golang. Проведут за ручку по пути воина и помогут погрузиться в востребованный язык программирования вместе с практикующими экспертами (тех. лидами и архитекторами).
«GOLANG NINJA» не составляет конкуренцию онлайн-школам, цель которых растянуть курс до невозможности (разбавляя его «водой» из смежных к разработке тем) или, наоборот, ужать его, промчавшись по базовым знаниям, лишь бы поскорее открыть новый учебный поток.
Наоборот, цель этой школы – выдача узконаправленных знаний с упором на практические задачи и примеры из реальной жизни, то есть приведение в полный порядок уже существующих у вас базовых навыков Golang разработки.
Достоинства и недостатки
— Выкладываться по полной. Это и достоинство, и недостаток курса в одном флаконе.
— Практикоориентированность. Курс сфокусирован на практике. Теории минимум, но она есть. Это тоже одновременно и достоинство, и недостаток, в зависимости от вашего уровня. Однако ссылки на дополнительный материал спасают от необходимости «рыть по всем интернетам».
— Рамки проекта. На первых 6 модулях у проекта есть чёткие рамки, на седьмом позволяется «улететь в космос» на своём космическом корабле . Это тоже и достоинство, и недостаток. Например, я обычно не использую ORM в работе на Go (это одна из рамок курса), чему ещё научился на Otus. Но здесь его использование оправдано, и я согласился с выбором авторов. Позже я попросил помощи у ребят, чтобы перевести то, что изучили, в обычную стандартную библиотеку (спасибо Дмитрию за подсказку).
Достоинства
— Тесты как квесты. Тесты авторов были для меня как квесты: понял тест – решил квест. У авторов есть дар писать тесты. Есть чему поучиться и позавидовать (лучше учиться, чем завидовать).
— Мемы. Мемы в тему, как обычно, на высшем уровне. Они поддерживают настрой и помогают не унывать, когда процесс буксует. Те, кто проходил курсы по ошибкам и панике, понимают, о чём я.
— Практическая применимость. Все задачи жизненные и сразу применимы в работе.
Процесс и советы
— Уровень подготовки. Сложность на уровне. Разработчик должен быть подготовленным. Докер на базовом уровне, go text/template, обработка ошибок, defer, понимание как устроен test.Suite. Если что-то из этого вам не знакомо, закладывайте время на изучение. Важно уметь дебажить свой код и код в тестах. Почитайте заранее про встраиваемые структуры в Go. Если вы не используете gomock, ознакомьтесь с ним.
— Теория и практика. В курсе нет теории Go, только практика. Если с теорией всё хорошо, то будет просто трудно, а не невозможно.
— Внимательность. Внимательно относитесь к каждой фразе и слову в тексте авторов. Знаете, кто скрывается в деталях. Если упустите детали, будет не просто сложно, а очень сложно.
— Подготовка. Если вы не синьёр с многолетним опытом, не ходите на этот курс без прохождения курсов авторов про ошибки и панику. На тех курсах вы поймёте стиль в менее жёстких временных рамках, научитесь писать красивый код заранее и получите удовольствие, а не разочарование и ощущение загнанной лошади.
— Время. Умножайте время на три, чтобы не только пописать, но и вникнуть в тему, почитать и разобраться с багами. (Хотя у меня иногда было и умножить на четыре.)
— Предревью. Комментарии по часто встречаемым ошибкам в конце модуля помогают осознать, что ты не один так написал, и исправиться до ревью. За это спасибо авторам.
— Подсказки. Надеюсь, их перенесут на новую платформу. Они экономят ценное время, не давая «рыть не в ту степь».
— Не откладывайте. Модули 2 и 3 очень объёмные. Лучше начинать их делать сразу, не откладывая до пятницы. Остальные модули норм, просто трудные.
— Шестой модуль. Шестой модуль самый объёмный, так как седьмой я ещё не осилил. Он дал усталость к концу курса.
— Время на курс. Подумайте заранее, где взять время на курс (отпуск, договорённости с руководством). Иначе академ будет «дышать в спину».
— Авторские решения. Не пренебрегайте решениями авторов (я грешил этим вначале). Там можно найти подсказки, как сделать следующее быстро и просто.
— Шестой модуль. Отдельный респект за шестой модуль. Без него я бы так и не понял, что до сих пор меня «водили за ручку». Модуль требует полностью самостоятельного прохождения всего материала. Позволяет закрыть белые пятна, не замеченные в предыдущих модулях. Убедился, каково с нуля писать и чтобы получился готовый продукт. Возможно, модуль показался затянутым и нудным, но точно полезным.
Результаты
— Настройка проекта. Получил навыки настройки проекта.
— Запуск сервисов. Узнал, как красиво запускать сервисы в main .
— Архитектура и паттерны. Архитектурные решения и паттерны из курса буду использовать в проектах.
— Работа с БД. Сделал выводы про ORM и надстройки над БД, и даже получил просветление на вебинаре.
— Интеграция Kafka. Попробовал красивую интеграцию Kafka в проекте.
— Генерация Swagger. Увидел генерацию Swagger в боевой код.
— E2E и интеграционные тесты. Увидел и понял e2e и интеграционные тесты на практике.
— Авторизации в тестах. Пробросил необходимые авторизации в тесты.
— Кодогенерация. Узнал, с чего начать кодогенерацию и как это помогает в работе.
— Асинхронность. Пощупал асинхронщину в разных задачах.
— Зашифрованная передача данных. «Приоткрыл дверь» зашифрованной передачи данных и доверия к информации.
— Тестирование кода. Поймал пару кейсов, где тесты прошли, но мой код был неправильным (ревью помогло это отловить). Один раз получил мастер-класс от Антона по отлову багов.
— Настройка VSCode. Настроил свой VSCode для запуска интеграционных тестов по кнопке (раньше делал это из командной строки).
Благодарность авторам
Проходя курс, я вновь увидел, насколько он качественный и продуманный, сколько в него вложено энергии, знаний и сил. Авторы снова оправдали моё доверие и создали качественный продукт. Заканчиваю общеизвестной фразой: «Аффтар, пиши исчо!»