# ПоиАИС Web-разработка: Зима-весна 2026 (Магистратура) - Golang

После курса для бакалавров, данный курс ориентируется на магистров той же славной кафедры ПОиАИС ППМ ВГУ.

В относительно коротком курсе планируется разобраться синтаксис и особенности использование Golang и некоторые алгоритмические задачи.

Основные ссылки

Ход курса

Дата занятия Домашнее задание
19.02.2026 Настроить среду разработки (определиться с местом запуска), разобраться с объявлением переменных, констант, определением просты пользовательских типов, понятиями модулей и пакетов, познакомиться с простыми типами данных (уроки с нулевого по 5.1)
26.02.2026 Изучить работу с указателями, массивами и срезами, позапускать код (уроки с 6ого по 8ой)
5.03.2026 (лекция переносится, но есть небольшое ДЗ) Изучить особенности работы с хэш-таблицами и управляющие конструкции, в т.ч. способы итерации по списочным структурам (уроки с 9ого по 12ый)
2.04.2026 Изучить темы "пустого интерфейса" и композиации интерфейсов, а также Разбор задачи про поиск пересений двух списков отрезков времени

.....и последующие лекции по теории и задачкам

Зачет:

Ожидается

  1. Знание теории по курсу Го (уроки с 1-ого по 20.6)
  2. Умение решать алгоритмические задачи подобные этому списку (8 задач на момент завершения курса)

Вопросы по теории Golang:

  1. Для каких целей проектировали Го? В чем особенности этого языка, к какому типу он относится
  2. Что такое пакеты? Что такое модули? Какие типы данных в Го вы знаете?
  3. Что такое указатели? Чем они в целом отличаются от ссылок? Каковы особенности работы с указателями в го?
  4. Массивы и срезы - какая разница? Отличие вместимости от длины, приведите примере переллокации памятки? В чем отличие передачи переменной в функцию по ссылки от варианта с указателем в Го с учетом возможных переаллокаций памяти?
  5. Особенности работы с циклами в Го, расскажите что знаете? приведите пример кода
  6. Что такое замыкания, приведите пример кода
  7. Отложенные выполнение через defer, приведите примеры. Что такое паника? Приведите пример кода восстановления после паники с помощью defer
  8. Структуры и методы - расскажите как это работает. Какие виды композации вы знаете - приведите примеры кода
  9. Что такое интерфейсы в Го. Приведите примеры кода с проверкой кода через switch. Расскажите про композицию интерфейсов, приведите примеры
  10. Что такое руны? Что под капотом у данного типа? Приведите пример кода - обход строки, получение конкретных символов без обхода
  11. Многопоточность

  12. Горутины - что это. Сколько минимум горутин в программе, Что такое проблема гонки данных (race condition). Синхронизация через WaitGroup. Что происходит побочными горутинами, если главная горутина завершилась раньше их?
  13. Каналы - что это такое. Чем буфурезированные отличаются от обычных? По какой логике они блокируют выполнение горутин? Состояние взаимоблокировки deadlock - расскажите что это
  14. Однонаправленные каналы, объявление типа и инициализация. Когда они используются на практике? Закрытие каналов - close() range()
  15. Как работает select для каналов?Синхронизация горутин через выбор первой завершенной операции - приведите примеры кода
  16. mutex Мьютексы что это и как они работают. Как они отслеживают работы с памятью? Чем RW мьютекс отливаются от обычного? Чем отличается метод RLock() от обычного Lock()? Приведите примеры

Key Words for FKN + antitotal forum (CS VSU):