Ко дню программиста

Что можно сказать по случаю дня программиста, отмечаемого в 256-й день невисокосного года? Нового – ничего. Всё уже сказано людьми, благодаря которым профессия и существует.

«Программист, как поэт, работает почти исключительно головой. Он строит свои замки в воздухе и из воздуха только силой своего воображения. Очень редко материал для творчества допускает такую гибкость», – это написал Фредерик Брукс-младший, разработчик операционной системы OS/360. Его книга «Мифический человеко-месяц» («The Mythical Man-Month: Essays on Software Engineering») впервые издана в 1975-м, почти полвека назад.

В далёкие времена, когда не было принято брать на работу любого, кто в состоянии вывести на экран «Hello, world», программисты делились на хороших и плохих.

Что такое «хороший программист», точно не установлено. Брукс констатировал лишь, что хороший программист в 5-10 раз продуктивнее плохого.

Ближе всех к решению проблемы подошёл Эдвард Йодан (Edward Yourdon) в книге «Techniques of program structure and design» (в русском переводе «Структурное проектирование и конструирование программ», Москва, «Мир», 1979):

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

  1. Хороший программист пишет хорошие программы (или эффективные программы, или хорошо оформленные программы и т. д.).
  2. Хороший программист умеет работать с другими людьми.
  3. Хороший программист умеет общаться с пользователями его программы.
  4. Хороший программист моется по крайней мере раз в неделю.
  5. Хороший программист приходит на работу вовремя.
  6. Хороший программист никогда не приходит на работу вовремя.
  7. Хороший программист не доставляет хлопот.
  8. Хороший программист умеет работать в напряженной обстановке.
  9. Хороший программист любит классическую музыку».

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

Профессор Анатолий Шалыто из ИТМО, где учатся чемпионы мира, считает сильным программистом того, кто в состоянии принести, преодолев по лестнице два этажа, на его кафедру 20-литровую флягу воды для кулера.

Желающим досконально изучить вопрос о настоящих программистах показан текст «Настоящие программисты не используют Паскаль». Игнорируйте опечатку в заголовке; Максим Мошков, в чьей библиотеке это опубликовано, – программист настоящий, и синтаксические ошибки исправляет только в собственном исходном коде.

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

Кстати, об уважении. Профессия программиста почётной была не всегда. Наш выдающийся соотечественник Михаил Донской, соавтор «Каиссы» (первый чемпион мира по шахматам среди компьютерных программ, 1974) в «Жизненном цикле программиста» вспоминает частушку времён своего мехматовского студенчества: «Меня милый не целует, не садится близко / Говорит, я – математик, а ты программистка».

Напоследок из свежего. Заместитель председателя правительства РФ Дмитрий Чернышенко официально поздравил «всех сопричастных» с днём программиста и с тем, что в РФ зарплаты «работников отрасли информационных технологий в 2020 году выросли в среднем на 14,5%».

Хочется верить, что он не считает сопричастными тех, кто обещает – сто́ит только перейти по ссылке – за два месяца обучить программированию любого «cнуля».