Опубликовано
Комментарии Нет

Работа программиста непосвященным кажется мистикой. Самим программистам — тоже. Разница состоит в том, что программисты получают от этого огромное удовольствие (помимо зарплаты).

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

Прежде чем окунуться в детали, давайте попробуем посмотреть на работу программиста в целом. Это даст нам с вами в руки некоторую карту, пользуясь которой мы сможем двигаться дальше.

Суть работы программиста

Что же делают программисты, чем их работа отличается от других работ?

По-крупному, работа программиста состоит в том, чтобы объяснить компьютеру (или иному вычислительному устройству, не обязательно являющемуся компьютером), как выполнить поставленную задачу.

Вот так просто. И за этой простотой прячется огромная сложность.

Чтобы понять, о чём я пытаюсь сказать, давайте поставим себя на место программиста и попытаемся составить некоторую программу для исполнителя (не компьютера, а для некоторого абстрактного, весьма умного и смышленого исполнителя).

Ставим задачу:

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

Не бог весть какая задача, конечно, но на ее основе попытаемся показать работу программиста.

Начав решать задачу сразу сталкиваешься с большим количеством вопросов.

Первый вопрос: что будет решением (как оно будет выглядеть)?

В нашем случае решением будет некоторый список действий, записанный на листочке, который может быть выдан исполнителю, используя который исполнитель не думая (это важно!) выполнит поставленную перед ним задачу.

Что мы знаем об исполнителе?
Для целей решения представьте в качестве исполнителя любого из ваших знакомых (супруг/супруга, знакомый, родитель или даже ребенок).
Предположим, что исполнитель не может принести мешок смеси на себе (он «сломается»).
  1. Каким транспортом может быть доставлен груз?
  2. Как далеко находится магазин, в котором продаются смеси?
  3. Есть ли нужная смесь в магазине?
  4. Достаточно ли у исполнителя денег?
  5. и т.д.

Как видите, простое по сути действие вылилось в кучу вопросов. И на каждый из них нужно ответить, если мы хотим, чтобы задача была решена. Более того, чем «глупее» исполнитель, тем большее количество вопросов придется задать и, соответственно, дать большее количество ответов.

И программист всегда, подчеркиваю, всегда составляет подобный список при решении задач. Конечно, в нем будут записаны другие пункты (эти пункты зависят от «исполнителя»), но важно понимать, что программист обязан быть предельно дотошным, при этом он должен использовать понятийный аппарат «исполнителя».

Автор
Категории

Опубликовано
Комментарии Нет

Так уж получилось, что в большинстве известных мне случаев, пользователи негативно относятся к программистам. Они считают их надменными идиотами, совершенно не умеющими общаться, думающими только о том, чтобы сделать жизнь пользователей еще более невыносимой (то, что помимо программиста есть еще куча народа, которые могут сделать жизнь пользователя невыносимой, оставим за рамками). Ну или как минимум пользователи считают программистов ненормальными. И хотя само понятие «нормальности» весьма условно, это определение встречается чаще всего.

На конкретные вопросы, что же «ненормального» есть в программистах и их поведении, ответы разнятся, но общая картина все же просматривается:

  • программисты необщительны;
  • программистам ничего, кроме компьютера не интересно;
  • программисты себе на уме, их не интересует чье либо мнение;
  • программисты не считают нужным что-либо объяснять.

Есть и другие претензии, но они так или иначе сводятся к этому списку.

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

Программисты действительно необщительны, многих из них действительно мало что интересует, кроме компьютера и программирования, более того, программисты часто полагаются на собственное суждение больше, чем на чье бы то ни было, и редко могут (а еще реже хотят!) что-либо объяснять.

Что за чушь, воскликнет возмущенный читатель!

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

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

Конечно, среди программистов бывают и действительно неумные и весьма невежливые люди, но, в большинстве своем, за свитером с оленями можно разглядеть замечательных и очень интересных людей.

Автор
Категории

← Старые Новые →