Алгоритмы и лайвкодинг

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

  1. 1.1 Теория: сложность и структуры данных

    Сравнишь временную и пространственную сложность типичных структур и проверишь бинарный поиск на границах. Разберёшь, когда слайс, map, heap или дерево подходят под операции задачи.

  2. 1.2 Типовые задачи easy / easy-medium

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

  3. 1.3 Конкурентный лайвкодинг на Go

    Спроектируешь worker pool и fan-in с явным владельцем каждого канала. Проверишь отмену context, передачу ошибок и случай, когда потребитель завершился раньше производителя.

  4. 1.4 Задачи «что выведет код»

    Разберёшь короткие фрагменты Go по времени вычисления, копированию значений и общим ссылкам. Отделишь гарантированный результат от поведения, которое язык оставляет недетерминированным.