Открыть список
Как стать автором
Обновить

Комментарии 48

О, очередной теоретик. Привёл пример из IOCCC, а что сказать хотеть — забывать, да?
Почему теоретик? Как раз исключительно практик.
И да, пример кода с конкурса IOCCC, даже ссылка на это в статье имеется.
В голосовалке предлагаю добавить пункт «люблю все автоматизировать» и/или «люблю делать полезные продукты/программы/приложения»
Голосовалка нужна для выявления вашей мотивации и не важно, что является конечным продуктом: «автоматизация или программы/приложения». Поэтому, не важно, что конкретно вы делаете, важен ваш настой, с которым вы обычно делаете свою работу.
Для меня это и есть настрой — делать что-то полезное
В этом случае, если вы делаете что-то полезное только для себя, то ваш выбор «Внутренняя — Для меня важно, чтобы самому нравилось, а все остальные пусть идут лесом.», если же вы делаете это не только для себя, но и для других, то ваш выбор «Социальная — Сейчас разработка ПО, это коллективные усилия, где самое главное, это оценка коллег»
Так, стоп. Я делаю вместе с коллегами нечто для заказчика. Мне прежде всего важна оценка заказчика, оценка коллег вторична. Такого пункта в списке нет.
Почему? Это самый первый пункт: «Материальная — Мне плевать на красоту! Я готов писать даже говенный код, если за это хорошо платят.»
Ведь одобрение заказчика, это и есть материальный стимул.

Вы заказчику бесплатно делаете что ли?

Что есть полезность?
Все, что производит человек в большинстве своем увеличивает хаос и добавляет мусора.
Что есть полезность?
Для меня это и есть настрой — делать что-то полезное
Полезность, это то, что вы сами вкладываете в это слово.
Цитируя (близко к тексту) одного хорошего человека: «это маленькое изменение в номере версии и большой геморрой для всего человечества»

Даже автоматизированный завод по переработке мусора?

краса

typedef unsigned char t;
t*F="%c", l[]="|\\/=_ \n](.\0(),*(.(=(}*.)[[*.",N='\n',*r;

typedef(*H)();
extern H Ar;
Q(a)
{return(a|-a)>>31;
}
H S(c,a)
{return(H)(a&~c|(int)Ar&c);
}
extern t*ist;
V(t*u)
{*u^=*u&2^(*u>>7)*185;
}
Z(t*u,t n)
{*u-=n;
}
e(t c,H h)
{R(h,Q(*r^c));
}
I()
{r=l+7-4*Q(getchar()^*l);
}
R(H h,int c)
{Ar=S(c,h);
— main();
}
P()
{r++;
}
z()
{O(&N);
}
O(t*c)
{ printf(F,+*c);
}
T()
{r=«This is not a function\n»;
}
w(U)
{U=Z(r,8); r-=~Q(*r/8-4); return 0;
}
M()
{r=ist-68;
}
h()
{t G=r[1]-r[2]^*r;G^=30;V(&G);e(0,(O(&G),P(P(*r++)),z));
}
g()
{M();R(h,0);
}
f()
{P(O®);e('f',g);
}
p()
{P();e('a',f);
}
d()
{P(O®);e('n',p);
}
c(u)
{u=r[-2];T(Ar=d);R(f,Q(u^'"'));
}
n()
{e(w(O(l+*r%8)),c);
}
a()
{I();R(n,0);
}
main()
{S(Q(Ar),a)();
}
H Ar;
t*ist=«Rene Magritte»-(1898-1967);
Ничего не понятно. Это стихи такие?

Это отформатировали отсылку к c'est ne pas une pipe.

Как-то слишком концептуально. Следующий уровень квайна — c'est ne pas une programma? ;)
Когда есть устойчивая внутренняя мотивация писать код за деньги, чтобы результат нравился людям. Это к какому уровню пирамиды относится?
Наверно, это ваш случай:
Конечно, подобное разделение мотивов работы программистов является условным и может перетекать из одного типа в другой или даже являться комбинацией сразу нескольких мотивирующих факторов.
Извините, тут немного о другом.
«чтобы результат нравился людям» и «чтобы код эстетически нравился мне» — это две разные вещи и статья больше о другом.

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

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

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

Тогда изначальный вопрос «Когда есть устойчивая внутренняя мотивация писать код за деньги, чтобы результат нравился людям. Это к какому уровню пирамиды относится?» будет находится где-то между серединой и нижней частью пирамиды потребностей.
«чтобы результат нравился людям» и «чтобы код эстетически нравился мне» — это две разные вещи и статья больше о другом.
Почему вы считаете такое противопоставление необходимым, что я, по-вашему, не человек?)
Надеюсь, что человек :-) А противопоставление необходимо для того, что бы разделить два разных типа мотивации «для себя» и «для других».
По-моему красота кода это не про эстетику, а про уровень мастерства. Нередко встречаю ребят, которые уверяют, что умеют писать красиво и качественно. Однако на практике по разным причинам выдают результат, не соответствующий тем или иным критериям. Чаще всего ссылаются на нехватку времени, MVP подход, стресс, давление менеджера. В общем разные довольно понятные и бесспорно объективные причины.

Когда в последний раз вы писали безкомпромиссно качественный код? — вот по всем тем критериям, которые сами считаете best practices. И знаете что, оказывается многие не писали ни разу. Как можно заявлять об умении, ни разу этого не сделав? Мечты? Фантазии? 50 оттенков серого с элементами садомазо? Получается, вместо того, чтобы практиковаться писать качественно, ребята прокачивают навык рассказывать правдоподобные истории про то, почему они так не делают.
То, что вы описали, попытка скрестить материальную мотивацию с остальными типами. По сути, человек пытается закрыть социальные или эстетические потребности, хотя ему приходится заботится о низменных базовых.
На заре своей трудовой деятельности я слышал другой анекдот. Это уже правда было в 90-х
Стоят старая и молодая проститутки на боевом посту.
Светает, надо закругляться…
Видят идет мужик, волосы взъерошены, глаза красные…
Молодая:
— Может последнего обслужим?
Старая:
— Не приставай. Это свой, программист. Тоже всю ночь трахался.
Э-э-э «красота в глазах смотрящих».
То что вам кажется красивым для другого страшное уродство и наоборот.
Поэтому я бы не опирался на понятие «красоты». :-)
По первым итогам голосования выявилось тенденция голосовать преимущественно за внутреннюю мотивацию. Но прежде чем выбрать при голосовании третий вариант, подумайте пожалуйста вот над чем: Кто задает критерии качества (или эстетики) в вашем проекте?

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

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

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

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

Код ревью в этом смысле довольно спорный пример. Это скорее ограничение, а не лайки. Иначе так любой quality gate вроде проверки кода тайпчекером, юнит тестами, или даже размер вашего рабочего помещения можно назвать суррогатом социального одобрения с далеко идущими последствиями.
Иными словами, внешняя мотивация это когда приходится прилагать усилия из вне, чтобы сотрудник выполнял работу. А внутренняя это когда он делает все то же самое, но добровольно?)
Нет, не так.
Речь идет исключительно о собственной мотивации, а она всегда направлена изнутри.
Тут вопрос, на что эта мотивация направлена. На получение собственного одобрения или на ожидание одобрения от окружающих.
Где вариант ответа «никакая»? У меня последнее время мотивация сломалась и делать ничего не могу.
Это внутрення мотивация в чистом виде, которую можно сформулировать и так: «Лично мне нравится ничего не делать, а все остальные пусть идут лесом» ;-)
Нет, мне не нравится ничего не делать, но и что-то сделать никак не соберусь.
Иногда, глядя на код, кажется, что его примерно так и писали.
Естественно, тогда я не считал, да и сейчас не считаю, что программирование может быть заменой хорошему сексу

Хм, наверное, надо было все же первый секс устроить до первого кода, а не через 9 лет после.

А что вас навело на мысль, что было по другому?

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

В начальной школе-то еще рано

Ну вот и я про то же. Мой первый код был лет в 10.

Конечно лучше. Потому что оно чаще.

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

Ох уж эта пирамида Маслоу, которая не работает.

Это все прекрасно раскладывается по полочкам в книге Андрея Курпатова «Троица», которая основана на современных научных трудах о работе мозга. Там выделяются три типа личности: конструкторы, центристы и рефлекторы. Каждый по-своему выстраивает в голове модель реальности. Думаю, автору статьи будет интересно почитать

Только невозможно разделить четко всех людей на три типа, и даже на 16. Человек сложнее и оказывается что в каждом человеке есть что-то от каждого типа.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.