Выберите нужное направление или школу
Курс по обработке ошибок в Go оказался качественным и углублённым. После получения базовых знаний по Go и прохождения вводных курсов, я понял, что обработка ошибок – одна из самых важных тем в языке. Именно поэтому я искал способ улучшить свои навыки в этом аспекте. К счастью, курс превзошёл мои ожидания и значительно помог.
Теперь подробнее:
- изложение в курсе лаконичное и по делу, без лишней воды. Теория быстро переходит к примерам с кодом, которые подробно разбираются;
- практические упражнения хорошо сбалансированы по сложности – они не слишком простые, но и не чрезмерно сложные. Есть два действительно трудных задания, но они стоят того, чтобы их выполнить. Эти упражнения позволяют закрепить обсуждаемые концепции и наработать практические приёмы программирования на Go. В курсе также активно затрагиваются такие важные аспекты, как AST, тестирование и concurrency;
- весь код примеров, заготовок упражнений и автотестов доступен в репозитории к курсу, что позволяет быстро приступать к написанию собственного кода и его тестированию на локальной машине перед отправкой на проверку;
- автотесты к упражнениям проработаны и их код можно изучать, чтобы узнать что-то новое;
- после выполнения каждого упражнения можно сравнить своё решение с решением авторов, что помогает выявить недочёты;
- вторая глава, посвящённая концепции ошибок в Си, оказалась очень полезной, давая хорошее понимание истоков;
- глава с лучшими практиками ценна тем, что представляет собой набор проверенных рекомендаций, которые можно использовать в своих проектах как руководство по best practices.
Прохождение курса с выполнением всех заданий заняло у меня ровно месяц.
Надеюсь, что курс будет обновляться и дополняться авторами по мере выхода новых версий Go. Например, с появлением дженериков, монадийный стиль работы с ошибками может стать более интересным и перспективным. Было бы здорово увидеть расширение этого раздела в курсе.
Я проходила курс три с лишним недели. Мой уровень пока что не слишком продвинутый, как раз осваиваю Go. Местами было сложно, и мне приходилось обращаться к авторам за помощью, но они быстро помогали найти правильное направление. Сначала действительно было тяжеловато, особенно в первом модуле, где есть часть о Си. Затем начинается Go, и становится значительно интереснее. Всё изложено подробно, много практических задач. Есть решения от авторов, что позволяет сравнить с собственными.
Модуль "Работа с ошибками в concurrency коде" оказался наиболее увлекательным, хотя до модуля надо ещё дойти. Мне также понравилось, что в конце каждого урока есть огромное количество ссылок на литературу. В курсе много упоминаний о других курсах авторов, хотя они пока не готовы. Но ничего, подождём.
Для меня, новичка, курс оказался очень полезным. Он не только о работе с ошибками в Golang, но затрагивает множество смежных тем: конкурентность, тестирование, лучшие практики разработки на Go. Всё это переплетено, и после окончания курса я точно лучше поняла философию Go. Очень понравилось. Я купила курс по промокоду, и он однозначно окупился.
Ответить
0 комментариев
Опыт оказался интересным, похожим на «раскраску для разработчика»: основные линии уже очерчены, а детали и цвета заполняет сам ученик.
Особенно хотелось бы выделить такие особенности:
- комплексный подход к созданию сервиса – от проектирования до организации тестирования;
- профессиональные методы программирования на Go, подтверждённые временем и опытом (именно за этим и пришел);
- интересные фишечки, которые можно использовать в своих проектах (например, библиотека для опциональных аргументов функции или генерация клиентов по спецификациям для e2e тестов);
- живое взаимодействие с сенсеями и уютная атмосфера на курсе и в чатике.
КУЧА КЛАССНЫХ МЕМЧИКОВ.
Чего всё-таки не хватило:
- тестирования нагрузки и дальнейшей оптимизации сервиса/инфраструктуры на основе - результатов (как это было с оптимизацией PSQL запросов);
- законченной второй части, чтобы сразу пройти инфраструктурный трек;
- некоторого теоретического материала по темам (но признаю, что это не цель курса).
TLDR; все здорово, автор, продолжай в том же духе!
Ответить
0 комментариев
Создалось впечатление, что я работал под руководством настоящего мастера, получив множество новых знаний и опыта. Именно за этим и пришёл.
На курс я пришёл с восьмилетним опытом программирования на PHP, а также с курсами по Go от OTUS и по «Искусству работы с ошибками в Go» от тех же авторов.
Знания о работе с ошибками оказались очень полезными, так что рекомендую изучить эту тему перед началом данного курса.
По времени курс весьма объёмный. Я занимался по 2-3 часа по вечерам в будни и по 5-6 часов в субботу.
Рекомендую этот курс всем, кто хочет получить практический опыт в написании проектов на Go и познакомиться с множеством различных инструментов и техник.
Ответить
0 комментариев
Если после изучения теоретического материала у меня возникали вопросы или что-то было непонятно, мне не приходилось обращаться в Google или к сенсеям. Я просто начинал решать практику по уроку – она настолько хорошо раскрывают тему, что после её выполнения все непонятные моменты исчезают. Каждый неработающий тест помогает понять, что следует делать, а что нет.
Этот курс естественным образом продолжает курс по работе с ошибками, но при этом является самодостаточным – авторы явно старались разработать его в таком ключе.
Что пришлось по душе:
* Крайне подробное рассмотрение большого числа тем.
* Практические задания и тесты в отдельном репозитории, что позволяет решать их в привычном (рабочем) окружении.
* Возможность в любой момент обратиться за помощью к авторам и клану нинздя (хотя я ни разу не обращался!).
* После выполнения задачи становится доступным решение сеснеев с авторскими пояснениями, что позволяет посмотреть на свое решение с новой стороны.
* Мемы! 😊
Что пришлось не по душе:
* Есть несколько тестов с множеством вариантов, где нужно выбрать только правильные – сомнительный формат проверки знаний, особенно сложно, когда приходилось искать информацию вне курса.
Прохождение курса на 100% заняло тринадцать дней каждодневной работы (от 2 до 6 часов).
Курс определенно стоит потраченных на него как временных, так и денежных ресурсов.
Большая благодарность Антону и Дмитрию за их труд! ❤️ Жду новые курсы!
Ответить
0 комментариев
Курс мощный. Есть часть авторского кода, вызывавшая у меня сомнения, но принимая во внимание объем курса и его насыщенность, это несущественные детали.
Моё мнение – курс полностью стоит своих денег, но!
Во-первых, он предназначен для людей мидл+
. Джуны могут попробовать, но должны понимать, что это станет для них второй работой на несколько месяцев, причём в разы более сложной, чем основная. И уточню: джун - это не выпускник условного Отуса, а тот, кто имеет реальный коммерческий опыт работы джуном.
Во-вторых, авторы немного промахнулись с оценкой нагрузки. Не знаю, будут ли они кумекать над сроками, но если нет, то на семь (Карл!) недель придётся сказать гудбай личной жизни, вечерам и выходным.
Для справки: я завершил курс полностью, но пока не сдал финальную часть. Это к тому, что у меня есть полное представление о первой части курса.
Если что, это хвалебный отзыв, просто в моей своеобразной манере :) Я получил огромное количество знаний. Работаю на Go уже четвёртый год, но не жалею, что прошёл курс. Хотя описать, как у меня подгорало, когда очередная суббота и воскресенье уходили полностью на занятия, сложно.
Ответить
0 комментариев
По уровню требуемой подготовки: джунам (и тут уточню, что джун – это не новенький в разработке, а тот, кто уже работает и успешно кодит коммерческие задачи на Golang) будет сложно. Сеньорам тоже будет нелегко, если только они не сталкивались с подобными задачами. Курс масштабный, и даже если первая половина из него вам знакома, то вторая половина заставит попотеть.
Что касается технологий и охвата: сервис написан ПОЛНОСТЬЮ. Там не только чистый Go для коммуникации через Websocket, но и весь обвес: Taskfile, swagger, debug server, клиентский и менеджерский API, senty, auth в Keycloak, сообщения в Postgres, producing сообщений в Kafka, фоновые задачи и прочее. Не стоит ожидать, что если вы новичок в Postgres или Kafka, то после курса станете экспертом, но вы определенно продвинетесь. К сожалению, работы с Kafka в курсе немного, но она является основой современного Go стека: Go, Postgres, Kafka.
Не с каждым выбором авторов я согласен. Самый яркий пример – завязка на entgo. Это инструмент, чтобы не писать чистый SQL, но для решения практической части курса всё равно вам нужно будет разобраться, как он работает, на уровне Postgres и запросов. Авторы объяснили выбор entgo как возможность попробовать и потренироваться. Понял, принял, попробовал, потренировался, забыл как страшный сон :D
Я знаком с работами сенсеев уже 3й год, кредит доверия огромный, и каждый раз они меня не подводят: работа просто огромная, реакция на обратную связь быстрая и без эксцессов, курс обновляется и исправляется по замечаниям от студентов, на вопросы отвечают молниеносно и добросовестно, не филонят, шероховатостей в курсе немного. Если что-то не работает, то скорее всего, вы что-то делаете не так или плохо читаете задание.
Два онлайн-вебинарчика в течение курса – уютный созвон для общения, но все вопросы были покрыты.
Не буду расписывать конкретно, что вы получите от курса. Список длиннющий и у каждого свой, рекомендую заглянуть в Техрадар. Просто имейте в виду – у вас на столе будет собственноручно написанный рвущийся в продакшн сервис с работой с БД, Kafka, WebSocket, API для фронтенда и фоновыми конкурентными задачами.
Основная загвоздка: сможете ли вы дойти до конца? Самое бесполезное, что можете сделать – это заплатить и бросить через пару модулей.
Как сильно сенсеи не попали в оценку по временной нагрузке? Уровень точности – Кержаков))
Ответить
0 комментариев
Внимание, длинный отзыв недовольного пользователя - слабонервным просьба не читать.
Курс не понравился, задания выполнялись с трудом и без удовольствия. По сравнению с другими курсами, такими как паники и ошибки, этот оказался совсем не тем.
Считаю себя опытным разработчиком, хотя признаю, что знаю не всё, так как моя работа в основном состоит из рутинных задач по передаче данных между вебом и базой данных.
Если кратко: где теория? Почему кроме написания бизнес-логики ничего не объясняют? Курс оказался не про технологии и паттерны, а про бизнес-логику чата.
Что я ожидал от курса: увидев техрадар, подумал, что авторы расскажут много интересного, как на предыдущих курсах. Понимал, что всё охватить не удастся, но рассчитывал на большее. В итоге курс больше похож на курсовую работу для другого курса - почти весь текст посвящен описанию задания, а где теория? Немного практических примеров я написал в комментариях, и считаю, что они должны быть в тексте. Пусть курс будет длиннее, это только на пользу.
Для меня курс оказался малоэффективным: приобретенные знания не стоят затраченного времени. Возможно, я просто не подходил для курса, но неясно, почему я тратил на задания вечера и выходные, когда оценки по времени были явно занижены. Возможно, я слишком ленив и медлителен, но я часто путался в коде и не мог понять, что и куда вставлять. Думаю, лучше было бы, если бы авторы давали более подробные указания.
Другие проблемы с заданиями: первые 4-5 недель код проекта казался чужим, как будто не я его писал, из-за чего задания раздражали. Это было похоже на работу, где тебе каждый раз дают задание доделать чужой код - это раздражает, особенно если речь идёт о рутинной бизнес-логике.
Ещё раздражало, когда авторы говорили "всё как на работе". Я занимаюсь курсом, чтобы отвлечься от работы, а тут снова погружение в то, что неинтересно. К тому же, на пятой неделе авторы всё ещё просили самим писать opts.Validate().
Если бы я был автором, я бы упростил задания, но добавил бы больше теории. Пусть задания будут проще, но теории и интересных вещей будет больше. Например, вебсокеты, кафка, протобаф, трейсы и другие технологии.
Не понимаю, на кого рассчитан курс. Если на начинающих, им будет трудно с докером и мидлвари. Если на средний уровень, неясно, чему мы учим - писать юзкейсы и хендлеры в отдельных пакетах? Если на высокий уровень, то где теория о кафке, вебсокетах и других темах?
Моё видение идеального курса: создать структуру проекта, написать юзкейсы и хендлеры под руководством, а затем уделять больше времени теории и практике по интересным темам: базы данных, грейсфул шатдаун, логирование, докеры и кубернетесы, вебсокеты, кафка, протобаф и трейсинг.
Курс не обязательно должен быть единым приложением, он может состоять из отдельных частей.
Что я убрал бы из курса:
* entgo - на мой взгляд, ничего хорошего, ванильный Go и SQL достаточно просты, а такие комбайны с кривыми запросами не нужны.
* sentry - не использовалась в курсе, и её проекты сбрасываются при очистке базы данных перед e2e тестами.
* keycloak - слишком сложен, лучше заменить его простым сервисом авторизации.
* дискриминаторы в Swagger - новый сырой функционал, без которого можно обойтись.
Что добавил бы:
описание тестов, сделано красиво, но в курсе не раскрыто, как авторы упрощают себе тесты;
про пулконнектов к БД и нормальные миграции, а не энтовские.
Что я вынес из курса: таск файл, организация тестов с базовым классом и первый раз увидел работающий подход swagger-first.
Всё равно спасибо за труд, проект сервиса написан круто, и понятно, что вложено много времени в его шлифовку и разбиение на части - ошибок действительно нет.
Ответить
0 комментариев
Ответить
0 комментариев