На цьому курсі починають з основ мови Go. Спочатку розглядають особливості та історію мови, з'ясовують, для яких завдань вона підходить найкраще. Порівнюють Go з іншими мовами програмування. Слухачі встановлюють та налаштовують середовище розробки на своєму комп'ютері. Потім переходять до вивчення базового синтаксису: пакети, умовні оператори, імпорт, функції, основні типи даних та цикли.
Далі курс охоплює роботу з основними структурами даних у Go. Учні навчаться працювати з масивами, зрізами та мапами - від створення до модифікації та ітерації. Розглядають методи та інтерфейси для покращення структури коду, зокрема поліморфізм та дженерики. Особливу увагу приділяють обробці помилок - створенню, поверненню та обробці помилок у функціях, роботі з panic та recover.
Цей блок присвячений роботі з введенням-виведенням даних. Слухачі навчаться використовувати стандартний ввід/вивід, виконувати основні операції з файлами. Ознайомляться з концепцією контексту для управління горутинами та навчаться логувати інформацію за допомогою стандартних пакетів log та slog. Також розглядають підходи до структурування проєктів та тестування коду в Go.
У цій частині курсу розглядають базові алгоритми та структури даних. Починають з часової та просторової складності алгоритмів, O-нотації. Вивчають основні алгоритми сортування та їх реалізацію на Go. Детально розбирають дерева та хеш-таблиці - їх особливості, методи розв'язання колізій та нюанси використання в Go.
Тут заглиблюються в конкурентне програмування. Пояснюють поняття потоків та процесів, асинхронних операцій та паралелізму. Слухачі навчаться використовувати горутини, м'ютекси, семафори, канали та WaitGroup для синхронізації. Розглядають проблеми взаємоблокування та способи їх уникнення. Також вивчають мережеві моделі OSI та TCP/IP, протоколи TCP, UDP, HTTP, HTTPS та навчаються створювати TCP-сервери.
Цей модуль охоплює роботу з Docker та базами даних. Пояснюють відмінності між віртуальними машинами та контейнерами, встановлюють Docker, створюють Dockerfile, образи та керують контейнерами. У частині баз даних розглядають основні види БД, їх класифікацію, роботу з PostgreSQL та MongoDB, а також вибір відповідного типу бази даних для конкретних потреб.
Слухачі знайомляться з фреймворком Fiber для розробки вебзастосунків. Вчаться встановлювати та налаштовувати Fiber, створювати прості REST API та RPC-сервіси. Розглядають маршрутизацію для різних HTTP-методів, групи маршрутів, інтеграцію Swagger для документації. Вивчають парсинг даних, серіалізацію, валідацію та обробку запитів.
У цьому блоці розглядають middleware у Fiber - створення та використання, авторизацію користувачів, JWT для захисту маршрутів, логування та обробку помилок. Також вивчають WebSockets для зв'язку в реальному часі - налаштування з'єднань, роботу з повідомленнями, створення чат-застосунків та систем сповіщень, гарантування безпеки з'єднань.
Завершальна частина курсу охоплює best practices у розробці. Розглядають основні архітектури застосунків, мікросервісну архітектуру, комунікацію між мікросервісами, брокери повідомлень, балансування навантаження та оркестрацію контейнерів з Docker Swarm. Останній модуль присвячений підготовці до технічних співбесід - роботі над поширеними помилками та відповідям на типові запитання.
Курс охоплює синтаксис Go та інструменти для розробки. Навчає роботі з даними та best practices. Забезпечує підтримку ментора протягом навчання.