Особенности работы программиста
У программистов устойчивая репутация людей, причастных непосредственно к научно-технической революции. В этом, пожалуй, есть доля истины: едва ли НТР мыслима без вычислительной техники. А программисты окружены ореолом посредников между нами и самой современной разновидностью класса машин.
Такое отношение приятно. Но не только оно воодушевляет программистов. Они испытывают сложную гамму чувств и оставаясь наедине с программой. Источник глубоких переживаний программистов — это само дело, которым они заняты, — внешне сухое, но скрывающее яркие эмоции и большое интеллектуальное напряжение. И то и другое — обычные спутники всякого творческого труда, который сам по себе приносит радость.
О творческой природе программирования можно было бы и не распространяться. Но нельзя не отметить, что в постижении сути проблемы программист обязан идти дальше представителей других творческих профессий. Средний актер не всегда ищет предельно точные интонации и жест — и при этом срывает аплодисменты. Внимательный критик иногда замечает недоделки у художников и композиторов, писателей и архитекторов. Ученый очень часто поневоле ограничивается констатацией подмеченной им закономерности, объяснить которую иногда удается только через века. Программист же не имеет права остановиться на полпути, «тупица» компьютер требует от него настолько подробных объяснений, что впору схватиться за голову. Привычные для программиста элементарнейшие составляющие, на которые он раскладывает процесс решения задачи, чужды даже математику.
С. С. Лавров так и писал: «Это может показаться странным, но у программистов действуют гораздо более строгие стандарты ясности и точности описания, чем у математиков. Это и понятно, так как математики могут рассчитывать на достаточно высокий уровень знаний, сообразительность и интуицию читателя, программисты же имеют дело с машиной (или программой), лишенной этих качеств».
Так что по строгости и четкости программирование не имеет себе равных. Рафинированная математика сочетается в труде программиста с «грязной инженерной работой», по выражению бывшего президента американской Ассоциации по вычислительной технике Энтони Эттингера. Нет, не «железо» он имел в виду, не так называемое аппаратное обеспечение. Аналог инженерии в области программного обеспечения — это, например, забота об экономном расходовании памяти машины, стремление как можно реже использовать, в программе те операции, которые дольше выполняются или могут привести к потере точности, оптимизация.
Программист должен обладать способностью первоклассного математика к абстракции и логическому мышлению в сочетании с эдисоновским талантом сооружать все, что угодно, из нуля и единицы. Он должен сочетать аккуратность бухгалтера с проницательностью разведчика, фантазию автора детективных романов с трезвой практичностью экономиста. Этот фантазер и реалист, изобретатель и логик месяцами напрягает все силы своего ума, чтобы научить ЭВМ выдавать колонки цифр, складывающиеся в баллистическую таблицу или демографический справочник, в расчет параметров экономической модели или технологического процесса. Кульминация творческих усилий программиста — это выполнение написанной им программы. Теперь продукт его интеллекта отчуждается от него и начинает самостоятельную жизнь. В этот момент программист особенно остро осознает социальную значимость своего труда.
Как говорит А. П. Ершов, программист относится к компьютеру, как «хороший жокей к своей лошади». Он заботится о машине, сознает ее достоинства и старается всемерно их использовать, он приспособился к ее недостаткам, и они его не раздражают. Добиться рациональной и экономичной работы компьютера — выполнение такой задачи (а программист неизменно ставит ее перед собой) граничит со знакомым всякому творчески работающему инженеру удовлетворением от изящного и неопровержимого решения.
Только программист поймет, что это значит — пройти с машиной «голова к голове сквозь все алгоритмические хитросплетения и пережить настоящий триумф — «программа пошла!»
Можно понять тех людей, которые два-три десятилетия назад оставили свою специальность математика или инженера и стали первыми профессиональными программистами. Удивительное чувство интеллектуального и эмоционального единения с вычислительной машиной — таково было щедрое вознаграждение за этот выбор.
Завидуйте программистам! У них интересная и трудная работа, которая приносит внутренне удовлетворение, уважение окружающих и материальную обеспеченность. Но только в сказках идиллия длится вечно.
Та же научно-техническая революция, которой программисты обязаны и появлением на свет, и престижем, и ореолом «творческой профессии»,— НТР теперь отнимает ею же выданные привилегии у своих знаменосцев. Причем путь от профессии уникальной и творческой к профессии массовой программисты совершают на наших глазах и темпами воистину стремительными.
Это если судить по привычным меркам. Ведь в мире электроники календарное время начинает казаться тихоходом. Конструкторы скажем, бьются над ускорением процессов, длящихся миллиардную долю секунды. Темпы — архисовременные. Не удивительно: ведь это темпы НТР. За пару десятилетий программисты прошли тот путь, который для представителей более старых профессий растянулся чуть ли не на века.
Автор: А. Войскунский.