Go PRO 2026/2027

Материал из Wiki - Факультет компьютерных наук
Перейти к навигации Перейти к поиску

Программа курса

Введение в язык Go. Описание API языка. 25 ключевых слов. Решение простейших задач
Типовая система и модель данных Go. Значения, zero value, структуры и память
Функции и методы. Управление поведением и областью ответственности. defer, panic, recover
Интерфейсы в Go. Контракты, зависимости и проектирование абстракций
Идиоматическое проектирование API в Go. Ошибки и характерные паттерны языка
Конкурентное программирование в Go. Горутины, каналы и синхронизация
Go Runtime и GMP-модель планировщика
context.Context и управление жизненным циклом приложения
Архитектура Go-приложений и проектирование пакетов
Тестирование и надёжность Go-приложений
Производительность Go-приложений. Память, аллокации и профилирование
Работа с базами данных и внешними ресурсами. Надёжность хранения данных и интеграций
Production-ready Go-приложения. CI/CD, релизы, Docker, Kubernetes и инфраструктура backend-сервисов

Материалы курса

  • [manytask]
  • [Ccылка на Latex с лекциями]
  • Канал по курсу внимание: вход по приглашению. за время работы на факультете происходят спам-атаки, вход нежелательных лиц и прочая гадость, которая мешает проводить курс. Поэтому, такие ограничения...
  • Ссылка на чат

Система оценки

Итоговая оценка:

           Oитог = 0,2 * ДЗ + 0,3 * Проект + 0,5 * Экзамен
  • ДЗ — еженедельные домашние задания в manytask. Выдается ДЗ на несколько задач (обычное небольшое, для закрепления материала и выработки навыков). Есть отсрочки (на человека максимум 7 дней за курс), можно скипнуть по болезни и решить позже, но главное решать его.
  • Проект — с темы Архитектура Go-приложений и проектирование пакетов начнем разработку проекта, при этом рядовых домашних заданий как было до этого не будет. Несколько недель будем по чек-листу будем вести разработку проекта. Оцениваться будет качество выполнение чек-листа и исправление ошибок.
  • Экзамен — по аналогии с техническим собеседованием

Экзамен

Предыстория

Как известно, в адекватной средней конторе имеется 2-3 собеседования которые из них:

  • Скрининг (технический или телефонный)
  • Техническое собеседование (как раз под тот формат что у нас и будет)
  • Архитектура (этот курс не про это, но концепции пройдем на парах когда приблизимся к темам ближайшие к ней)

и уже в конце знакомство с командой

Что мы не будем спрашивать

  • Глубокий расчет архитектуры (цена за аппаратуру за low-high burst)
  • Алгоритмы (курс тоже не про это)
  • Глубокую реализацию тех или иных вещей в языке (это неактуально нигде если вы не hardware-специалист и не работаете с железками и не выбиваете тысячные миллисекунды с запусков)

Что мы будем спрашивать

  • Устройство языка и его возможности (небольшие теор.вопросы которые встречаются во время собеседований)
  • БД (индексы, запросы, explain analize, подходы по построению читающих и пишущих запросов где 10M+ записей)
  • Задачи (проходим каждую лекцию / семинар, будет конспект с разборами -- по аналогии с ними будут на экзамене)

Оценка экзамена

 Oитог = 0,5 * Теор + 0,5 * Задача

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