OberonCore
https://forum.oberoncore.ru/

Психология программиста
https://forum.oberoncore.ru/viewtopic.php?f=57&t=3859
Страница 1 из 2

Автор:  Валерий Лаптев [ Вторник, 28 Февраль, 2012 09:34 ]
Заголовок сообщения:  Психология программиста

Давно хотел пообсуждать эту тему.
Боб Мартин в последней книжке: http://www.ozon.ru/context/detail/id/7360633/
пишет:
Цитата:
Видите ли, программисты обычно бывают самонадеянными эгоцентричными интравертами

Это он попал в самую точку! Во всяком случае в нашем с ним поколении программисты были именно такими.
Контуперный гений = самонадеянный эгоцентричный интроверт ?
Хотя сейчас меня воспринимают психологи как экстраверта. Очевидно, сказывается почти 20 лет преподавания... :)
Но они ошибаются. Я как был интровертом, так им и остался.
Ибо предпочитаю общение с компутером, а не с людьми... :)

Еще я как-то сформулировал обязательные качества программиста:
1. Программисты — люди повышенной честности. И профессия еще усугубляет это качество. Ибо машину не обманешь: что написал, то и получил...
Более того, за многие годы преподавания убедился: если студень пытается словчить на лабораторных и/или зачете-экзамене — из него программиста не получится... Жизнь подтверждает: такие пацаны уходят в другие области. Часто в предприниматели...
2. Программисты — клинические оптимисты! Без оптимизма невозможно отлаживать программы. Программист всегда уверен, что программа вот сейчас заработает. Вот уже одна маленькая последняя ошибка осталась...
Пессимисты в нашей профессии плохо приживаются. Собственно, мне и не попадалось таких...
3. Программисты — супернастойчивые люди. Додолбить программу до рабочего состояния — это надо быть очень упертым. Опять же, если у человека это качество отсутствует, то программист из него не получится.
4. Программист естественно должен обладать аналитическим складом ума. Ибо требуется много анализировать: и предметную область, и поведение программы.
5. Для программиста внутренняя мотивация важнее внешней. Люди, у которых внешняя мотивация (карьера, заработки...) превалирует — со временем уходят из программирования в манагеры-предприниматели-руководители...

Поделитесь своими наблюдениями.

Автор:  Евгений Темиргалеев [ Вторник, 28 Февраль, 2012 10:20 ]
Заголовок сообщения:  Re: Психология программиста

Валерий Лаптев писал(а):
Еще я как-то сформулировал обязательные качества программиста:
Наверное, стоит уточнить, что Вы постарались выделить качества, программиста "по призванию", но не программиста по должности.

Одно общее замечание у меня есть: на мой взгляд, у Вас смешались обще-нравственные категории и "программисто-специфичные". Первые справедливы для всех людей в любых сферах жизни, в частности, в работе. Например,
Валерий Лаптев писал(а):
5. Для программиста внутренняя мотивация важнее внешней. Люди, у которых внешняя мотивация (карьера, заработки...) превалирует — со временем уходят...
это можно сказать про любого честного работника, выполняющего свои обязанности "не за страх, а за совесть". Внутренняя мотивация (нравственные установки) и внешняя (кнут и пряник). Когда мотивация внешняя ("приматическая", скотская), то естественным образом происходит погоня "за бананом" в виде более тонкого кнута и крупного пряника.

Ко вторым относятся особенности человека, способствующие тому, что эта работа будет ему (внутренне) нравится. Сюда бы я отнёс, пожалуй, только
Валерий Лаптев писал(а):
4. Программист естественно должен обладать аналитическим складом ума. Ибо требуется много анализировать: и предметную область, и поведение программы.
и поставил бы вопрос: стоит ли следовать сложившейся (в силу специфичных обстоятельств) "контуперно-генийной" традиции выделения программистов? Мне кажется, что есть более общие категории, соответствующие специфике работы (инженер, учёный и пр.), только для которых имеет смысл выделять особенности (более детальное разбиение на профессии просто породит классы эквивалентности).

Автор:  Axcel [ Вторник, 28 Февраль, 2012 12:02 ]
Заголовок сообщения:  Re: Психология программиста

Насчет аналитического склада ума я, пожалуй, не в полне согласен. Я, например, слабый аналитик, нет ну если сравнивать с уровнем современного среднего студента вполне себе ничего, но я то знаю... Выезжаю за счет погружения. Это похоже на медитацию, переходишь в какое-то другое пространство, где задача приобретает объемность, цвет, ее (мысленно) можно буквально потрогать руками, повертеть, возникают почти эмоции "в эту дырку лезть не стоит" , а здесь "лепота". Интересно я один такой? Не думаю.

По поводу "честности" здесь скорее атрофирование некторых социальных навыков из-за упорной "интравертной" работы :) .

Автор:  Валерий Лаптев [ Вторник, 28 Февраль, 2012 13:42 ]
Заголовок сообщения:  Re: Психология программиста

1. Да. конечно, я имею ввиду программиста по призванию. Не представляю себе, как можно вообще жить, не занимаясь любимым делом. Это же УЖОС!!!, если 40 лет человек вынужден делать то, что ему не нравится, или к чему он равнодушен.
2. Я давно пришел к выводу, что общечеловеческие и профессиональные качества неразделимы. Вот от женщин часто слышал фразы "как человек...", как мужчина...", "как профи..."... И мне всегда было смешно, так как нельзя в человеке от сих до сих считать человеческие качества, а вот от сих до сих - профессиональные.
Однажды сижу за компом. Женщина за соседним столом заводит разговор о "личной жизни". Я ей так и сказал: хочешь участвовать в МОЕЙ личной жизни - садись рядом. Это - моя личная жизнь. Хоть дома, хоть на работе, хоть где.
Если человек равнодушен к делу, которое делает, то профессионал из него очень плохой. Исключения - очень редки, да я их и не знаю... :)
3. О необходимости аналитичности ума. Во-первых, на мой взгляд - это воспитывается. То есть, программист может этому научиться. Во-вторых, "погружение" в задачу - да, в молодости тоже такое было. Но и об этом пишет Боб Мартин в той же книжке. У него есть глава, которая называется "Зона потока". Однозначный совет: Избегайте зоны! В настоящее время я склонен с ним согласиться. В программировании гораздо важнее простая методичная кропотливая работа, а не Зона.

Учитывая опыт и собственный и других программистов, могу сказать, что в молодости подобное состояние действительно кажется совершенно суперским. Ты как бы видишь программу с высоты птичьего полета. Летишь над программой и мгновенно видишь ошибку, из-за которой программа вылетела.

Во время отладки это помогало.
Но в других этапах разработки зоны надо избегать.

Однако Мартин делает оговорку: Вы должны находиться в Зоне во время тренировок!. Но никогда во время профессиональной работы.
Он разделяет эти два вида деятельности.
У нас, конечно, спошь и рядом на работе тренируются... :)

Автор:  Axcel [ Вторник, 28 Февраль, 2012 15:46 ]
Заголовок сообщения:  Re: Психология программиста

Боюсь без умения работать в "зоне" я буду выглядеть очень заурядно. Вообще, по моему, программисту одиночке без "зоны" никак. Но если под другими этапами понимать работу с документами (описания, отчеты, инженерные записки, ТЗ т.д.), то да, тут аналитические способности (которые я всю жизнь развивал :) ) самое то.

Автор:  Info21 [ Вторник, 28 Февраль, 2012 17:09 ]
Заголовок сообщения:  Re: Психология программиста

Евгений Темиргалеев писал(а):
мотивация внешняя ("приматическая", скотская)
А вот не надо.

"приматическая" не значит ни внешняя, ни скотская.

Это значит простейшим образом завязанная на комбинаторный механизм доставания конкретно видимых "бананов".

99.9% (цифра метафорическая, т.е. львиная-прельвиная доля) всей активности человечества не выходит за пределы приматического.

Автор:  ilovb [ Вторник, 28 Февраль, 2012 18:41 ]
Заголовок сообщения:  Re: Психология программиста

Я бы программистов перед тем как говорить о их психологии разделил на категории (ИМХО разумеется)
1. Штатный программист. Одна организация. Фиксированный набор задач. (т.е. который выполняет задачи для своей конторы)
2. Программист в компании-разработчике/внедренце (как я например). Много различных клиентов, много различных и нестандартных задач.
3. Программист в компании-разработчике не занимающейся внедрениями. Т.е. выпускают конечный продукт.
4. Фрилансер
5. Любители

Во всех этих 5 категориях психология сильно различается. Могу сказать что у нас (2) интроверт просто не выживет. А вот в 1 категории интровертов много.
Я сам еще в школе считал себя интровертом. Сейчас любому человеку, знакомому со мной сказать, что я интроверт, то он наверно воспримет это как шутку. :D

Ну и вообще 1 и 2 категория очень сильно отличаются друг от друга. Разная способность учиться, разная способность решать нестандартные задачи, разная способность находить подход к людям и т.д. и т.п.

Про 3 не знаю. Я в таких компаниях не работал.
Фрилансер-интроверт тоже не выживет. Ему вообще нужно много качеств нестандартных для кодера.
А вот среди любителей интровертов наверно больше всего.

Насчет оптимистичности. Даже не знаю. За собой заметил, что с опытом все больше развивается критическое мышление. И подход к решению задач конечно меняется

Насчет суперностайчивости.... Я бы это лучше назвал умением доводить начатое до конца. Пусть задача даже архисложная, все равно нужно преодолевать психологический барьер и грызть задачу. Если не можешь - ты не кодер. :twisted:

Насчет мотивации... Вроде так и есть. Могу только добавить что люди с внешней мотивацией обычно злостные говнокодеры :)

Вот еще в тему:
http://habrahabr.ru/blogs/hr/138692/

Автор:  albobin [ Среда, 29 Февраль, 2012 08:15 ]
Заголовок сообщения:  Re: Психология программиста

ilovb писал(а):
Я бы программистов перед тем как говорить о их психологии разделил на категории (ИМХО разумеется)
1. Штатный программист. Одна организация. Фиксированный набор задач. (т.е. который выполняет задачи для своей конторы)
2. Программист в компании-разработчике/внедренце (как я например). Много различных клиентов, много различных и нестандартных задач.
3. ...
...

Я так понимаю, что это:
ilovb писал(а):
Ну и вообще 1 и 2 категория очень сильно отличаются друг от друга. Разная способность учиться, разная способность решать нестандартные задачи, разная способность находить подход к людям и т.д. и т.п.

было выведено из своего опыта, судя по:
ilovb писал(а):
Про 3 не знаю. Я в таких компаниях не работал.


Вот обобщать на основании единичного опыта - это проявление "психологии программиста" или конкретная индивидуальная черта? :)
Непонятно также, что такое в п.1 "Фиксированный набор задач", а в п.2 - "много различных и нестандартных задач".
Вот если компания-разработчик делает решения на платформе 1-С для многих заказчиков - это и есть "много различных и нестандартных задач" ? :)
Можно ведь предположить, что вот как раз штатному программисту из п.1 и приходится решать "много различных и нестандартных задач ",
а в компании-разработчике благодаря разделению труда и внутренней специализации как раз наоборот.

Автор:  ilovb [ Среда, 29 Февраль, 2012 08:30 ]
Заголовок сообщения:  Re: Психология программиста

albobin писал(а):
Вот обобщать на основании единичного опыта - это проявление "психологии программиста" или конкретная индивидуальная черта? :)
Непонятно также, что такое в п.1 "Фиксированный набор задач", а в п.2 - "много различных и нестандартных задач".
Вот если компания-разработчик делает решения на платформе 1-С для многих заказчиков - это и есть "много различных и нестандартных задач" ? :)
Можно ведь предположить, что вот как раз штатному программисту из п.1 и приходится решать "много различных и нестандартных задач ",
а в компании-разработчике благодаря разделению труда и внутренней специализации как раз наоборот.


Что не понятного? Если вы для одной конторы (например Торговой) для одних и тех же людей код пишите, то наверно вы будете решать только фиксированный набор задач связанный с деятельностью этой конторы. Так?

А в компании которая обслуживает под сотню самых разнообразных клиентов работа должна быть несколько пестрее разнообразием. Так?

Что тут может быт не понятного?

Цитата:
внутренней специализации

Ну да. Я например специализирован на кодинге... Но решаю то я любые задачи для любого из наших клиентов.

И обратите внимание что во 2 пункте компания-внедренец

Автор:  albobin [ Среда, 29 Февраль, 2012 08:36 ]
Заголовок сообщения:  Re: Психология программиста

ilovb писал(а):
Что не понятного? Если вы для одной конторы (например Торговой) для одних и тех же людей код пишите, то наверно вы будете решать только фиксированный набор задач связанный с деятельностью этой конторы. Так?

А в компании которая обслуживает под сотню самых разнообразных клиентов работа должна быть несколько пестрее разнообразием. Так?

Что тут может быт не понятного?

Сотня разнообразных - это в смысле сотня "Торговых" клиентов c разными названиями? :)
Я утрирую, конечно, но класс задач -то наверное один и платформа одна.

Автор:  Валерий Лаптев [ Среда, 29 Февраль, 2012 10:17 ]
Заголовок сообщения:  Re: Психология программиста

1. Штатный программист. В советское время поработал много в подобных конторах. Справлялся.
Но становилось как-то скучно, и я уходил на новое место. Там или новые задачи, и/или новая платформа. Которую и изучал в процессе работы.
2. В СССР не помню подобных контор-внедренцев ПО. Или я забыл ? Внедренцы железа - были. Сейчас подобных контор море. Особенно в области бухгалтерии на 1С. У нас в Астрахани - Пилот, где многие наши выпускники работают.
Или в Москве - там системы типа SAP/3 внедряют.
Про себя могу сказать, что мне подобные задачи просто неинтересны.
3. Вы забыли, что были конторы, которые выполняли для некоей конторы конкретную разработку. Договор. Мне довелось поработать в 80-е годы - делали разработку для НПО Аврора, сидючи в Ташкенте. Это было лучшее время моей жизни. Самые интересные договора.
4. Ну, типа фрилансера пришлось попробовать в пору кооперативов. Но работы были исключительно по написанию зарплаты. После этого я поклялся никогда не заниматься бухгалтерией... :)
Ну, и любителем пришлось поработать. И сейчас работаю.

Анализируя свой опыт, могу сказать, что моя самая большая составляющая мотивации - чтобы мне было интересно.
Материальные стимулы сейчас уже вообще не играют никакой роли.
Вот в 80-е годы как раз писали операционную систему на бортовую ось.
Но больше подобной работой я заниматься не хочу - не интересно. Я там уже все прошел.
Или вот задачи асу и особенно зарплата... :)
В АСУ работал, пока там было для меня что-то новенькое: языки, системы, задачи. Потом - перестал..
Стимул заняться бухгалтерией первоначально был материальный.
Но его хватило ненадолго... :)

Автор:  Madzi [ Среда, 29 Февраль, 2012 16:13 ]
Заголовок сообщения:  Re: Психология программиста

В рамках психологической разрядки портрет программиста.

Автор:  Peter Almazov [ Среда, 29 Февраль, 2012 17:44 ]
Заголовок сообщения:  Re: Психология программиста

Вот свежак от более взрослых http://habrahabr.ru/blogs/hr/138912/

Автор:  Валерий Лаптев [ Среда, 29 Февраль, 2012 18:23 ]
Заголовок сообщения:  Re: Психология программиста

Peter Almazov писал(а):
Вот свежак от более взрослых http://habrahabr.ru/blogs/hr/138912/

Мне кажется, что особенности, там перечисленные, присущи программистам изначально. И конечно, усугубляются с течением времени. Я - типичный программист своего времени, поэтому напишу относительно себя

Цитата:
Гиперконцентрация

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

Цитата:
Погруженность во внутренние образы и конструкции

Цитата:
Не менее сложные конструкции возникают и в процессе профессиональной работы программиста. Данный эффект называется образно-чувственным конструированием. Если обыватель видит на экране только наборы символов, то в голове программиста этот код превращается в целые части мира. Как чтение книги создает образы и переживания в человеке, так и код способен такое же делать с программистом. Именно поэтому программисты «чувствуют» код, знают когда он «красив», когда «грязен», будет ли он работать и т.д. С какой-то стороны хороший программист сравним с писателем художественных произведений.

Это уже профессионально-приобретенное. Ибо изначально программист не знает, что такое "красиво" в коде.

Цитата:
Низкий уровень социального взаимодействия и его разнообразия в повседневной работе

А вот это как раз та самая интровертность. Это изначально в моем (и Боба Мартина) поколении было...

Цитата:
Обостренное восприятие причинно-следственных связей

И без этого программистами не становятся.
То есть - изначально в человеке должно это быть.
Цитата:
Привыкание к формализованной постановке задач

Изначально этого точно нет.
Но если появилось - это реальная профессиональная деформация.
Я однако избежал... :)

Цитата:
Жертвы «инженерного-гламура»

Ну, это не программистское качество. Кто изначально подвержен гламуру, тот в любой предметной области найдет "гламур".

Автор:  ilovb [ Четверг, 01 Март, 2012 09:21 ]
Заголовок сообщения:  Re: Психология программиста

albobin писал(а):
Сотня разнообразных - это в смысле сотня "Торговых" клиентов c разными названиями? :)
Я утрирую, конечно, но класс задач -то наверное один и платформа одна.


Нет. Сотня - это в смысле сотня разных клиентов с разными производствами и разными задачами.
Автоматизировать приборостроительный завод и биокомбинат - это совершенно разные задачи.
Каждое крупное предприятие - это как маленькая страна со своими тараканами, законами и психологией. Даже два торговых холдинга могут отличаться как небо и земля.
Так как торговать например автомобилями и торговать автозапчастями - не одно и то же.

Автор:  ilovb [ Четверг, 01 Март, 2012 09:52 ]
Заголовок сообщения:  Re: Психология программиста

Валерий Лаптев писал(а):
...Особенно в области бухгалтерии на 1С.

Сегодня 1С это полноценная ERP. Бухгалтерия это очень малая часть задач решаемых на отечественной платформе :D Самый сложный и крупный раздел - это управленческий учет

Автор:  albobin [ Четверг, 01 Март, 2012 10:20 ]
Заголовок сообщения:  Re: Психология программиста

ilovb писал(а):
Нет. Сотня - это в смысле сотня разных клиентов с разными производствами и разными задачами.
Автоматизировать приборостроительный завод и биокомбинат - это совершенно разные задачи.
Каждое крупное предприятие - это как маленькая страна со своими тараканами, законами и психологией. Даже два торговых холдинга могут отличаться как небо и земля.
Так как торговать например автомобилями и торговать автозапчастями - не одно и то же.

Задачи то разные но схожие, подобные, и т.п.
Вот если бы сегодня писали бух.учёт, завтра симулятор авиационный, а послезавтра числодробилку научную или скажем управление производственным процессом - вот тогда я бы согласился, что задачи воистину разные :)

Автор:  albobin [ Четверг, 01 Март, 2012 10:53 ]
Заголовок сообщения:  Re: Психология программиста

2 ilovb
Но, в добавлении к предыдущему посту, не в наполнении конкретным смыслом словов "разные задачи" дело.
Хочу сказать, что из приведённого распределения программистов по категориям вовсе не стоит делать выводы о различиях в способностях, даже если
какой то единичный опыт работы в том или ином качестве и в тех или иных местах провоцирует на обобщения.
Есть множество других обстоятельств - житейских, положение на местном рынке труда, здоровья и т.д. которые влияют на возможность проявить свои способности.

Автор:  ilovb [ Четверг, 01 Март, 2012 11:02 ]
Заголовок сообщения:  Re: Психология программиста

Все так. Я просто о личных наблюдениях говорю.

Автор:  Валерий Лаптев [ Четверг, 01 Март, 2012 11:07 ]
Заголовок сообщения:  Re: Психология программиста

Madzi писал(а):
В рамках психологической разрядки портрет программиста.

Один из наших студентов 4 курса признался, что при поступлении он мыслил именно таким образом... :)

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/