Курс Golang programming
Go: повний посібник розробника (Golang).
Тримісячний курс для вивчення мови програмування Golang з нуля і до впевненого Junior розробника.
Мова програмування Go, або Golang, –– це розробка Google. Цю мову використовують майже в кожному продукті компанії –– від Gmail до Google Pay. Крім того, мова Gо поступово захоплює ринок і дедалі більше компаній потребують спеціалістів із програмування на Gо.
Старт курсу
набір триває
Формат навчання
за вашим графіком
Тривалість
3 місяці / 24 заняття / 36 годин
Підтримка менторів
24 / 7
ОПИС
Студенти з нуля вивчать Golang (синтаксис, його особливості, вбудовані та розповсюджені модулі) та отримають міцну базу з технологій, хороших практик (архітектура, git, написання коду), порад тощо. Все буде підкріплено практикою та реальними прикладами. Також ми напишемо наш фінальний проєкт, в якому використаємо технології та практики, які будемо розбирати, та оформимо його за всіма правилами (тести, профайлінг тощо). Ці знання дозволять упевнено відповідати на запитання при співбесіді на вашу першу позицію, адже курс враховує всі запитання та приклади з реальних співбесід
Технології та практики, які ми розберемо на курсі: Golang, JSON, JWT, HTTP, RESTful API, gRPC, protobuf, protoc, MySQL, PostgreSQL, MongoDB, RedisDB MQTT, NATS, images/files processing, git, GitHub, load balancing, DB replicating, DB table partitioning
Програми, що використовуватимемо: Mqtt Explorer, Visual Studio Code, Postman, command line.
ЯК ПРОХОДИТЬ НАВЧАННЯ
Заняття
Заняття проходять в будні дні 2 рази на тиждень. Провідні спеціалісти діляться своїм практичним досвідом.
Теорія
Вивчаємо теорію на реальних прикладах, вчимо лише основи.
Практика
Практика є важливим аспектом адже більше уваги ми приділяємо практиці.
Матеріали
Відеозаписи та інші матеріали доступні протягом всього навчання та після його завершення.
Допомога ментора
Постійний зв’язок з ментором у вирішенні всіх питань.
Онлайн заняття
Виконання завдання
Зворотній зв'язок
Виправлення помилок
МЕТОДОЛОГІЯ НАВЧАННЯ
Власний кабінет Jungle cloud
Робоче середовище студентів і доступ
до всіх матеріалів програми
Онлайн заняття
2 онлайн зутрічі на тиждень
з менторами професіоналами
Комунікація в чаті
Група де знаходяться всі ментори
та студенти курсу
Круті ментори
Щоденно з вами на зв’язку кращі спеціалісти
цієї сфери, які допоможуть у всіх моментах
ПРОГРАМА КУРСУ
Формат навчання
за власним графіком
Вартість навчання
24 000 грн
✓ Курс з нуля - 3 місяці
✓ Кожна тема складається з 80% практики
✓ Тільки програмування Go
✓ 2 заняття на тиждень по 1.5-3 години
Introduction
-
Meet your mentor
-
Computer components
-
About golang
-
Course plan
-
Installation
-
Golang
-
VScode
-
-
Hello world
Результат: Знайомство. Розуміння з чого складається комп’ютер, що таке програма, що таке Golang. Налаштування необхідного середовища (Golang, VScode). Напишемо першу програму Hello world на Golang
Syntax and Structure, Control statements
-
Variables, basic types and constants
-
If / if else / if else if else
-
Comparison operators
-
Switch case
-
Loops
Результат: Вміння роботи зі змінними, константами, базовими типами даних. Розберемо умовні конструкції, оператори порівняння, конструкцію перемикч, цикли
Functions, Struct+Methods
-
Functions
-
declaration, invocation
-
-
Anonymous functions
-
Closure,
-
Scope
-
-
Defer
-
Struct+Methods
Результат: Вивчення та робота з функціями (оголошення, виклик, анонімні функції, контекст функції), відкладені виклики. Знання що таке структура та її методи
Advanced types
-
Arrays
-
Slices
-
Maps
Результат: Навчимося працювати з масивами, слайсами, мапами
Math
-
Math operators
-
Round, ceil, floor
-
Sqrt, pow, trigonometry
-
PI, E
-
Inf()
-
Rand (examples with arrays)
Результат: Розуміння роботи з математикою в Golang. Приклади як використовувати
Packages and imports
-
Project structure, go.mod, import
-
Source file
-
Package initialization
-
Go modules
Результат: Вивчення як впорядковувати файли в проєкті, модулів, пекеджів та розуміння структури файлу та проєкту
Interfaces
-
Interface
-
Implementation
-
Method set of an interface
Результат: Вивчимо що таке інтерфейс, методи інтерфейсу, коли їх використовують
Errors, Unit Tests, Logging
-
Error handling
-
Logging
-
Test case
-
Test function
Результат: Вміння обробляти помилки, покривати код юніт-тестами, логувати
Pointers, Context
-
Pointers
-
Context
Результат: Вивчення поінтерів, вміння правильної роботи з пам’яттю та застосування контексту
Advanced types
-
Enum
-
Iota
-
Bitmask
-
Time
-
Rune
Результат: Розберемо більше типів (аналог enum в Golang, iota, дати й час, руни, bitmask), як з ними працювати та навчимося їх використовувати
Concurrency, Channels
-
Goroutines
-
Mutex
-
Wait group
-
Channels
Результат: Навчимося працювати з горутинами, мютексом, групою очікування та каналів. Розберемо всі їх нюанси та поширені помилки при роботі з ними
New Golang features and ok idiom, cgo
-
Generics
-
Min, max
-
Ok idiom
-
Cgo
Результат: Вивчимо дженеріки, функції мінімального і максимального, ок ідіому. Дізнаємося що таке cgo, як з ним працювати і коли використовувати
Files, Graphics
-
Files
-
Image processing
-
2D graphics
Результат: Розуміння роботи з файлами різного типу (txt, csv) - як створити, відкрити, змінити, видалити. Розберемо доступи до файлу. Розберемо кольори та їх складові. Навчимося змінювати картинки (jpg, jpeg, png, webp). Розберемо різницю форматів картинок. Попрацюємо з 2D графікою у Golang
API introduction
-
Postman installation
-
HTTP, RESTful API
-
JSON, JWT
-
Example project
Результат: Встановимо програму Postman і навчимося використовувати базові функції. Вивчимо що таке протокол HTTP і RESTful API. Навчимося роботі з даними у форматі JSON. Дізнаємось що таке JWT і де використовується. Створимо перше API
Databases
-
About databases (MySQL, PostgreSQL, MongoDB)
-
MySQL installation
-
Interaction with MySQL
Результат: Почнемо вивчення баз даних. Поговоримо про їх різновиди, нюанси, переваги та недоліки. Встановимо MySQL та напишемо свою першу квері до неї
Databases
-
MySQL syntax
-
Tables, columns, types and other
-
GORM
Результат: Продовжимо роботу з MySQL. Навчимося створювати базу даних, таблиці, колонки. Попрактикуємося в написанні квері до MySQL. Інтегруємо роботу з MySQL в Golang за допомогою GORM
gRPC
-
Protobuf
-
gRPC
Результат: Вивчимо що таке protobuf і gRPC, їх переваги. Також навчимося працювати з gRPC. Напишемо сервіс з використанням цієї технології
Message brokers
-
NATS installation
-
Interaction with NATS
-
About MQTT (just theory and examples, comparing with NATS)
Результат: Поговоримо про брокери повідомлень, обговоримо їх особливості, переваги та недоліки. Встановимо NATS і навчимося його використовувати. Порівняємо його з MQTT
Final project
-
Architecture
-
Environmental variables
-
Middleware
-
Git
Результат: Почнемо писати фінальний проєкт RESTful API. Розберемо що таке змінні середовища, для чого вони і як з ними працювати. Напишемо мідлвейр для нашого сервісу. Збережемо зміни за допомогою git та навчимося заливати проєкт на GitHub
Final project
-
Handlers
-
Service layer
-
DB layer (GORM)
-
Swagger
Результат: Напишемо хендлери, сервіси та додамо роботу з базою даних в наш проєкт. Навчимося писати документацію до ендпоінтів нашого апі за допомогою Swagger
Final project
-
Caching examples in a project
-
In memory
-
Redis (installation and interaction)
-
Результат: Вивчимо для чого потрібне кешування, які є його типи і додамо кешування в пам’яті та в Redis DB
Final project
-
More about Redis DB
-
Message broker integration (NATS)
Результат: Поглибимося в Redis DB (вивчимо більше функцій). Додамо брокер NATS в наш проєкт
Final project
-
Test coverage
-
Benchmarks
-
Profiling
Результат: Покриємо наш проєкт юніт-тестами. Вивчимо що таке бенчмарки і профайлінг програми, застосуємо їх на практиці
Optimization strategy
-
Load balancing
-
DB replications
-
DB table partitioning
-
Final info
Результат: На прикладі нашого готового проєкту розберемо різні стратегії оптимізації сервісів: розподілення навантаження, реплікація бази даних, розділення таблиці бази даних. Підведемо підсумки, поговоримо про співбесіди