Если с книгами, которые посвящены какому-то языку, технологии или подхожу к разработке, вроде DDD или TDD, более-менее понятно, то книги с такими названиями вроде текущей - могут быть сюрпризы. Причем, сюрпризы не всегда бывают приятными :) Но, у любой медали есть две стороны, так и в этой книге одни из приятных бонусов - это большое количество ссылок на какие-то работы, доклады и прочее.
Кратко резюмировать материал можно так: автор на протяжении всей книги рассматривает программирование через призму когнитивных процессов. Она разделила память на несколько разделов и рассматривает все процессы с точки зрения того, как эти разделы между собой взаимодействуют. Возможно, кто-то найдет для себя эту идею интересной, но я - не нашел. Мало того, очень много мне кажется притянутым за уши, названия заголовков не соответствуют содержимому и все такое. Уже после прочтения обратил внимание на то, что не известно какие должности занимают люди, которые публиковали столько восторженные резюме, как и их опыт :)
Иногда мне кажется, что автор слишком радикальна. Например, она практически прямым текстом говорит о том, что для изучения программирования математика не так важна, как важны навыки изучения естественных языков. Возможно, что когда речь идет о втором и следующих языках программирования высокого уровня - поможет. Но, как поможет навыки изучения естественного языка, когда речь зайдет о том же APL с его зубодробительными конструкциями вида:
Q←{1≥≢⍵:⍵ ⋄ S←{⍺⌿⍨⍺ ⍺⍺ ⍵} ⋄ ⍵((∇<S)⍪=S⍪(∇>S))⍵⌷⍨?≢⍵}
:) Понятно, что это крайность1, но по середине между APL и Perl, на котором даже писали стихи, есть пропасть других языков…
Хотя, на протяжении всей книги видно, что автор брала идеи о том, как эффективно читать код из работ, которые посвящены тому, как эффективно читать в принципе. По этому, такие предположения не удивительны. Вообще, попытка объединить опыт чтения с чтением кода - это интересная. Главное, сильно не увлекаться.
При этом некоторые методы мне кажутся откровенно глупыми. Например, есть такой метод изучения иностранных языков при помощи карточек, когда на одной стороне карточки изображают предмет или действие, а на другой стороне - название на изучаемом языке. Как это можно совместить с изучением компьютерных языков - совершенно не понятно.
Да и в целом, конечно, часть материала выглядит какой-то… наивной, что ли, всякие ментальные модели, какие-то условные машины, Scratch. По крайней мере именно так это выглядит после небольшого знакомства с параллельным программированием. Книга явно рассчитана на молодых и не опытных. Но блин, если человек молодой и не опытный, то зачем ему забивать себе голову всеми этими ментальными моделями? Они же только усложняют мир, а не упрощают его.
При этом всём то, что касается имен переменных не вызывает вопросов. Может быть, по тому что автор опирается на хорошие работы, а может быть по тому, что со временем к нам всем таки пришло понимание того, насколько важны эти имена, не знаю. При это есть классное исследование, которое лишний раз доказывает, что программирование для на всё еще сродни магии: из 350 человек, которым давали задание придумать имена переменных - эти самые имена совпали только у 7%. То есть, у нас нет общей базы, мы все на разных волнах.
Так или иначе, но большую часть материала, который посвящен переменным, “запахам кода” и прочим проблемам, лучше изучать по работам того же Фаулера, мне кажется. Так как в книге проводится попытка обобщения и вся суть излагается кратко. А там где кратко, есть вероятность не верно понять о чём вообще шла речь в оригинале.
Всё таки, БХВ используют какой-то странный шрифт, который вместе с маленькими полями, портит всё впечатление. Да и бумага, откровенно говоря, не белая… С другой стороны, то же “Параллельное программирование – так ли это сложно?” вообще на желтой бумаге напечатана, так что терпимо.
Автор(ы):
- Felienne Hermans
Год издания: 2023
Количество страниц: 272
Оценка: 2/5
Издатель: BHV
Ссылка на страницу книги на сайте издательства: https://bhv.ru/product/um-programmista-kak-ponyat-i-osmyslit-lyuboj-kod/
Оригинальное название: The Programmer’s Brain: What every programmer needs to know about cognition
Год издания оригинала: 2021
-
Надо понимать, что код без подсветки прочитать было бы еще сложнее. ↩︎