вторник, 9 сентября 2008 г.

Программирование - это опять-таки творчество

Сейчас, когда программисты ищут то место работы, где будут платить все больше и больше, как-то отошло на второй план понятие "интересный проект". Но ведь программирование - это не только способ заработка денег, но еще и творчество. Или уже нет?..

Если вы спросите программистов, почему они избрали именно такую профессию, то вряд ли услышите в ответ, что им не давали спокойно спать мысли о миллиардах Гейтса, Джобса и иже с ними. Как правило, те, кто живет только мыслями о финансах, выбирают себе другую профессию, связанную с деньгами самым непосредственным образом - скажем, банкира. А вот большая часть тех, кто решил связать свою жизнь с компиляторами и отладчиками, сделали это именно потому, что им на момент выбора профессии было просто интересно возиться с компьютером и нравилось программировать. Но, конечно же, есть среди программистов и те, кто пришел в профессию именно за длинным рублем - и благодаря достойным заработкам их становится все больше.

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

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

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

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

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

А вы хотели бы побывать в Мирском Замке онлайн?

3 комментария:

  1. Как всегда... шарж собственноручно мной нарисованный слямжен и всё пучком.

    Нехорошо (смайл грозящий указательным пальцем).

    ОтветитьУдалить