...

воскресенье, 5 января 2014 г.

[Из песочницы] 10 правил дзен-программиста

От переводчика: это перевод статьи Кристиана Глобмайера The Ten Rules of a Zen Programmer. Статья мне понравилась, решил сделать перевод, после окончания перевода загуглил название, нашел вариант перевода: 10 принципов дзен программиста. Отличается от моего, поэтому решил свой вариант перевода все-таки запостить.

Для некоторых пунктов так и не смог найти перевода, который бы меня устроил, поэтому в скобочках оставляю оригинальное название.


Одним дождливым утром я сидел за своим столом и думал о эффективной работе. До того, как я начал работать фрилансером, у меня бывало, что я работал много, но никогда не был доволен результатом. Я начал практиковать Дзен в 2006 году. То, что мне пришло в голову через довольно большое время — старые мастера Дзен уже знали сотни лет назад, как сегодняшние программисты должны работать. Хотя я не люблю посты «как быть лучшим программистом», я хочу рассказать о некоторых моих мыслях с того времени. Этот пост будет служить мне напоминанием, но если у вас есть идеи, не стесняйтесь оставлять комментарии.



1. Сфокусируйтесь (Focus)


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


Kôdô Sawaki говорил: если вам нужно спать, спите. Не проектируйте программное обеспечение, когда вы пытаетесь спать. Просто спите. Если пишете код, пишите код. Даже люди известные своею многозадачностью (ориг. known multitaskers), как Stephan Uhrenbacher решили работать в одном потоке (ориг. singlethreaded). У меня был опыт, подобный опыту Стефана, когда я наконец-то написал Time & Bill, утилита для тайм-трекинга. Моей целью было отслеживать свое время на столько легко, чтобы я мог отследить даже такую небольшую задачу, как телефонный звонок. Теперь я могу создать несколько секундомеров в начале для и отслеживать мое время с помощью только одного клика мышки. В начале это была катастрофа — иногда я работал несколько минут над задачей пока не переходил к следующей. Теперь я стал лучше. Как и в технике Pomodoro я планирую несколько временных интервалов и концентрируюсь на них. Никакого общения, никакого сна, никакого поиска новой интересной игры в Appstore.


2. Держите голову ясной (Keep Your Mind Clear)


Перед тем, как работать над программным обеспечением, нужно очистить свой разум. Отбросьте все мысли на это время. Если испытываете проблемы с чем-либо, не дайте этому повлиять на вас. В большинстве случаев эта проблема уйдет. Если она вас сильно беспокоит, не работайте. Попробуйте привести все в порядок. Но когда начинаете работать, позвольте всему миру вокруг вас растаять.


Что-то интересное в почтовой рассылке? Оставьте это. Вы можете посмотреть интересные вещи потом. Отключите все, что забивает вашу голову хламом: закройте Твиттер, Фэйсбук, почту. Вы должны даже выключить звук на телефоне и спрятать его в карман. Можно сказать, что это похоже на пункт 1 — сфокусироваться. Но есть еще одно ограничение: не используйте все это (Твиттер и т.д.) перед работой или во время обеда. Они соединяют вас с внешним миром и несут с собой проблемы или вещи, которые требуют вашего внимания.


Думайте так: в большинстве случаев ваша голова довольно ясна когда вы просыпаетесь с утра. Если это не так, может помочь спорт (я делаю пробежки). Если вы чувствуете, что вы свежий и отдохнувший, идите работать и работайте на столько хорошо, насколько сможете. Когда оставляете свою работу, можете забить свою голову барахлом. Вы увидите, что это не так весело, если вы целый день работали. Твиттер и прочее потребляет много вашей энергии. Не думайте, что это занимает одну минуту. Это не так.


Вы знаете, что это правда.


3. Мышление Новичка (Beginner’s Mind)


Вспомните, когда вы были новичком, или если вы до сих пор новичок — берегите это чувство. Вы никогда не выучите достаточно. Если вы уже эксперт, думайте о себе как если бы вы были новичком каждый день. Всегда пробуйте рассмотреть технологию со стороны новичка. Вы сможете принять правки своего программного обеспечения лучше и намного легче оставить стандартный путь, если это будет нужно. Даже у менее опытных людей чем вы бывают хорошие идеи. Существует ли программное обеспечение, созданное дважды одним и тем же способом? Даже если вы копируете программу — это уже что-то другое.


4. Без эго (No Ego)


У некоторых программистов есть огромная проблема — их эго. Но нет времени на создание эго. Нет времени быть рок-звездой.


Кто определяет вашу квалификацию как программиста? Вы? Нет. Другие? Скорее всего. Но можно ли сравнивать яблоки и бананы? Нет. Вы — индивидуальны. Вы не можете сравнивать всего себя с другим человеческим существом. Вы можете сравнивать только некоторые аспекты.


Скилл — не повод для гордости. Вы хорошо знаете Java? Круто. Кто-то другой не так хорошо знает Java как вы, но лучше вас играет в боулинг. Java более важен чем боулинг? Это зависит от ситуации. Вы скорее всего заработаете больше денег с Java, но другой человек получает больше удовольствия играя с своими друзьями в боулинг.


Можно ли действительно гордится тем что вы гик? Программисты с эго не учатся. Учитесь у каждого, у опытного и у нуба в одно и то же время.


Кодо Саваки однажды сказал: «Вы не важны.» (ориг. “You are not important.”).


Подумайте про это.


5. Без карьерной цели (There Is No Career Goal)


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

Работать двадцать лет чтобы стать партнером компании? Почему вы не работаете так усердно как только можете, просто потому что это весело? Усердная работа может быть веселой. «День без работы — это день без еды» — так говорит Дзен.


Нету необходимости быть счастливым через 20 лет. Вы можете быть счастливым даже если вы не партнер компании и не ездите на Порше. Все меняется очень легко. Вы можете заболеть. Вас могут уволить. Вы можете выгореть (я думаю, что это маловероятно, если вы следуете всем этим пунктам).


Если только ничего плохого не случится, работайте так хорошо, как можете и получайте удовольствие, делая это. Нет причины обращать внимания на достижения ваших коллег. Нет причины думать про крутую новую должность, которую вы не получили.


В конце концов вы добьетесь чего-то. У вас будут приятные воспоминания, возможно, хорошая должность — и двадцать отличных лет. Каждый день — хороший день.


Если вы когда-то придете к моменту, когда вы думаете, что работать в вашей компании совсем не весело (ориг. is no fun), нужно уйти оттуда немедленно. НИКОГДА не оставайтесь в компании, которая отнимает ощущение счастья в вашей жизни. Конечно, это возможно только в богатых странах, где у людей есть возможность уйти. Но если вы живете в таком хорошем окружении — делайте это. Уходите без сожаления. Не теряйте времени, завтра вы можете быть мертвым.


Когда у вас нету карьерной цели, уходить легко.


6. Заткнитесь (Shut Up)


Когда вам нечего сказать, не тратьте время ваших коллег. Это не делает вас малодушным (ориг. wimpy). Каждый день работы вам нужно стараться не действовать другим на нервы. Представьте, если бы каждый пробовал так делать, какое это было бы прекрасное место для работы? Иногда это не возможно. Но старайтесь, вам это понравится.


7. Внимательность. Забота. Осведомленность (Mindfulness. Care. Awareness)


Да, вы работаете. Но в это же время вы живете и дышите. Даже если вы переживаете тяжелые времена на работе вы должны прислушиваться к сигналам своего тела. Вы должны изучить вещи, которые хороши для вас. Это включает в себя все, даже базовые вещи, такие как еда. Вы должны заботится о себе и обо всем в вашем окружении, потому что в конце концов вода, которую вы пьете — это вода в реке. Вы живете только ради себя. Вы живете один и умрете один. Мир живет дальше даже без вас.


Избегайте работы в ситуациях, которые вам не нравятся. Избегайте работать бесплатно если это значит, что вы не получите от этого удовольствия и это будет мешать вашему сну. Отпустите все, что не делает вас счастливым. Вы думаете, что люди работают бесплатно только в теории? Посмотрим на людей, которые занимаются Open Source в свободное время. Если вы подписаны на почтовую рассылку какого-то проекта вы наверное знаете о конфликте, который там бывает (иногда). Если вы не получаете от этого удовольствие, перестаньте это делать. Я знаю кучу людей, которые работают в Open Source и им это не нравится. Опять же при помощи Time & Bill я отследил время, которое я тратил на Open Source проекты и удивился сколько времени я потерял — особенно на проектах, которые мне не очень нравились.


Имея это ввиду некоторые люди думают, что они счастливы только когда у них есть свободное время и они могут проводить вечера с Xbox'ом и пивом. Иногда это хорошая идея, но не обязательно каждый момент вашей жизни должен быть «весельем». Если вы можете избежать ситуации, которая вам не нравится, избегайте ее. Но иногда нужно сделать что-то действительно дерьмовое. Например вручную копипастить информацию с таблицы вашего менеджера в Excel'e в phpmyadmin. Это может занять несколько дней и это очень скучно. Да, это не весело, но иногда приходится делать что-то такое. Нельзя постоянно увольняться, когда вам становится делать скучно какое-то задание. Монахи Дзена тоже не уклоняются от своих обязанностей. Они просыпаются в 3 утра (иногда раньше, иногда позже, зависит от монастыря) и начинают медитацию и работу (они даже рассматривают работу как медитацию). Они делают такие вещи как чистка туалетов. Или работа в саду. Или как тензо, готовят (прим. перев. tenzo — монах-повар, en.wikipedia.org/wiki/Tenzo). Они это делают со всей своей тщательностью. Все, что они не делают, они делают без страданий и они счастливы (или должны быть таковыми), потому что каждая секунда, каждый момент, когда они чистят туалет, это секунда их жизни.


Как говорится, перестаньте ныть, если вам нужно скопипастить с Excel'a. Просто сделайте это. Не тратьте свою энергию на такие вещи, они пройдут. Вместо этого станьте лучшим копипастером Excel'а.


Если вы пострадаете от сердечного приступа, люди скорее всего скажут «Хм, да, он действительно был трудягой — он даже работал для меня ночью бесплатно». Никто не может указать вам путь в иной мир. Последний шаг мы всегда делаем сами. И вы ничего не сможете взять с собой. Это ваш выбор, беречь себя каждую секунду или нет. Если вы умрете — вы умрете. Но если вы живете — живите. Нет времени, чтобы его бесполезно тратить.


«Забота» — это большое слово в Дзен Буддизме (я думаю что и в каждой форме Буддизма). Я не могу выразить все, что должно быть сказано про это слово. Сложно понять разные значения «заботы». Вероятно, вы лучше знакомы со словом «осведомленность». Вы должны быть осведомлены о том, что вы делаете каждую секунду своей жизни. Вы должны быть внимательными в своей жизни. Иначе вы ее проживете зря. Но, конечно, зависит от вас делать так, если вам это нравится.


8. Нету босса (There Is No Boss)


Да, есть кто-то кто платит вам. Есть кто-то кто говорит вам что должно быть сделано. И этот кто-то может вас уволить. Но это не причина отказываться от своей жизни или ненавидеть свою работу. В конце концов ваш босс не контролирует вас. Можно даже поставить под сомнение есть ли у вас контроль над собой, но не стоит про это думать.


Вернемся к боссу: он может сделать вашу жизнь хуже если вы ему разрешите сделать это. Но всегда есть выход. Скажите «нет» если вам нужно делать что-то, что вызывает у вас отвращение или идет вразрез вашим этическим нормам. Что может случится? Худший сценарий — вас уволят. Ну и что? Если вы живете в Западных странах и если вы программист (что очень вероятно, если вы это читаете) — вы найдете другую работу.


Я не имею ввиду говорить «нет» таким задачам, как копирования CSV данных в HTML. Я говорю про 80-часовые недели и чувство, что организм отказывает. Или ощущения, что ваши дети нуждаются во внимании. Или если вас заставляют увольнять людей просто потому что боссу они не нравятся. Или если вы консультант и ваша работа разрабатывать программное обеспечение для АЭС (для некоторых это вполне нормально работать на АЭС, но это против моих этических принципов и служит примером) или за спасибо. Вы можете сказать «нет».


9. Делайте что-нибудь другое (Do Something Else)


Программист — это больше, чем программист. Вы должны делать что-то не связанное с компьютерами. В свободное время занимайтесь парусным спортом, рыбалкой, дайвингом. Занимайтесь медитацией, боевыми искусствами. Играйте на сякухати. Чтобы вы не делали, делайте это со всеми силами, которые остались. Как в свое рабочее время. Делайте это серьезно. Хобби это не просто хобби, это выражение того, кем вы есть. Не дайте никому себя обмануть, когда они говорят, что хобби не важны. Сейчас мы можем себе позволить хобби. Я записал несколько cd-дисков и написал несколько фэнтэзи книг (последняя не опубликована, нужно больше практиковаться). Все это сделало меня тем человеком, которым я являюсь сейчас, и в итоге они меня привели к Дзену и этой книге. Эти дни, когда я практиковался Дзен Сякухати. Это очень важный аспект моей повседневной жизни.


10. Нету ничего особенного (There Is Nothing Special)


Цветок — это красота. Но это только красивый цветок, ничего больше. Ничего особенного в этом нету. Вы — человек, который может программировать. Может быть вы хороши. В этом нету ничего особенного. Вы то же самое, что и я и все остальные на этой планете.


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


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


Если ваша компания закрывается из-за финансовых проблем, в этом нет проблемы. Жизнь продолжается. Нет реальной нужды в Xbox'е, машине или в чем-то другом. Большинство людей на этой планете живут в глубокой бедности. Они не думают про Xbox потому что они будут рады получить еду или даже воду.


Поэтому… почему именно вы особенный? Потому что вам повезло родиться в Западной стране? Потому что вы пишите код? В этом нет ничего особенного. Вы можете отпустить свое эго и жить свободно. Наслаждайтесь видом и запахом цветов. Не сильно расстраивайтесь когда наступает зима и не очень радуйтесь, когда приходит весна. Это просто течение жизни. Имейте ввиду когда кто-то отвергает ваше приложение. Потому что не одна компания не на столько особенная, чтобы вам нужно было переживать из-за работы.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Комментариев нет:

Отправить комментарий