Введение в психологию программирования
Программы нельзя производить на сборочном конвейере, как автомобили, нельзя и измерить производительность числом строк или команд, написанных за час. Понимание того, что для проектирования и разработки программного обеспечения требуются высокий интеллект и мастерство, позволит администраторам создать особые условия программистам с тем, чтобы обеспечить качество программ и успешную работу пользователей. Более глубокое понимание мыслительных способностей, методов принятия решений, возможностей переработки информации и индивидуальных особенностей людей внесет свой вклад в совершенствование стратегий управления, оценок производительности программных средств и методов кодирования.
Науку, применяющую методы экспериментальной психологии и концепции психологии мышления при исследовании проблем вычислительной математики и информатики, психолог фирмы General Electric Том Лав назвал психологией программирования.
Б. Шнейдерман определяет ее следующим образом.
Психология программирования - это наука о действиях человека, работающего с вычислительными и информационными системами.
С помощью методов экспериментальной психологии, анализа процессов мышления и восприятия, методов социальной индивидуальной и производственной психологии, теории психолингвистики могут быть углублены знания о возможностях и способностях человека как создателя вычислительных и информационных систем.
Психология программирования - это новый “путь познания”, дополняющий современную практику исследований и разработок учетом человеческого фактора.
Специалисты по психологии программирования сосредоточивают свое внимание на таких аспектах, связанных с участием человека, как:
В самом широком смысле предметом исследования психологии программирования являются всевозможные способы использования человеком ЭВМ.
Целью психологии программирования является облегчение использования вычислительных машин (компьютеров) человеком.
То есть, применяя методы и возможности психологии, можно облегчить жизнь программистам и пользователям компьютеров, сделать их работу более продуктивной и более приятной.
Эта цель может быть достигнута только при понимании возможностей восприятия человека, его способности перерабатывать информацию и принимать решение, при знании стилей мышления и особенностей личности. Эти характеристики должны анализироваться в процессе его работы с учетом накладываемых компьютером ограничений.
Использование психологического подхода позволит добиться улучшения в использовании компьютеров вообще и, в частности, положительно повлияет на
Способности и возможности программиста
Трудно обеспечить надежную оценку возможностей программиста, а интуиция руководителей не всегда соответствует действительности. Исследователи обнаружили, что различие в производительности программистов может достигать отношения 5 к 1 и даже 100 к 1. Это значит, что программисты одного и того же уровня, с одинаковой подготовкой и близкими зарплатами могут затратить на реализацию одного и того же проекта от одной до ста недель. Такое потрясающее непостоянство затрудняет планирование и проектирование разработки программ.
Программирование - это не простой и не однородный вид деятельности. Этим термином объединяется множество самых разнообразных работ.
Большинство профессиональных программистов занимается проектированием, составлением, отладкой, тестированием, документированием, сопровождением и модификацией программ, написанных на языках высокого уровня или на языке ассемблера. Системные программисты работают над операционными системами, компиляторами и утилитами, которые используются прикладными программистами для решения пользовательских задач. К прикладным программам относятся программы автоматизации банковских операций, бухгалтерского учета, взимания налогов, заказа билетов, учета кадров, сбора данных, статистического анализа, подготовки отчетов, редактирования текстовой информации, издательской деятельности, системы оперативного учета и управления, поисковые системы и многие другие.
На каждого профессионального программиста приходится, вероятно, десять программистов от случая к случаю, которые пишут программы для научных исследований, инженерных разработок, исследования рынка, коммерческих приложений и т.д. И, наконец, быстро растет число программистов-любителей, пишущих небольшие программы коммерческого назначения, для личных или домашних расчетов.
Особенности профессии программиста
"Программирование становится массовой профессией. Однако надо иметь в виду, что сейчас это, пожалуй, самая трудная из всех массовых профессий, причем, к сожалению, эта трудность не признана в должной мере.
Трудность заключается в том, что именно программисты непосредственно упираются в пределы человеческого познания в виде алгоритмически неразрешимых проблем и глубоких тайн работы головного мозга.
Трудность состоит в том, что собственный стек программиста должен быть не в 5—6 позиций глубины, как это обнаружили психологи у среднего человека, а той же глубины, что и стек в его очередной задаче, подлежащей программированию, плюс еще две–три позиции.
Трудность также и в том, что программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все, что угодно, из нуля и единицы. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста. А кроме того, программист должен иметь вкус к коллективной работе, понимать интересы пользователя и многое другое.
В работе эта трудность может быть преодолена только путем большого эмоционального напряжения, требующего от программиста особого самосознания и внутренней позитивной установки. Понимание этой установки необходимо для тех, кто управляет программистами, и в особенности для тех, кто их воспитывает и обучает
" [2].Литература