Почему я до сих пор программирую?
Недавно Дэниел Лимайр (профессор Университета Квебека в Монреале) разместил в своём блоге замечательную статью . Публикую с согласия автора перевод статьи на русский язык.
Люди ожидают, что, как только ты становишься старше, ты бросаешь практические занятия, такие, как программирование, ради более достойных вещей — управления коллективом и поиска финансирования. Это особенно верно в научной среде, где «настоящие учёные» не вникают в детали, занимаясь лишь «общей картиной происходящего». Другими словами, организации нацелены на вертикальное сотрудничество — иерархическую структуру, в которой люди наверху руководят другими (более дешёвыми) работниками. В исследовательской среде это означает, что старшие научные сотрудники дают идеи, а молодые сотрудники их реализовывают.
Со временем старшие сотрудники могут разучиться делать то, что делают молодые, но зато они становятся специалистами в области добывания денег. Масштаб такой модели может расти: старший учёный руководит учёными среднего звена, а те, в свою очередь, молодыми сотрудниками, и так далее. Джордж Чем назвал такую модель «профессорской пирамидой», так как она работает лучше всего, когда финансирование обильное и постоянно возрастает:

Противоположностью является горизонтальное сотрудничество. В этой модели старшие учёные делают всё: от главной идеи до её реализации. Они предпочитают избегать рутинной работы, когда это возможно. Сотрудничество используется, в основном, для получения другой точки зрения и обмена опытом. Эта модель продолжает работать при недостаточном финансировании, но не может масштабироваться в плане количества вовлечённых людей: горизонтальное сотрудничество обязательно личное.
Тип деятельности, которую лучше всего поддерживает каждая из моделей, различается. Я считаю, что вертикальное сотрудничество подходит для долговременных планов и предсказуемых результатов, в то время, как горизонтальное сотрудничество располагает к интуитивным действиям и «диким» идеям.
В подтверждение того, что я предпочитаю горизонтальное сотрудничество, я до сих пор программирую несмотря на то, что не молод. Это необычно. Настолько необычно, что люди удивлённо поднимают брови. Иногда программирование требует время, много времени. Я могу провести два или три месяца в году, занимаясь программированием. Предполагается, что моё время слишком дорого для того, чтобы тратить его на низменную работу типа программирования, которой могут заниматься люди, зарабатывающие небольшую часть от того, что зарабатываю я. Так почему же я до сих пор программирую?
Возможно, лучше всего меня оправдает сам Мастер - Дональд Кнут.
Люди, открывшие для себя мощь и красоту высокоуровневых, абстрактных идей, очень часто допускают ошибку, думая, что конкретные идеи на нижних уровнях относительно бесполезны и поэтому могут быть забыты. (…) наоборот, лучшие учёные-компьютерщики в совершенстве владеют основополагающими принципами работы компьютеров, и на самом деле суть компьютерных наук заключается в способности понимать много уровней абстракции одновременно.
Но у меня есть и собственные аргументы:
- Я хочу, чтобы моя работа была важна, оказывала влияние. Но даже часто цитируемые научные статьи редко читаются; очень мало научных статей оказывают существенное влияние. Однако сравнительно проще сделать значимую работу в области программного обеспечения. Например, недавно команда из Facebook внедрила одну из моих библиотек для работы с индексами на основе сжатых битовых карт в Apache Hive — инфраструктуру, основанную на Hadoop, и предназначенную для накопления данных. Я бы поспорил на крупную сумму, что никто из Facebook не читал оригинальную статью, для которой я писал эту библиотеку.
- Реализовывая свои идеи снова и снова, я вынужден лучше их понимать. Зачастую бывает так, что то, что выглядит разумным на бумаге, оказывается неуклюжим при реализации. Кроме того, я зачастую нахожу ошибки в своих математических выкладках посредством их реализации. Могу ли я поручить эту работу другим? Возможно. Но тогда процесс не будет таким плодотворным.
- Со временем ты программируешь всё лучше и лучше. Я накапливал свой опыт десятилетиями. Очень приятно начать с нуля и решить сложную задачу за несколько дней зная, что другим потребовались бы недели и даже месяцы, чтобы сделать то же самое.
Если мои аргументы разумны, и даже Дональд Кнут на моей стороне, то почему люди до сих пор удивляются, когда я признаюсь, что я учёный-программист? Я думаю, что неприятие программирования, как низшей деятельности, может быть объяснено Теорией праздного класса. В результате мы ищем не практическую пользу, а престиж. Нет ничего престижного в изготовлении инструментов, приготовлении пищи, и сельском хозяйстве. Чтобы максимизировать свой престиж, вы должны возвыситься до праздного класса — ваша работа не должна быть непосредственно полезной. Поэтому быть директором или политиком гораздо престижней, чем медсестрой или поваром. Учёные, руководящие издалека, престижны. Программирование сродни изготовлению инструментов, поэтому люди из праздного класса не хотят притрагиваться к программистам. Люди называют себя инженерами, аналитиками или разработчиками, но редко «программистами», так как это звучит слишком утилитарно.
Внимание: не каждый должен быть программистом. Эта деятельность занимает много времени. Из-за того, что я много программирую, у меня не остаётся времени на другие интереснейшие вещи.
Автор: Дэниел Лимайр
Перевод: Сухинов Антон
WWW: http://iproc.ru
Адрес статьи на блоге автора: http://iproc.ru/2011/06/why-i-still-program/#post-4381
Date: 17.10.2011
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 1558 просмотров



Комментарии
4 комментария(ев)Дата: Пнд, 17/10/2011 - 14:48
Интересно, у нас в России такое же видение этого дела?
Дата: Пнд, 17/10/2011 - 15:31
...по России могу привести пример ученого-физика - Кона Виктора Германовича, у нас в первом номере есть релиз его языка программирования (на сайте пока не выложено, в PDF-е), а в 11-м ]]>интервью]]> с ним. Также еще пример - Каплан Александр Яковлевич (доктор биологических наук, профессор), тоже ]]>продолжает программировать]]>.
Дата: Пнд, 17/10/2011 - 16:10
Наверное, программировать продолжает тот, кто получает реальное удовольствие от этого процесса. Если испытываешь "оргазм мозга", занимаясь каким-либо трудом, то трудно отказаться от этого удовольствия.
Даже если оно приносит меньший доход, чем ты можешь иметь на данном жизненном этапе, занимаясь другими вещами...
Дата: ЧТ, 20/10/2011 - 01:37
Все верно, статья правдивая. Увы и ах, но ни у кого из нас не получится просто писать код, всегда найдутся сотни причин помешать этому. И социальные статусы, пожалуй, одна из самых главных причин... потому что это социум, а не глухой лес.