September 29th, 2013

добрый

Про "синдром третьего года вождения"

Давно хотел написать, пожалуй, время пришло.

В нашей реальности есть такой эффект, как "синдром третьего года вождения" (или второго, неважно) - это когда водитель, набравшись немного опыта, считает, что он опытный, всё умеет, всё знает, пальцы веером сопли пузырём. Такой водитель начинает ездить более небрежно, чем новичок, ну и такие водители чаще попадают в аварии, чем новички.

Есть ещё синдром "я двадцать лет за рулём", он отличается принципиально - синдром третьего года можно обозначить как "еду на рефлексах, но рефлексов ещё нет", синдром двадцати лет - "еду на рефлексах там, где надо ехать на мозгах".


Синдром третьего года так распространён в WoT, что я иногда называю его "синдром 53%" - игрок, который научился играть чуть выше среднего (то есть имеет стату 53%), очень часто считает, что понял игру.

А в IT очень распространена немного другая болезнь, "синдром песочницы", то есть неспособность человека понимать применимость выводов из своего опыта. Такой человек всегда как бы находится в своей уютненькой песочнице, не замечая, что песочница-то изменилась или что вообще он уже в соседней песочнице, с другими данными (а иногда и с другой аксиоматикой), и выводы из его опыта тут неприменимы (нуждаются в коррекции). Это очень близко к синдрому двадцати лет за рулём, однако отличается использованием рефлексов - в случае "синдрома песочницы" человек может и не на рефлексах переть, а включить мозг, но рассматривать ситуацию будто она в его песочнице происходит.


Все эти синдромы являются следствием в общем-то неплохого свойства человека - желанием сэкономить. Если мозг уже решал задачку однажды*, то зачем же её решать ещё раз? Программистам должно быть знакома техника мемоизации (http://en.wikipedia.org/wiki/Memoization), это очень близко**.

И программистам также должно быть понятны минусы и особенности мемоизации, то есть именно программисты должны быть хорошо готовы к детекту этих синдромов и к борьбе с ними.


И, собственно, почему я таки написал эту кучу бесполезных букв - БЛЯТЬ!!!! Ну как же так получается, что именно программисты ОЧЕНЬ подвержены всему этому говну?!

"у нас на заводе не было бумажных полотенец, значит, и вам они не нужны"





* на самом деле не однажды (мозг не оптимизирует редкие активности) но для данного поста это неважно.

** одно важное отличие - мозг не компьютер, и вместо таблицы имён функций у него матчинг по входным данным и телу, то есть даже если сама мемоизация проведена верно, то мозг может "перепутать функции", то есть решить, что задачка похожа на ту, решение которой у нас есть, и выдать решение. А задачка-то другая. Это и есть синдром двадцати лет за рулём. На самом деле синдром третьего года тоже отсюда же берётся (разница в количестве информации, её структуризации и в прокачанности матчинга, а механизмы-то те же).