Курсы Golang разработчик
- Golang
На цьому курсі ви опануєте Go від А до Я, навчитеся створювати ефективні та надійні програми, щоб забустити кар'єру і перейти в перспективний напрям.
Програма курсу
Інтро в мову програмування Golang
- Дізнаєтеся про особливості програмування мовою Golang (Go), про її історію та філософію
- Зрозумієте, для яких задач програмування мова Golang підходить якнайкраще
- Порівняєте Golang з іншими мовами програмування
- Встановите і налаштуєте середовище Golang на своєму комп'ютері
Основи синтаксису Golang
- Дізнаєтеся про пакети, умовні оператори та імпорт у Go
- Навчитеся оголошувати й застосовувати функції
- Ознайомитеся з основними типами даних в Go
- Навчитеся використовувати цикли в Go
Робота з масивами, зрізами та мапами
- Дізнаєтеся, як працювати з масивами, зрізами та мапами у Go
- Навчитеся оголошувати, ініціалізувати й працювати з масивами
- Розберете всі етапи роботи над зрізами: від створення до модифікації та ітерації
- Ознайомитеся з мапами, дізнаєтеся, як їх створювати, додавати, видаляти й робити ітерації
Методи та інтерфейси
- Ознайомитеся з основами методів та інтерфейсів у Go для покращення структури коду
- Зрозумієте роль поліморфізму та інтерфейсів у створенні флексибельних програм
- Дізнаєтеся, що таке тип any та нововведення з дженериками в Go для розширення можливостей написання та структурування коду
Обробка помилок
- Розберете підхід мови Go до помилок
- Навчитеся створювати, повертати й обробляти помилки у функціях
- Ознайомитеся з функцією panic та дізнаєтеся, як її використовувати
- Навчитеся відновлюватися після паніки за допомогою функції recover
Робота з функціями Input/Output
- Навчитеся використовувати стандартний ввід/вивід в Go
- Дізнаєтеся про основні операції з файлами
- Ознайомитеся з концепцією контексту та дізнаєтеся, як з його допомогою управляти горутинами
- Навчитеся логувати інформацію за допомогою стандартного пакета log та пакета slog
Структура проєктів і тестування
- Ознайомитеся з підходом до структурування проєктів у Go
- Дізнаєтеся про важливість правильного структурування проєктів
- Ознайомитеся з підходами до тестування в Go
- Дізнаєтесь, як писати, структурувати й запускати тести
Базові алгоритми та структури даних
- Пригадаєте поняття часової та просторової складності алгоритмів та O-нотації
- Пригадаєте основні алгоритми сортування та їхні особливості
- Ознайомитеся з імплементацією основних алгоритмів сортування на Go
- Розберете базові структури даних та їхні особливості
- Ознайомитеся з імплементацією базових структур даних на Go
Дерева та хеш-таблиці
- Розберете структуру даних "дерево", розберете її особливості та різновиди
- Розглянете структуру даних "хеш-таблиця", розберете методи розвʼязання колізій у ній
- Дізнаєтеся про нюанси використання даних структур в Go
- Навчитесь імплементувати ці структури даних в Go
Основи конкурентності
- Ознайомитеся з поняттями потоків та процесів, а також їхнім управлінням в ОС
- Навчитеся використовувати асинхронні операції та паралелізм у Go
- Зрозумієте, що таке зелені потоки та цикл подій і як їх реалізувати у Go
- Дізнаєтеся про відмінності між асинхронністю та багатопотоковістю, а також зможете вибирати підхід для різних завдань
Горутини та синхронізація
- Ознайомитеся з поняттям горутин і зрозумієте, як вони допомагають, коли потрібне паралельне виконання задач
- Навчитеся застосовувати м'ютекси та семафори для синхронізації горутин
- Зрозумієте, як використовувати канали для комунікації між горутинами
- Навчитеся застосовувати WaitGroup для синхронізації завершення горутин
- Зрозумієте проблеми взаємоблокування та живого блокування і дізнаєтеся, як їх уникати
Робота з мережею
- Ознайомитеся з мережевими моделями OSI та TCP/IP, зрозумієте їхню структуру та функції
- Дізнаєтеся про основні характеристики та функції протоколів TCP та UDP
- Зрозумієте, як працюють протоколи HTTP та HTTPS і як вони забезпечують передачу даних у мережі
- Дізнаєтеся про основи роботи TCP-сервера і його відмінності від TCP-клієнта
- Ознайомитеся з модулем net в Go і навчитеся використовувати його для створення TCP-сервера
- Дізнаєтеся, як застосовувати netcat для тестування TCP-серверів
Робота з Docker
- Розберете відмінності між віртуальними машинами та Docker-контейнерами
- Навчитеся встановлювати й налаштовувати Docker на різних операційних системах
- Ознайомитеся з концепцією Dockerfile та навчитеся створювати Dockerfile для своїх застосунків
- Дізнаєтеся, як створювати й управляти Docker-образами
- Навчитеся запускати й управляти Docker-контейнерами
Робота з базами даних
- Пригадаєте основні види баз даних, їхню класифікацію та особливості
- Розберете роботу з PostgreSQL і MongoDB
- Зрозумієте, як кожен тип баз даних організовує та зберігає дані
- Зможете вибирати відповідний тип бази даних залежно від конкретних потреб вашого застосунку
Робота з фреймворком Fiber
- Дізнаєтеся, що таке фреймворк Fiber і чим він відрізняється від інших (зокрема Gin і Echo)
- Навчитеся встановлювати й налаштовувати Fiber для розробки динамічних вебзастосунків
- Зрозумієте, як створювати прості REST API та RPC-подібні сервіси з використанням Fiber
- Реалізуєте простий застосунок Hello World з Fiber для закріплення знань
Маршрутизація
- Навчитеся створювати маршрути для різних HTTP-методів у Fiber
- Дізнаєтеся, як використовувати групи маршрутів для організації коду
- Зрозумієте, як створювати та застосовувати ApiSpec для документування API
- Навчитеся інтегрувати Swagger з проєктом на Fiber для автоматичної генерації документації
Парсинг даних
- Розберете основи серіалізації та десеріалізації даних у вебзастосунках на Go
- Навчитеся використовувати пакет encoding/json для серіалізації та десеріалізації даних
- Ознайомитеся з методами валідації даних та навчитеся застосовувати пакет validator для валідації структур у Go
- Дізнаєтеся, як парсити запити у Fiber та обробляти параметри URL, заголовки й тіло запиту
Middleware та його роль у вебзастосунках
- Ознайомитеся з поняттям middleware, навчитеся створювати й використовувати його у Fiber
- Зрозумієте, як реалізувати авторизацію користувачів та перевірку прав доступу у вебзастосунках
- Навчитеся застосовувати JWT для авторизації та захисту маршрутів
- Зрозумієте важливість логування та навчитеся реалізовувати логування у Fiber
- Дізнаєтеся, як ефективно обробляти помилки у вебзастосунках і створювати кастомні обробники помилок
Використання WebSockets у Fiber
- Ознайомитеся з концепцією WebSockets та її перевагами для зв'язку в live-режимі
- Навчитеся налаштовувати WebSocket-з’єднання у Fiber
- Зрозумієте, як працювати з WebSocket-повідомленнями та обробляти події
- Реалізуєте прості застосунки з використанням WebSockets, наприклад, чат-застосунок чи систему сповіщень
- Навчитеся створювати WebSocket клієнтів на JavaScript та гарантувати безпеку WebSocket-з’єднань
Best practices у розробці застосунків на Golang: мікросервіси, оркестрація, балансування навантаження
- Ознайомитеся з основними архітектурами застосунків і їхніми характеристиками
- Зрозумієте принципи мікросервісної архітектури та комунікації між мікросервісами
- Дізнаєтеся, як використовувати брокери повідомлень
- Опануєте основи балансування навантаження та оркестрації контейнерів
- Ознайомитеся з Docker Swarm та його застосуванням для оркестрації
- Отримаєте рекомендації для подальшого навчання та розвитку в галузі розробки й управління застосунками
Q&A і підготовка до технічних співбесід
- Поставите запитання лектору щодо програми та курсового проєкту
- Проведете роботу над найпоширенішими помилками
- Розглянете основні технічні запитання на співбесідах
Особливості курсу
- Синтаксис Go
- Вивчення інструментів для розробки
- Робота з даними
- Best Practices
- Допомога ментора
Викладачі курсу
Олексій Подолян - Tech Lead at AURA
Больше информации- Golang
Курс передбачає навчання студентів мові програмування Golang Programming, її основам. Він націлений на присутність мінімальної попередньої підготовки у аудиторії, дозволяє закласти хорошу базу, вивчити ідіоми, а також на практиці розібрати найпоширеніші помилки фахівців даної сфери. Освітня програма включає як теоретичну, так і практичну частину навчання.
Програма курсу
Модуль 1. Введення в курс
- Що являє собою Golang Programming?
- Історія створення
- Основні переваги даної мови над іншими
- Ефективне вирішення завдань за допомогою Golang Programming
- Чому сучасна Golang Programming користується попитом?
Модуль 2. Основи Git (розподілена система керування версіями)
Модуль 3. Специфіка налаштування середовища Golang Programming:
- Встановлення мови програмування
- Впровадження додаткового інструментарію з метою підвищення ефективності функціонування Go
- Огляд основних утиліт для продуктивної роботи з Go
- Visual Studio Code як приклад для оперативного налаштування середовища
- Як створити простий Web Server на Go за обмежену кількість часу?
Модуль 4. Основи програмування
- Знайомство з типами даних, покажчиками, константами, змінними
- Як імпортувати дані?
- Що таке пакети, область видимості?
Модуль 5. Основні операції з Goland Programming:
- Специфіка операцій інкремент і декремент
- Особливості арифметичних і логічних операцій
- Суть порозрядних операцій та застосування їх в Golang Programming
Модуль 6. Control flow - управління програмою:
- Особливості використання оператора switch
- Суть застосування оператора if
- Оператор циклу for і його специфіка
Модуль 7. Що мають на увазі під собою складові типи даних?
- Array (масиви)
- Slice (тип зрізу)
- Range
- Тип map
- Структури
Модуль 8. Функції в програмуванні
- Базові поняття функцій
- Визначення функції
- Особливості передачі параметрів у функцію
- Багаточисельне повернення значень з функції
- Функції зі змінним числом параметрів: специфіка застосування
- Що таке рекурсія та коли слід її застосовувати?
- Робота з файлами
Модуль 9. Популярні збої, помилки в програмуванні та їх обробка
- Повернення помилки з функції
- Застосування Deferred функції
- Переваги Panic і Recover
Модуль 10. Мова програмування Golang Programming і додаткові її можливості
- Методика програмування
- Реалізація поліморфізму за допомогою інтерфейсів
- Пакети, рефлексія, а також низькорівневе програмування
Особливості курсу
- Викладачі практики
- Корпоративне навчання
- Можливість навчатись у вихідні
- Можливість влаштуватись у провідні IT-компанії
- Індивідуальне навчання
Викладачі курсу
- Володимир - Програміст
- Ігор - Програміст
- Володимир - Програміст
- Олексій - Програміст
- Golang
Студенти з нуля вивчать Golang (синтаксис, його особливості, вбудовані та розповсюджені модулі) та отримають міцну базу з технологій, хороших практик, порад тощо.
Програма курсу
Introduction
- Meet your mentor
- Computer components
- About golang
- Course plan
- Installation
- Golang
- VScode
- Hello world
Syntax and Structure, Control statements
- Variables, basic types and constans
- If / if else / if else if else
- Comprasion 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)
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
Concurrency, Channels
- Goroutines
- Mutex
- Wait group
- Channels
New Golang features and ok idiom, cgo
- Generics
- Min, max
- Ok idiom
- Cgo
Files, Graphics
- Files
- Image processing
- 2D graphics
API introduction
- Postman installation
- HTTP, RESTful API
- JSON, JWT
- Example project
Databases
- About databases (MySQL, PostgreSQL, MongoDB)
- MySQL installation
- Interaction with MySQL
Databases
- MySQL syntax
- Tables, columns, types and other
- GORM
gRPC
- Protobuf
- gRPC
Message brokers
- NATS installation
- Interaction with NATS
- About MQTT (just theory and examples, comparing with NATS)
Final project
- Architecture
- Environmental variables
- Middleware
- Git
Final project
- Handlers
- Service layer
- DB layer (GORM)
- Swagger
Final project
- Caching examples in a project
- In memory
- Redis (installation and interaction)
Final project
- More about Redis DB
- Message broker integration (NATS)
Final project
- Test coverage
- Benchmarks
- Profiling
Optimization strategy
- Load balancing
- DB replications
- DB table partitioning
- Final info
Особливості курсу
- Власний кабінет Jungle cloud
- Онлайн заняття
- Комунікація в чаті
- Круті ментори
- Теорія + практика
- Доступ до записів занять та відеоматеріалів
- Фінальний проєкт
- Сертифікат про проходження курсу
Викладачі курсу
Тимофій - Golang Backend Developer at Jungle
Больше информации- Golang
За час навчання на курсі ви познайомитеся з найпопулярнішими інструментами роботи, покращите навичку роботи з інтерфейсом через командний рядок, створіть кілька чат-ботів. Крім того, ви зрозумієте, як працювати з популярними хмарними сервісами, починаючи з AWS. Для наполегливіших студентів передбачені заняття з більш складних тем, вибір яких обговорюватиметься з викладачем. Загалом, отриманих на курсі знань достатньо, щоб починати шукати роботу як Junior Golang Developer.
Програма курсу
Git Course
Вiдеокурс по GitLab допоможе вам зрозуміти основні концепції та інструменти, які використовуються для керування проєктами програмного забезпечення. Під час цього курсу ви ознайомитеся з основами системи контролю версій Git та платформою GitLab, яка надає широкий спектр можливостей для спільної роботи над кодом, відстеження змін, управління задачами та багато іншого. Ви дізнаєтеся, як ефективно використовувати GitLab для спільної роботи в команді, ведення проєктів та забезпечення якості програмного забезпечення.
CLI
У цьому блоці студенти зможуть засвоїти CLI (Command-line interface) за допомогою багатої внутрішньої бібліотеки Go, а також познайомляться, як працювати з часом у Go. Дізнаються, як писати юніт тести.
Чат-боти
У цьому блоці студенти зроблять кілька своїх чат-ботів. За підсумками блоку вони зрозуміють як краще організовувати свій код, як працювати з http.Client і також як користуватися зовнішніми API.
REST
У цьому блоці студенти напишуть REST API для керування користувачами. Для його реалізації вибрано один із найбільш використовуваних фреймворків Echo. Вимоги додаються з кожним завданням у блоці, тому погано організований код доведеться рефакторити. Також вони познайомляться з Docker. Крім того, у них буде можливість ознайомитися з SQL і зрозуміти різницю між SQL і NoSQL базами даних (БД).
Advanced topics
Останній блок навчання включає знайомство з gRPC протоколом, який дуже часто використовується для побудови мікросервісної архітектури. Студентам доведеться розділити свій проект по блоку REST та реалізувати спілкування з БД через gRPC.
Попередні вимоги
- Знання загальної Computer Science
- Базове розуміння будь-якої мови програмування
- Знання англійської мови на рівні читання технічної документації
Особливості курсу
- Швидкість проходження курсу залежить від вас. Швидше вчитесь - менше платите. Середній час проходження курсу 3 місяці
- 7 днів тестового періоду
- Менторинг
- Безкоштовна заморозка
Викладачі курсу
- Сергій Пожидаєв - Golang Software Engineer at Sigma Software
- Павло Мальованний - IC2 software engineer at TENTENS Tech by SKELAR
- Юлія Боцева - Golang Developer at Gamingtec
- Денис Оленін - CTO moai.team at MoaiTeam
- Дмитро Сташкевич - Senior Backend Developer at Auvik
- Анастасія Лизогубенко - Goland Developer at DGN Games
- Михайло Панько - Backend Engineer at Relay Payments
- Ярослав Кожемяка - Goland Software Engineer at Acaisoft
- Микола Баран - Senior Software Engineer, Team Lead at Приватбанк
- Микола Гриньків - Team Lead Engineer at Luxoft
Читайте нас в Telegram, чтобы не пропустить анонсы новых курсов.