The Programmer's Brain: What every programmer needs to know about cognition
Вчера дочитал эту очень интересную книгу Felienne Hermans, в которой она рассказывает о том, как работает наш мозг и объясняет как это может помочь нам стать лучше в разработке программного обеспечения и не только:) В книге четыре части:
- On reading code better - читать код нам призодится чаще, чем писать его, а учат этому мало, поэтому автор начинает с исправления этой несправедливости. Именно здесь автор рассказывает про модель работы мозга с STM (short term memory), LTM (long term memory) и working memory. Если позволить себе метафору, то STM похож на оперативную память и вмещает порядка 2-6 элементов, LTM похож на долговренную память типа SSD и не сильно лимитирован по времени, а working memory напоминает процессор и используется для cpu intensive операций:) Дальше эта модель используется по всей книге и обрастает подробностями.
- On thinking about code - тут уделяется много внимания ментальным моделям и полезным абстракциям, их нарабатыванию, использованию и обновлению:)
- On writing better code - здесь говорится про вопросы наименования, как снижать когнитивную нагрузку и улучшать свои навыки решения проблем
- On collaborating on code - тут автор рассказывает про разные активности во время работы с кодом (searching, comprehension, transciption, incrementation, exploration), как эти активности нагружают наши STM, LTM и working memeory. А дальше про то, как дизайнить и работать с большими системами и анализировать их качество с точки зрения cognitive dimensions. Ну и заканчивает автор рассказом про то, как онбордить новых разработчиков.
В книге обозревается очень многих научных исследований на тему сознания, памяти, решения задач. Автор делает transfer learning и объясняет как эти исследования работают в разработке.
P.S. Доклады автора на схожую тему
- "The Programmer's Brain" на QCon Plus November 2021
- Про язык Hedy для обучения детей программированию
- "How to Read Complex Code"
#Learning #Software #Brain