Geekbrains

Факультет Разработки на Go

  • Начальный уровень
  • Наставник: Есть
  • Сертификат: Есть
  • Формат: Online
  • Рассрочка: Есть
  • Язык: Русский
  • Осталось мест: Неограничено
Записаться

Факультет Разработки на Go

Научитесь создавать приложения, безопасные и масштабируемые сервисы на современном языке от Google. Его используют IT-гиганты IBM, Intel и Adobe, а в России — ВКонтакте, Avito и Ozon.

Go-разработчик – это программист, использующий для работы компилируемый многопоточный язык Golang. Его создали сотрудники компании Google для разработки веб-сервисов и высоконагруженных клиентских приложений. Язык был придуман в качестве замены С++ на тех проектах, где была важна скорость разработки и компиляции кода.

Для кого этот курс?
  • Новичкам
    Golang отлично подходит в качестве первого языка программирования. У него простой синтаксис и короткая документация. Чтобы его освоить, не нужен технический бэкграунд.
  • Разработчикам с опытом
    Многие компании переходят на Go и ищут специалистов со знанием двух языков. Если знаете PHP, C/C++, JavaScript, Ruby или другие языки, сможете зарабатывать больше.
Программа обучения
Основной блок — 3 месяца
  • Введение в программирование

    Познакомитесь с языками программирования, поймёте разницу между языком и программированием, научитесь строить блок-схемы и познакомитесь со структурами данных.

  • Математика и информатика

    Повторите школьный курс информатики, логики и математики.

  • Введение в контроль версий

    Познакомитесь с контролем версий и принципами работы в git и github, изучите синтаксис языка Markdown.

  • Знакомство с языком программирование C#

    Знакомство с языком программирования C#: функциями и массивами, рекурсиями и двумерными массивами. Узнаем, как не нужно писать код.

  • Введение в базы данных

    Познакомитесь с понятием «базы данных», разберетесь с их видами и основными подходами к работе с данными. Узнаете методы проектирования баз данных, а также способы модификации их структуры.

  • Профориентация

    Изучим колесо компетенций и матрицу Декарта. Познакомимся со специализациями и выберем дальнейшее направление развития.

Специализация — 9 месяцев
  • Знакомство с треком обучения и направлениями: интро

    Познакомитесь с форматом и треком обучения, поймете назначение каждого курса.

  • Основы Питон

    Познакомитесь с языком Python, изучите данные, функции и модули, попробуете поработать с кодом.

  • Знакомство с Веб-технологиями

    Разберём основные понятия в веб-разработке. Познакомимся с языком разметки документов HTML, основами языка оформления стилей документа CSS, основами JavaScript, бэкенда PHP и MySQL, а также форматами передачи данных JSON и XML.

  • Операционные системы (Linux)

    Будем разбираться с серверной системой на базе Linux, рассмотрим один из самых популярных дистрибутивов Ubuntu (построен на базе Debian).

    Серверные системы Linux используют текстовый интерфейс, поэтому графические оболочки не будут использоваться как основа, хотя графический интерфейс может помочь в начале знакомства с Linux (для это существует Desktop-версия ОС Ubuntu).

    Мы научимся понимать файловую структуру Linux, работать в консоли, применять основные команды, работать с удаленной системой по SSH.

    Отдельно будет рассмотрена работа Linux как платформы для веб-приложений, мы настроим и запустим полноценный стек сервисов для работы веб-сайта на базе Nginx и PHP.

    Важным аспектом системного администрирования является установка программ (пакетов) из репозиториев и автоматизация действий (скрипты bash) – все эти темы мы рассмотрим на отдельных занятиях.

    Кроме того, будут рассмотрены вопросы безопасности и сетевой подсистемы ОС Linux.

  • Объектно-ориентированное программирование

    Один из основных подходов к программированию, где на первом месте стоят объекты. Используется для упрощения сложного кода. Чтобы это сделать, программу делят на уникальные блоки, которые называются объектами, данные внутри него называются свойствами, а функции — методами.

  • Алгоритмы и структуры данных

    Курс нацелен на получение знаний о структурах данных и алгоритмов, которые необходимы начинающему программисту для старта карьеры. Сложность алгоритмов, О-нотация.

  • Исключения в программировании и их обработка

    Во время работы программы иногда возникают критические ошибки, которые приводят к аварийному завершению программы. Большинство подобных ошибок можно избежать, если научить программу правильно их обрабатывать. Чтобы программа знала, что делать, если возникла какая-то ошибка, используют обработчики исключений.

  • Unit-тесты

    Кроме проверки пользовательского интерфейса и описанных пользовательских сценариев, очень важно проверять и код на предмет его корректной работы в разных ситуациях. Для решения такой задачи используют юнит-тесты - это программа, которая проверяет правильность работы небольшой части кода. Наличие таких тестов позволяет разработчикам сразу после внесенных изменений проверить, что код после этого работает верно, что позволяет найти критичные ошибки в коде до непосредственного тестирования, и уже после этого отдать задачу тестировщику

  • Базы Данных и SQL

    Познакомитесь с языком запросов SQL. Научитесь писать запросы, делать расчёты и работать с таблицами. Узнаете основные ограничения SQL. Поработаете с MySQL и познакомитесь с альтернативными базами данных.

  • Контейнеризация

    На курсе изучите различия между микросервисной и традиционной архитектурой, научится работать с Docker и Docker Compose, а так же создавать собственные Dockerfile. Большая часть курса посвящена Kubernetes - самому популярному оркестратору контейнеров. После окончания курса студент сможет разворачивать приложения в Kubernetes, в том числе с помощью GitLab CI/CD.

  • Архитектура ПО: принцип SOLID, проектирование ООП, чистая архитектура

    После успешного прохождения данного курса вы разберетесь в универсальных принципах классического объектно-ориентированного проектирования, усвоите подход SOLID, ознакомитесь с наиболее часто применяемыми паттернами разработки ПО, освоите навыки проектирования программных компонентов. Узнаете основные принципы проектирования “чистых” архитектур.

  • Контроль Версий Углубленно (Git)

    В данном курсе мы изучим специальные команды Git, узнаем, как с ними работать на практике, научимся использованию системы контроля версий Git и работе с репозиторием на продвинутом уровне.

  • Организация CI/CD

    Во время курса мы познакомимся с основными понятиями и средствами CI/CD и инструментами, рассмотрим интеграцию и взаимодействие средств CI/CD и Docker’a, Углубимся в CI.

  • Парадигмы программирования и языки парадигм

    После успешного прохождения данного курса вы начнете разбираться в современных парадигмах программирования, будете понимать как они взаимосвязаны, сможете уверенно рассуждать об их достоинствах и недостатках, обретете системное понимание эволюционного развития подходов к разработке ПО. Благодаря всему этому сможете принимать оптимальные решения при выборе парадигмы в зависимости от задачи.

  • Профориентация по направлению и языкам

    Рассмотрим основные направления – фронтенд, бэкенд и мобильную разработку. Пройдемся по основным языкам, которые используются в направлениях. Сориентируемся в выборе дальнейшего трека обучения.

Технологическая специализация — 3 месяцев
  • Бэкенд-разработка

    Рассмотрим подробнее бэкенд-направление, а также языки Python, Го, С#, С++

  • Go. Продвинутый уровень

    Углубление в язык Go. Познакомитесь с вариантами реализации параллельных вычислений в конкурентной модели, научитесь управлять зависимостями и писать простые асинхронные приложения.

  • Postgres для Go-разработчиков

    Попробуете себя в роли администратора баз данных, научитесь работать с системой управления PostgreSQL и внедрять её в свои проекты.

  • Проект
Преимущества
  • Интерактивные вебинары и записи занятий
    Вебинары проходят в Zoom вы задаёте вопросы преподавателю, получаете ответы и общаетесь с однокурсниками. Каждый вебинар легко пересматривать в записи, даже если его пришлось пропустить.
  • Лучшие практики
    Вас ждет отдельный модуль, посвященный лучшим практикам разработки на Go. Вы сможете писать чистый и понятный код и научитесь работать с Git.
  • Инфраструктура для реальных проектов
    Обучение проходит в условиях, близких к коммерческой разработке. Вы будете работать на удаленном облачном кластере Kubernetes от нашего партнера Mail.ru Cloud Solutions.
  • Командная разработка
    Поучаствуете в командных проектах и научитесь работать по Agile. Познакомитесь с методологией DevOps и инструментами непрерывной интеграции, доставки и развертывания кода (CI/CD).
  • Доступ к сообществу GeekBrains
    Вы найдёте полезные контакты и единомышленников в вашем городе, сможете делиться опытом в базе знаний GeekBrains. Будете посещать закрытые митапы, хакатоны и другие онлайн и офлайнмероприятия как слушатели и спикеры.
Знания и навыки, которые приобретете
  • Разработка на языке Go
  • Проектирование микросервисной архитектуры веб-приложений
  • Разработка и конфигурация распределенных приложений для развертывания в Kubernetes-кластере
  • Использование реляционных и нереляционных баз данных
  • Написание поддерживаемого и тестируемого кода
  • Работа в кросс-функциональной команде
  • Понимание принципов CI/CD и опыт использования инструментов для реализации этих принципов
Инструменты и программы
  • Google Analytics
  • Яндекс Метрика
  • MyTarget
  • Vk
  • Instagram
  • YouTube
  • Telegram
  • Trends
  • Facebook Ads

Преподаватели

  • Елена Граховац

    Специализация Елены — бэкенд-разработка, SRE-практики, автоматизация инфраструктуры и процесса разработки. В GetYourGuide Елена руководит командой, которая занимается направлением Developer Experience. Кроме того, Елена активно делится знаниями и опытом в подкастах, на конференциях и в онлайн-курсах.

  • Дмитрий Шеламов

    Среди реализованных проектов Дмитрия — корпоративный мессенджер Amo и чат-модуль для amoCRM, высоконагруженный сервис рассылки сообщений Messaggio для Mixplat Processing и международная CPA-сеть для Dr.Cash.

  • Сергей Яныкин

    Руководит группой разработки на Golang и занимается проектирование архитектуры. До этого работал в OZON.ru старшим программистом. Опыт в IT — больше 11 лет.

  • Данила Фомин

    Окончил МИФИ. Больше двух лет работает в Mail.Ru Group. За это время создавал внутренние проекты на Python и Django, занимался поддержкой высоконагруженных проектов на Golang.

  • Маслов Алексей

    Занимается проверкой концепций и MVP. До этого был техническим директором в стартапе Spiking. Опыт в разработке — больше 10 лет.

  • Артемий Рябинков

    Пишет на Go с версии 1.5. Активный участник Go-сообщества и фанат PostgreSQL. Сейчас развивает инфраструктуру машинного обучения в Unity. До этого занимался разработкой Messenger и строил платформу для аренды недвижимости в Avito. Опыт работы в IT - больше 6 лет.

  • Егор Юдинцев

    Занимается бэкенд-разработкой веб-сервисов, до этого работал в «Островке»: разрабатывал интеграции, чтобы клиенты бронировали больше отелей. Опыт разработки на Go — 1,5 года.

  • Вячеслав Крюченко

    Участвовал в проектах Rush Royale, WorldAbove, Space Justice, HAWK: Freedom Squadron, «Пираты. Штурм небес», «Аллоды Онлайн». Опыт разработки на Go — 4 года.

  • Антон Кильчик

    Занимается инфраструктурными задачами, опыт разработки на Go — 5 лет. Раньше создавал бэкенд-сервисы для Облака Mail.Ru, затем был продуктовым разработчиком в «Озоне».

  • Роман Цованян

    Старший Архитектор автоматизации бизнес процессов. Более 30 лет опыта в IT, работает на языке Golang 6 лет.

  • Сергей Парамошкин

    Разрабатывает интеграционные модули, высоконагруженные прокси, корпоративный маркетплейс. Опыт разработки на Go — 6 лет, общий стаж в IT — 10 лет.