Продолжаю читать академика Ершова А.П. (1931 — 1988), одного из основателей советской школы программирования. Статья «Эстетический и человеческий факторы в программировании»: «…я вижу некоторую опасность в превращении программистов просто в высокооплачиваемый отряд наемных тружеников умственного труда. Перед лицом этой тенденции программист должен найти некоторую систему внутренних ценностей в своем деле, обладание которой позволит ему легче ассимилировать индустриальные методы работы, а где надо — преодолевать их.
Мой второй тезис состоит в том, что эта система ценностей в программировании объективно существует, однако осознана не до конца, известна не всем и поэтому требует распространения и защиты. Эта система имеет много компонент, пожалуй, самая важная из них — это профессиональный статус программиста (надо сказать, что я говорю о программистах в широком смысле, причисляя к ним и системных аналитиков), но мне сейчас больше хочется сказать об эстетической, или об эмоциональной, стороне программирования, причем не только о том, что вознаграждает программиста, когда он выходит со своим продуктом на рынок, но и о том, что составляет его нравственную опору, когда он остается наедине с программой или машиной».
Я уже писал о том, что в Союзе профессия программиста – это во многом история про идеализм. А сам программист – это тот, кто приближает то самое светлое будущее. Отсюда и тема про облегчение ассимиляции индустриальных методов работы: идеальное представление о профессии начинает сталкиваться с суровой и будничной реальностью становящейся массовой профессии программиста. Но при этом оставался запрос на преодоление индустриальных методов работы и приоритет внутренних ценностей сообщества программистов. Никто не готов был просто так отдавать идеал профессии, поэтому Ершов защищает идею о необходимости и реальном существовании сугубо профессиональной и довольно жесткой системы ценностей.
С тем, что предлагал Ершов и актуальностью его идей, нужно разбираться отдельно. Но тут возникает и вопрос об актуальных профессиональных ценностях – трудовых, эстетических, социальных и т.д. Вот это действительно интересно.
Разумеется, у всех свои представления о профессиональной этике: сколько голов – столько умов. Вопрос в некоторых каркасных элементах, общих для всех: есть они; нет их; если есть, то какие. Разница наблюдается уже в оценке своей профессии. Я задавал программистам одни и те же вопросы: «Программирование – это ремесло или искусство? Ты как специалист занимаешься творчеством или ты чистый ремесленник – без крышесносящего креатива, зато с кучей навыков?». Если бы все как один давали какой-то конкретный ответ, я бы этого не писал – разные давали. (Господа, вы бы как ответили?)
Это похоже чем-то на наблюдение Федоровой М. в статье «От наблюдателя до ниндзя: создание IT-сообщества в “Яндексе»». Хороший код – это какой? Хороший код – это красивый код. Но красота – она в глазах смотрящего, то есть вещь субъективная. Поэтому и определения хорошего кода – разные. Для одних красота кода определяется нетривиальностью решения, для других она же определяется простотой и грамотным дизайном. Речь соответственно математический и инженерный подходы к программированию.
Понятно, что в ценностный каркас входят элементы либеральной трудовой этики, как-то смешивающиеся в голове у специалиста из постсоветских стран с культурными кодами «той самой» технической интеллигенции.
Это я к чему? К тому, что система ценностей современного айтишника – это интересный объект исследования и дискуссии. А учитывая социальную значимость айтишников – еще и важный объект социокультурных исследований. Важный и сложный.
Академик Ершов когда-то давно поставил интересный вопрос: «…что составляет нравственную опору программиста, когда он остается наедине с программой или машиной?».