--- Тип: Книга Статус: Запланировано Название: Ум программиста. Как понять и осмыслить любой код Автор: - Фелин Херманс Количество страниц: 272 Прогресс: 0 Формат: Электронная Обложка: Библиотека/Книги/covers/um-programmista.jpg Начата: Закончена: Оценка: Сложность: Теги: - когнитивистика - чтение_кода - программирование - продуктивность - обучение Категории: - Программирование - Профессиональный рост Источник: Ссылка: --- # Ум программиста. Как понять и осмыслить любой код ![[covers/um-programmista.jpg]] ## 📖 О книге Книга Фелин Херманс — доцента Лейденского университета — применяет когнитивную науку к повседневной работе программиста. Автор объясняет, как мозг читает и понимает код, почему возникает замешательство при работе с чужим кодом и как снизить когнитивную нагрузку. Охватывает темы именования переменных, изучения новых языков программирования, парного программирования и поддержания кода в читаемом состоянии. ## 🧠 Ключевые идеи - **Три типа памяти при чтении кода**: долговременная (хранилище знаний), кратковременная (временный буфер ~7 элементов) и рабочая (обработка информации) — понимание их работы помогает писать более понятный код - **Три источника замешательства**: нехватка фундаментальных знаний, нехватка нужной информации в моменте и недостаток вычислительных ресурсов мозга — каждый требует разного решения - **60% времени уходит на понимание кода**: большинство рабочего времени программист читает, а не пишет — это меняет приоритеты при проектировании читаемости - **11 ролей переменных**: классификация (счётчик, флаг, бродяга, контейнер и др.) помогает давать более точные имена и лучше понимать чужой код - **Когнитивная нагрузка и стиль кода**: camelCase эффективнее snake_case при поиске на 51,5%; интервальное повторение лучше всего закрепляет синтаксис новых языков ## 💬 Важные цитаты - «Замешательство — неотъемлемая часть программирования» - «60% времени программистов тратится на понимание кода, а не на его написание» - «Программы должны писаться для того, чтобы их читали люди» ## 💡 Как применить в моих проектах ## 🔗 Связанные заметки - [[Чистый код]] - [[Совершенный код]] - [[Рефакторинг кода на JavaScript]]