Не запоминай код.
Запоминай идеи.
Алгоритмы пугают, пока смотришь на код. Мы разбираем каждый до идеи, которую можно нарисовать на салфетке.
Сначала это просто шум.
Циклы, указатели, сто структур данных, O-нотация. Выучить всё наизусть невозможно — и, к счастью, не нужно.
Код — это форма.
Идея — это смысл.
За каждой конструкцией языка стоит одна мысль. Обычно её можно объяснить за минуту.
Мышление устроено как граф.
Любая задача сначала выглядит одинаково: условие и пустой редактор. Разница — в первом вопросе, который ты себе задашь.
Первые тридцать секунд.
- сразу писать код
- вспоминать похожую задачу
- зубрить шаблоны
- прочитать ограничения
- прикинуть брутфорс и сложность
- проверить идею на бумаге
Слева — вспоминаешь чужой код. Справа — думаешь над идеей. Весь курс — про правую колонку.
Каждый узел раскрывается в новый граф.
Внутри шесть больших областей: графы, динамика, жадные, деревья, бинарный поиск, математика. Похоже на оглавление учебника, только связи здесь важнее глав.
Одни и те же формы повсюду.
Вся динамика держится на двух наблюдениях: подзадачи повторяются, а большое решение собирается из маленьких. Увидел один раз — узнаёшь и в рюкзаке, и в редакционном расстоянии.
Самое интересное — между темами.
Дейкстра — это динамика поверх очереди с приоритетом. Жадный — ставка, которую ещё нужно доказать. В учебниках такие связи прячутся между строк, а решают задачи именно они.
Всё сходится в одну точку.
В какой-то момент новые задачи перестают быть новыми: ты узнаёшь в них куски карты, по которой уже ходил.
Учись не повторять код.
Учись видеть структуру.
Визуальные модели, короткие задачи, много практики. Без карточек для зубрёжки.