Как учить программирование — метод автора
Нельзя научить сразу правильно. Сначала плохо, потом чуть лучше, чуть лучше. Учить нужно не парадигме, а навыку мышления и оценки.
Суть
Программирование молодое (~80 лет), за это время не сложились единые методы обучения. У всех языков и стран разные подходы. Главное — не учить «правильно» с первого раза, а строить навык дифференциации решений.
Главный принцип
«Учить не парадигмой, а навыком мышления и оценки.»
Декарт для программистов
- Открыть «Рассуждение о методе»
- В голове заменять «математика»/«наука» на «программирование»
- Классические методы мышления работают
- Декомпозиция, абстракция, последовательность — оттуда
Программирование как лингвистика
- Не математика и не парадигмы
- Особая форма общения друг с другом
- Нужны Хомский и Витгенштейн (а не Дейкстра)
- Культура мышления через язык
- В философии этого нет — нужно самим
Топология вместо диффуров
- Диффуры на практике не пригодятся 99% разработчиков
- Топология помогает понять зацепление модулей
- Теория графов — для связности кода
- Нужен инструмент мышления каждый день
Роль преподавателя
- Важнее программы — плохой препод убьёт любую программу
- Главное — не убить интерес
- На первом курсе подавай предмет с любовью
- На третий раз чтения предмета уже хорошо
- Не читать один предмет больше 3 раз — оно мертвеет
Метод обучения
- Подбадривать, не давить — атака → защита плохого кода
- Самокритика автора — лучше внешней критики
- Хвалить, но подводить к выводам — не льстить
- Личный пример — критичен к своему коду
- Доброжелателен к чужому коду (закон Постела)
Парадокс критичности
- Слишком сильная самокритика → бесконечный рефакторинг
- «Теперь знаю как лучше» → начать с нуля
- Колебания должны сходиться — амплитуда уменьшается
- Это переходный процесс
Цикл обучения по автору
- Получить навык писать «как-то»
- Самокритика — увидеть проблему
- Переосмыслить, написать чуть лучше
- Цикл повторяется
- Каждые 3-4 года — полный пересмотр
Где и чему учить (предложение а)
- Программная инженерия — общие навыки, не язык
- Парадигмы программирования — несколько, для дифференциации
- Структуры данных и алгоритмы — обзорно, не зубрить
- Computer Science — паттерны, SOLID, GRASP, DDD
- Архитектура — слои, абстракции, моделирование
- Сети и протоколы — фундамент
- Базы данных — моделирование, не SQL-синтаксис
Антипаттерны обучения
- Учить «правильно» сразу
- Одна парадигма как «единственно верная»
- Зубрить термины и определения
- Давить и унижать («негативная фиксация»)
- Учить только под собес
- Не обновлять знания
🎓 Источники
- 🎓 [🧑🎓 Как научить программиста включать мозг] + Брагилевский · 2025-11-27 · YouTube
- Тезисы: нельзя сразу правильно; Декарт через замену слов; топология вместо диффуров; программирование как лингвистика; роль преподавателя
- 🎓 [💡 Про педагогику и образование] · 2025-02-21 · YouTube
- Тезисы: подбадривать; самокритика > внешняя; парадокс критичности; сходящийся процесс
- 🎓 [🎈 Программирование — это удовольствие] · 2025-12-02 · YouTube
- Тезисы: культура мышления; токсичность изживать; негативная фиксация
- 🎓 [🎧 Карта специальности инженер-программист] · 2018-09-20 · YouTube