Психологический портрет программиста. |
Автор megabax | |
10.03.2013 г. | |
Психологический портрет программиста.Программисты отличаются от обычных людей. Некоторые считают их "не от мира сего", чуть ли не какими то инопланетянами. Так в чем же отличия программистов от обычных людей. 1. Программисты пожертвуют простотой ради контроля. Компьютерщики желают контролировать то, что их интересует. А интересует программистов сложные детерминированные системы. Люди тоже сложные, но их действия нелогичные и непредсказуемые, люди не ведут себя, как механизмы. За контроль всегда приходиться платить. Контроль все усложняет и на него приходиться затрачивать дополнительные усилия. Для программиста контроль - цель, а сложность - это просто цена, которую он за это платит. Для обычных людей цель – это простота, и отказ от контроля – цена, которую они готовы платить. В продуктах, основанных на программном обеспечении, контролем являются функции. К примеру, в Windows функция «Поиск файла» дает мне серьезный контроль над ходом работы. Я могу указать, в каких областях диска следует выполнять поиск, тип искомого файла, искать ли файл по имени или по содержимому и еще целый ряд параметров. С точки зрения программиста все это просто замечательно. Затратив дополнительные усилия и приобретя определенное понимание предмета, он получает возможность искать быстрее и эффективнее. Напротив, с точки зрения пользователя все не так радужно, поскольку ему приходится указывать область поиска, указывать тип искомого файла и еще метод поиска. 2. Программисты обменяют успех на понимание Кго нибудь из вас, разбирал в детстве часы, чтобы посмотреть, как они работают? Как правило, около двух трети дают утвердительный ответ. Но если потом спросить, из них удалось в ли вам конечном итоге собрать часы, то большинство ответит отрицательно. Если далее спросить: кто из вас считает этот эксперимент неудавшимся? Большая часть лишь усмехнется, осознав, что получили удовольствие от разрушения часового механизма. Хомо логикус желает понять, как работают часы, – такова его цель, и он вполне готов принести в жертву работающие часы, чтобы этой цели достигнуть. С другой стороны, хомо сапиенсу нравится, когда часы работают. Его цель состоит в том, чтобы узнать, который час, и взамен он отказывается от знания о том, что заставляет часы тикать. Обычные люди вполне согласны не иметь представления о работе предмета, даже если применяют предмет постоянно и никак иначе прожить не могут. Они считают, что интерфейсы, созданные по модели реализации, возлагают на них ненужное бремя понимания. Программистам подобное отношение кажется непостижимым. 3. Программисты сосредотачиваются на исключительных ситуациях В мире программного обеспечения, где преобладают точно сформулированные утверждения, даже маловероятные события попросту нельзя игнорировать. Программисты называют эти события с крайне низкой вероятностью «исключительными ситуациями». Наступление подобных событий маловероятно, но если их не предусмотреть, программа даст серьезный сбой, когда такое событие произойдет. Несмотря на низкую вероятность описываемых событий, за неподготовленность к оным приходится платить огромную цену. Таким образом, маловероятные события становятся для программистов вполне жизненными ситуациями. Тот факт, что граничные условия могут наступать лишь раз в 79 лет ежедневного применения программы, программиста совершенно не утешает. Что если этот Раз наступит завтра? Замечательный пример «щедрости в эгоизме», по Бронсону, – изобилие ненужных и нежелательных возможностей, появляющихся в результате возможностного мышления программистов. Они поставляют нам много такого, что нужно только им самим. Программисты шутят, что существует всего три числа: нуль, единица, бесконечность. В мире компьютерных вычислений она обретает смысл. В двоичном внутреннем мире компьютера процесс либо происходит, либо нет – это нуль или единица. Если какое-либо событие может случиться единожды, это означает, что оно может повториться бесконечное количество раз. 4. Программисты обладают гиперокнцентрацией. Хорошая и качественная работа над кодом требует очень высокой степени погруженности в код. Степень концентрации при работе программиста сравнима с работой на ядерной станции. Соответственно, всё это порождает повышенную раздраженность при прерывании данного процесса, что внешне воспринимается непосвященными людьми как «замороченность на работе» и т.п. Работа программиста чем то похожа на сон.
Продукт труда программиста это продукт сна - химера. Сновидение записанное
специальным языком и переданное электронному устройству для того чтобы
продолжаться там когда программист уже проснулся или просто сменил один сон на
другой. Если взять к примеру задачу нахождения пути выхода из лабиринта.
Программист в решении этой задачи не перст который ведёт воображаемую маленькую
заблудившуюся девочку незнакомой тропой к выходу. Он и не эта девочка тоже. И не
стены лабиринта. Он не выход который надо найти. Он всё это вместе разом. Для
решения задачи программисту приходится стать в своём сознании и лабиринтом, и
искомым выходом, и заблудившейся девочкой, и тем перстом что ведёт её куда-то, и
теми камушками которые она разбрасывает по дороге чтобы узнавать уже пройденные
места. Всё это как снится программисту во время работы. 5. Погруженность во внутренние образы и конструкции. Если обыватель видит на экране только наборы символов, то в
голове программиста этот код превращается в целые части мира. Как чтение книги
создает образы и переживания в человеке, так и код способен такое же делать с
программистом. Именно поэтому программисты «чувствуют» код, знают когда он
«красив», когда «грязен», будет ли он работать и т.д. С какой-то стороны хороший
программист сравним с писателем художественных произведений. В реальной жизни
это проявляется в чрезмерной погруженности внутрь себя, особенно если
программист пытается что-то понять. 6. Обостренное восприятие причинно-следственных связей. Для успешной работы программисту важно понимать структуру причинно-следственных связей: "что, почему и как происходит", а также "что произойдет, если что-то не произойдет как ожидалось". Всё это накладывает свой отпечаток и на мышление человека. То что не вызывает интереса для большинства людей, в программисте может порождать огромные потоки размышлений. 7. Привыкание к формализованной постановке задач. Так как программист должен создавать код, который должен работать ровно так, как это требуется для задачи, то привычка делать то, что было сказано, постепенно перетекает и в другие области жизни. Но так как в большинстве случаев социального взаимодействия имеет место невербальное восприятие, «угадывание» и «додумывание», то у программистов обостряется чувство конкретизации.
|
« След. | Пред. » |
---|