Не паникуй (перевод главы книги «Passionate Programmer» by Chad Fowler).

Борис Акунин

Вдовий плат (сборник)

© ООО «Издательство АСТ», 2016

* * *

Вдовий плат

Роман

Часть первая

Идет гроза – разувай глаза

В Крестах


В Крестах-сельце было, месяца ноября в десятый день.

Утром по Московской дороге примчали верховые, человек десять, все на больших, не способных для мирного дела конях, собою нарядные, в багряных с прозолотью кафтанах, только сильно грязные от осенней расхлябицы. Старший, в шапке с волчьим хвостом, крикнул старосту. Тот уж и сам бежал от дома, стряхивая с бороды крошки (время было завтрашное).

– Гостебная изба есть? – спросил сверху волчий хвост, не дослушав величания.

– Как не быть, коли положено. – Староста впопыхах не захватил чем покрыть голову и мял порожнюю макушку ладонью, пытаясь угадать, что за люди и какой от них ждать беды. – А как же. В порядке содержим. Две дороги через нас идут, одна с Пскова на Вологду, другая с Верху на Низ, потому и зовемся – Кресты…

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

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

Староста семенил за быстро шагающим по горницам хвостатым (шапку не снял, ирод, на икону не перекрестился):

– Сейчас велю подмести, прибрать, сенца свежего на пол, печь растопим, отдохнете с дорожки…

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

– Встать кругом, никого не подпускать! – Старосте приказал: – Обеги село, скажи, чтоб из домов носа не высовывали. Сам вернись сюда к крыльцу. Жди.

Прыгнул с земли, по-татарски, в седло – и помчал назад, в низовую, то есть московскую сторону, только брызги грязи из-под копыт.

Спросить кто таков, почему распоряжается, староста и не подумал. Кресты были село пуганое. А и что спрашивать? Чей Низ, известно – великого князя, и ехать с той стороны кроме какого-нибудь большого московского человека, дьяка, а то и боярина, было некому.

Четыре года назад, когда между Низом, Москвой, и Верхом, господином Великим Новгородом, случилась большая война, так же вот налетели с Московской дороги великокняжеские татары, наделали делов: дома пожгли-пограбили, кто не успел спрятаться – мужиков поубивали, баб попортили, теперь вон татарчата по селу бегают.

Обходя дома, староста кричал одно и то же: «Москва едет! Хоронись!»

И с задней стороны бежали к лесу молодые бабы с девками, а хозяева набыстро прятали в тайники ценное. Село стояло на месте неспокойном, но бойком и жило сытно, грех жаловаться.


Через четверть часа в Крестах сделалось тихо. Оставшиеся боялись по домам, глядели через щелку в сторону Московской дороги.

Невеликое время спустя оттуда выползла серая змея: высунула голову на верхушку холма, спустилась на поле, вытянулась.

Староста волновался у крыльца, глядел из-под руки.

Никак войско? Неужто снова война?

Но, разглядев за кучкой всадников возки и телеги, десятка три или четыре, выдохнул. Обоз или караван.

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

Только раз староста понадобился – спросили, где колодец и чиста ли в нем вода. Зачерпнули, попробовали – показалась нехороша. Потащили бочонок со своей водой.

Ух ты! На ступеньки крыльца лег длинный красный ковер, растянулся прямо по грязи, до самой дороги. Юркие зеленые люди, перебрехиваясь суетливым, акающим московским говором, волокли в дом еще ковры, тяжелые сундуки, резные скамьи, кресло с высокой спинкой.

Другие, в багряных кафтанах, с двухголовой золотой птицей на спине, у каждого на боку сабля, поехали вдоль улицы, что-то выглядывая или проверяя.

Старосте снова стало тревожно. Что ж это будет-то, Осподи? Кого с Москвы несет?

Однако приехали с другой стороны, сверху, от Новгорода.

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

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

Но разъяснилось.

Один холоп соскочил, снял с задка деревянный стул, поставил на землю; двое других, дюжих, открыли дверцу, приняли на руки тучного старика в шелковой шубе, усадили. Старик оказался калека, а стул непростой, на малых колесцах: толкнули сзади – покатился.

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

Земно кланяясь московскому боярину, староста незаметно перекрестил живот. Ну, если всё готовлено для Борисова – оно ничего, нестрашно. Борисов – привычный, почти что свой, лютого зла не сделает.

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

– Здесь ставьте! – крикнул Борисов слугам. – Поверните только. Как цыкну – сымайте меня под руки, и на коленки! Вон туда, там почище. И мягко ставьте, черти, не с размаху.

Тут все загудели:

– Едут, едут!

Староста обернулся вслед за остальными – Осподи-Сусе!

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

Только теперь догадался староста, кто это. Обмер: неужто сподоблюсь, своими глазами увижу? Самого великого князя Ивана Васильевича?


Нет, не сподобился. Глянул по сторонам главный над зелеными слугами человек – длиннобородый, грозный – и велел:

– Убрать этого! Больше ненадобен!

Схватили старосту за шиворот, отволокли от двора, поддали пинка – катись, чтоб духу не было.

  • Перевод

Почему эта книга заслуживает перевода

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

После прочтения книги я заинтересовался Чадом. Нашёл его блог в сети. Как оказалось, он начал выкладывать в нём главы из своей книги (на данный момент опубликовано 2 главы из 53). Я спросил разрешения на перевод для хабра, он ответил, что это хорошая идея, но только сначала мне надо отправить ему письмо с тем, что конкретно я хочу переводить (видимо это пожелание было как-то связано с тем издательством, где была опубликована книга). После моего ответа неделю было молчание, я отправил повторное письмо - ответа снова не было. Потом я получил от него приглашение на Wunderlist (сервис, за который он отвечает на данный момент). В общем, я посчитал, что если явного запрета не было, а эти главы уже и так находятся в свободном доступе, и он ещё не совсем про меня забыл, то делать перевод можно. В общем, если перевод сообществу окажется полезным, я продолжу переводить другие главы. В тексте возможны ошибки (делал вычитку несколько раз, но всё же вдруг), поэтому заранее прошу прощения и прошу сообщать мне обо всех проблемах через личные сообщения.

Не паникуй

Я начал свою карьеру программиста, потому что любил компьютерные игры. С тех дней, когда игры запускались с кассет на моём Commodore 64, я был просто зачарован их интерактивностью и тем насколько глубоко они могли погрузить игрока в свой мир. Я стеснялся признать этот факт, но с течением времени понял, что в этом нет ничего зазорного. Как бы то ни было компьютерные игры превратили для меня картинку с экрана монитора в нечто большее, с чем я чувствовал себя комфортно, и что меня приводило в восторг.

Самой любимой игрой был Doom от id Software. Особенно мне нравился режим игры по сети против других игроков - deathmatch. Желающие поиграть между собой могли подключиться друг к другу через модем по телефонной линии или через обычное последовательное подключение и вести поединок на небольших локациях. Я был очень хорош в deathmatch. Я даже шутил, что это могло бы стать моей профессией - настолько я хорош в нём был. На удивление, поединок с другими игроками при своей простой цели по факту достаточно сложен. Он требует использования как хороших технических навыков игры, так и психологии - как безумный микс шахмат и быстрой перемотки вперёд.

Самый лучший способ прокачать навыки в своём деле - наблюдать за тем, как работает мастер. В те времена моего увлечения Doom, был один такой мастер, который был известен под ироничным ником «Noskill» («Безумения» - игра слов прим. переводчика) . Noskill был царствующим чемпионом в Doom. Люди со всей Северной Америки могли оплачивать недешёвые счета за телефонную связь, лишь бы попытать счастье сыграть с ним. Поединки сохраняли с помощью встроенной в Doom функции записи. Я пересматривал каждую из них.

Для меня разгадка секрета мастерства Noskill не заняла много времени. Конечно, он был очень хорош в самой игре, но также был очевидный ключ к его успеху - он никогда не паниковал. Doom был такой игрой, раунд в которой мог завершится за считанные секунды после своего начала. Это было реально быстро. Я помню свой первый deathmatch: появился-умер-появился-умер-появился-умер. Когда в конечном счёте я мог оставаться в живых более чем несколько секунд, я обнаруживал себя бесцельно бегущим по коридору, едва ли понимая, где сейчас нахожусь.

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

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

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

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

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

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

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

Мы паникуем, когда теряем перспективу. Когда что-то идёт не так, сложно не фокусировать своё внимание на этом. Я не говорю, что это плохо, и даже до некоторой степени это хороший способ решать проблемы. Но, к сожалению, такой подход становится причиной другой проблемы: без разницы насколько бы ни была маленькой первичная проблема, начинает казаться, что важна только она. Проблема становится всё больше и больше, уровень стресса увеличивается, и в итоге наши мозги просто отключаются.

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

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

Самое забавное в этом то, что мы представили сценарий из реальной жизни, в котором человек работает вне своей зоны комфорта, когда он сталкивается с проблемой и начинает паниковать. Это не сильно отличается от того, как я реагировал в те моменты, когда мои разработки не укладывались в сроки, неожиданно рушили систему или просто разочаровывали клиента. Это всё происходило просто в другом контексте.

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

Действуй!

1. Начните вести журнал паники. Суть - перехватить панику до того, как она возникнет. Это возможно, если вы будете развивать своё «реал-тайм» осознание возникающих ощущений и эмоций. Я научился делать это, анализируя реакции и ситуации уже после случившегося факта. Я не настолько крут, чтобы запустить поток в «фоне» для анализа возникающих мыслей, но я обнаружил, что если практиковать анализ в «офлайне», я становлюсь всё лучше и лучше, делая анализ в реальном времени.

Говорить, что вы будете делать свою работу лучше, анализируя реакции, и реально делать это - две разные вещи. Ведение журнала поможет структурировать процесс. Каждый день в определённое время (используйте календарь с напоминанием!), открывайте текстовый файл и записывайте любую ситуацию, которая вызвала у вас панику, даже если это было что-то из мелочей. Один раз в неделю, просматривая составленный список, оцените долгосрочные последствия каждой ситуации, вызвавшей панику. Действительно ли стоило паниковать? Какой могла бы быть наиболее разумная реакция на эту ситуацию? Чтобы сделал герой в фильме о вашей жизни вместо паникёрства?

После некоторой практики вы обнаружите, что анализ будет происходит в то время, как только паника будет подкрадываться. Рационально исследуя причины своей паники в реальном времени, вы поймёте, что паника отступает и в конечном счёте рассеивается.

P.S. На хабре в 2009 году начинался проект перевода этой книги.

Программист-фанатик Чед Фаулер

(Пока оценок нет)

Название: Программист-фанатик
Автор: Чед Фаулер
Год: 2009
Жанр: Руководства, Программирование, Личностный рост, Зарубежная психология, Зарубежная компьютерная литература, Зарубежная справочная литература

О книге «Программист-фанатик» Чед Фаулер

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

На нашем сайте о книгах lifeinbooks.net вы можете скачать бесплатно без регистрации или читать онлайн книгу «Программист-фанатик» Чед Фаулер в форматах epub, fb2, txt, rtf, pdf для iPad, iPhone, Android и Kindle. Книга подарит вам массу приятных моментов и истинное удовольствие от чтения. Купить полную версию вы можете у нашего партнера. Также, у нас вы найдете последние новости из литературного мира, узнаете биографию любимых авторов. Для начинающих писателей имеется отдельный раздел с полезными советами и рекомендациями, интересными статьями, благодаря которым вы сами сможете попробовать свои силы в литературном мастерстве.

© Pragmatic Bookshelf; 2 edition (June 4, 2009)

© Перевод на русский язык ООО Издательство «Питер», 2015

© Издание на русском языке, оформление ООО Издательство «Питер», 2015

* * *

Для Келли Джин

Предисловие

Я уверен, что в каждом из нас есть что-то незаурядное, но масса времени уходит на то, чтобы понять, что же на самом деле важно, на то, чтобы вытянуть это из самого себя. Ты не сможешь стать незаурядным, если не любишь свое окружение, свои инструменты, свою область деятельности.

До того как я зажегся проектами 37signals и Ruby on Rails, я прошел через множество работ и заданий, которые вовсе не соответствовали определению «незаурядный». Я торговал водой, и дни были похожи друг на друга, как две капли. Прежде чем я это осознал, прошло 6 месяцев, и они не дали мне абсолютно ничего. Чувство горечи было отвратительным.

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

И когда я такого следа не оставлял, это сказывалось и на моей личной жизни. Если я не чувствовал куража во время работы в офисе, становилось все труднее преодолевать себя и начать действовать.

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

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

Дэвид Хэйнемер Хэнсон (David Heinemeier Hansson), создатель проекта Ruby on Rails и партнер проекта 37signals

Благодарности

Я бы никогда не написал эту книгу, если бы не Дэйв Томас и Энди Хант. Их книга «Программист-прагматик. От подмастерья к мастеру» (The Pragmatic Programmer: From Journeyman to Master) стала катализатором и вдохновляющей силой. Если бы не поддержка и руководство Дэйва, я бы так и считал себя недостаточно квалифицированным для написания этой книги.

Сюзанна Пфальцер (Susannah Pfalzer) редактировала второе издание книги. Под редактированием я подразумеваю подталкивание, воодушевление, вдохновение, руководство и, конечно… собственно редактирование. Ее терпение и умение найти правильные слова, мотивируя меня, а не пугая, – это как раз то, что было так необходимо для завершения работы. Если бы не Сюзанна, книга так и осталась бы набором сумбурных, не до конца сформулированных идей.

Хочу поблагодарить Дэвида Хэйнемера Хэнсона (David Heinemeier Hansson), написавшего предисловие. Его карьера в 37signals и Rails – это блестящий пример воплощения идей, лежащих в основе этой книги. Я рад, что в мой труд внесли вклад и другие незаурядные люди, с которыми я сталкивался на протяжении своей карьеры. Огромное спасибо Стефену Акерсу (Stephen Akers), Джеймсу Дункану Дэвидсону (James Duncan Davidson), Вику Чадха (Vik Chadha), Майку Кларку (Mike Clark), Патрику Коллисону (Patrick Collison) и Тому Престену-Вернеру (Tom Preston-Werner), которые вдохновляли и меня, и читателей.

Спасибо рецензентам за ценные замечания, которые помогли в подготовке второго издания. Всегда удивительно, насколько неправильна может быть исходная версия главы и насколько правильной ее может сделать хороший рецензент. Спасибо Сэмми Лэрби (Sammy Larbi), Брайну Дайку (Bryan Dyck), Бобу Мартину (Bob Martin), Кенту Беку (Kent Beck), Алану Фрэнсису (Alan Francis), Джареду Ричардсону (Jared Richardson), Ричу Доуни (Rich Downie) и Эрику Костнеру (Erik Kastner).

Не могу не упомянуть Джульет Томас (Juliet Thomas), редактировавшую первое издание книги. Ее энтузиазм и видение перспектив были неоценимы. Я получил огромное количество отзывов от рецензентов первого издания: Кэри Боаз (Carey Boaz), Карла Брофей (Karl Brophey), Брэндона Кэмбэла (Brandon Campbell), Вика Чадха (Vik Chadha), Мауро Чичио (Mauro Cicio), Марка Донохью (Mark Donoghue), Пэта Эйлера (Pat Eyler), Бэна Гудвина (Ben Goodwin), Якоба Харриса (Jacob Harris), Адама Кейса (Adam Keys), Стива Морриса (Steve Morris), Билла Налла (Bill Nall), Уэсли Рейза (Wesley Reiz), Авика Сенгупта (Avik Sengupta), Кента Спиллнера (Kent Spillner), Сандеша Таттитали (Sandesh Tattitali), Крэйга Утли (Craig Utley), Грега Вона (Greg Vaughn) и Питера У. А. Вуда (Peter W. A. Wood). Они помогли сделать книгу значительно лучше, и я никогда не смогу отблагодарить их за потраченное время, силы и проявленное понимание.

Спасибо всем прекрасным людям, с которыми я работал как официально, так и не официально, за идеи, легшие в основу этой книги. Спасибо за то, что выслушали, научили и просто общались, Донни Уэббу (Donnie Webb), Кену Смиту (Ken Smith), Уолтеру Хоэ (Walter Hoehn), Джеймсу Макмюрри (James McMurry), Кэри Боаз, Дэвиду Алану Блэку (David Alan Black), Майку Кларку, Николь Кларк (Nicole Clark), Вику Чадха, Ави Брайнт (Avi Bryant), Ричу Килмеру (Rich Kilmer), Стиву Акерсу (Steve Akers), Марку Гарднеру (Mark Gardener), Райну Оуненсу (Ryan Ownens), Тому Копелэнду (Tom Copeland), Дэйву Крэйну (Dave Craine), Джону Афайду (John Athayde), Марселю Молина (Marcel Molina), Эрику Костнеру (Erik Kastner), Брюсу Уильямсу (Bruce Williams), Дэвиду Хэйнемеру Хэнсону (David Heinemeier Hansson), Али Сареа (Ali Sareea) и Джиму Уэричу (Jim Weirich).

Спасибо моим родителям за их постоянную поддержку. И, самое главное, – спасибо моей жене Келли за то, что наполняет мою жизнь смыслом.

Введение

Книга посвящена тому, как реализовать себя и сделать карьеру. Самореализация и удача редко приходят случайно. Они требуют вдумчивости, целеустремленности, действия и готовности резко сменить курс, если потребуется. В этой книге описывается стратегия, позволяющая спланировать и реализовать совершенную с точки зрения успеха карьеру (и как следствие – жизнь) разработчика программного обеспечения.

Книга о том, как взрастить в себе желание быть незаурядным. Удивительно, но когда мы начинаем строить карьеру, далеко не в каждом живет стремление стать незаурядным. Большинство из нас просто плывет по течению. Причем СМИ, друзья, знакомые и родные лишь занижают наши ожидания. Поэтому, чтобы сделать свою жизнь незаурядной, ты должен поставить себе цель, а это совсем не очевидно.

Большинство взрослых людей подавляющую часть своего времени проводят на работе, а по статистике за 2006 г., средний американец провел на работе половину жизни. Отдых и занятия спортом далеко позади и занимают лишь 15 % времени бодрствования. Факты говорят о том, что наша жизнь в основном проходит на работе.

Если бо́льшая часть жизни поглощена работой, то любовь к работе – один из важнейших способов возлюбить собственную жизнь . Интересная, мотивирующая и достойно оплачиваемая работа будит тебя по утрам гораздо лучше, чем скучные и тривиальные обязанности. Если ты хорошо работаешь, значит, 50 % времени ты занят тем, в чем ты действительно хорош. И наоборот, если ты работаешь плохо, то бо́льшую часть времени ты чувствуешь себя некомпетентным или виновным в том, что не способен сделать должным образом.

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

Был бы я счастливее, имея больше денег? Был бы я счастливее, если бы мои достижения больше ценились? Был бы я счастливее, если бы меня повысили? А если бы я стал знаменит? А если бы я был беден и имел самую обычную работу, то мог бы я быть счастлив? Возможно ли это? И если да, то стоит ли тогда гнаться за деньгами или лучшей работой?

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

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

Не ведая преград!

По иронии судьбы одним из важнейших этапов на пути построения незаурядной карьеры для меня стало первое издание этой книги. Она называлась «Моя работа досталась индусам (а все, что получил я, – эта жалкая книжонка), или 52 способа сохранить работу» (My Job Went to India (And All I Got Was This Lousy Book): 52 Ways to Save Your Job). На обложке был изображен парень с табличкой «Код за еду». Это было прикольно, а название и шокирующая красная обложка обыгрывали страх Западного мира, что всю работу захватят гастарбайтеры из развивающихся стран.

Однако все это создавало неправильный образ. Если ты всего лишь хочешь «сохранить» работу, тут я тебе не помощник. Эта книга не о том, как добиться некоего среднего уровня развития, достаточного, чтобы тебя не уволили. Эта книга о том, как стать крутым . Как стать победителем . Ты не выиграешь гонку, если просто будешь стараться не проиграть. И ты не выиграешь в жизни, думая о том, как не облажаться. Эта книга не о том, как не облажаться. Мне даже думать об этом не хочется, и тебе, надеюсь, тоже.

Я отлично помню момент, когда решил, что моя карьера должна стать незаурядной. Мои первые рабочие места стали продолжением подростковых увлечений – я постепенно двигался к весьма посредственной карьере профессионального саксофониста. Однако благодаря удаче и отчасти природному таланту я умудрился сойти с этого пути, получить высокооплачиваемую работу штатного технического специалиста одной из крупных компаний и стать уважаемым человеком в этой среде. Но это было только начало , и я об этом знал.

Как-то вечером после работы я просматривал полки в ближайшем книжном магазине и увидел среди новинок книгу Кента Бека «Экстремальное программирование» (Extreme Programming Explained. Embrace Change ). Идея любить перемены всегда была мне близка. До того момента у меня всегда были сложности с усидчивостью, я переходил с одной работы на другую, часто меняя работодателей. Хотя описание «методологии разработки ПО» казалось мне невыносимо скучным и отдавало менторством, я решил, что если эта методология поддерживает постоянные перемены, это может помочь мне не скучать и не думать о том, чтобы очередной раз поменять работу.

Покупка этой книги оказалась моей удачей. Начав читать, я уже не мог оторваться, потом я прочел все, что нашел в интернете об экстремальном программировании (Extreme Programming, XP). Эти идеи захватили меня настолько, что я обратился к руководителю информационной службы, пытаясь и его приобщить в своей новой религии. Это мне удалось, и для внедрения экстремального программирования он отправил меня и многих моих коллег на соответствующие курсы.

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

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

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

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

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

Я часто задаюсь вопросом, почему так много хороших музыкантов являются также хорошими программистами? Причина проста. Дело не в том, что используются одни и те же функции мозга, обе профессии ориентированы на нюансы, обе требуют креативности. Дело в том, что человек, который хочет стать великим, с гораздо большей вероятностью им станет, чем тот, кто просто хочет делать свое дело. И даже если не все могут быть Мартинами Фаулерами, Линусами Торвальдсами или программистами-прагматиками, постановка столь высокой цели делает это более вероятным.

Ты должен

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

Как составить такой план? Разработка программ – это бизнес. Как программисты, мы являемся еще и бизнесменами. Наши компании наняли нас вовсе не потому, что любят нас. Этого никогда не было и не будет. Просто потому, что не имеет отношения к бизнесу. Компании существуют совсем не для того, чтобы нам каждый день было куда пойти. Цель бизнеса – делать деньги. Чтобы преуспеть в компании, ты должен четко представлять себе, как ты вписываешься в план добывания денег.

Как мы увидим позже, сохраняя тебя в штате, компания тратит значительные средства. Она инвестирует в тебя. Твоя задача – стать безусловно хорошей инвестицией. Ты станешь судить о своей продуктивности в зависимости от той ценности, которую ты приносишь организации или заказчику, который тебя нанял.

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

♦ Выбери рынок . Осознанно и осторожно подбери технологии и сферы бизнеса, на которых ты будешь концентрироваться. Как сбалансировать риски и отдачу? Как учесть фактор спроса и предложения?

♦ Инвестируй в свой продукт . Твои знания и навыки – это краеугольный камень всего продукта. Правильные инвестиции в них – ключ к хорошему спросу на рынке труда. Просто знать Visual Basic или Java уже недостаточно. Какие еще навыки могут тебе понадобиться в новых экономических условиях?

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

♦ Продавай ! Даже самый лучший продукт не будет продаваться, если о его существовании никто не знает. Как без заискивания получить признание в компании и в отрасли в целом?

Новое издание

Это уже второе издание книги «Моя работа досталась индусам (а все, что получил я, – эта жалкая книжонка), или 52 способа сохранить работу» (My Job Went to India (And All I Got Was This Lousy Book): 52 Ways to Save Your Job ). Цель переиздания – дополнительно сконцентрироваться на основной теме: создании грандиозной карьеры. Для этого я не только придумал более позитивное название, но и изменил содержание.

Дэвид Хэйнемер Хэнсон, создатель Ruby on Rails и партнер в проекте 37signals, написал новое вступительное слово.

В каждую часть я добавил одно (или несколько) эссе, написанных людьми, с которыми я сталкивался или работал, и чьи карьеры по-настоящему незаурядны. Эти эссе показывают, какие решения принимали новаторы, разработчики, менеджеры и предприниматели на своем пути к успеху. Они подтверждают тот факт, что описываемые в книге подходы – это не просто предположения, применимые лишь в идеальном окружении. Это реальные дела, на которые способны реальные люди.

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

К советам, которые были в первом издании, добавлены новые разделы «Действуй!»

Введение и заключение также поменялись, чтобы в полной мере отразить назначение книги и ее акцент на построение грандиозной карьеры.

Назначение книги – показать системный путь построения незаурядной карьеры разработчика программного обеспечения. Мы рассмотрим примеры и опишем действия, которые ты можешь предпринять прямо сейчас и которые будут иметь позитивный эффект как в краткосрочном, так и в долгосрочном плане.

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

Часть I. Найди свой рынок

Ты собираешься сделать крупные инвестиции. Я подразумеваю не большие денежные суммы, а твое время – твою жизнь. Большинство не привыкло прикладывать усилий к построению своей карьеры, предпочитая плыть по течению. Человек изучает язык Java или Visual Basic, и в какой-то момент работодатель оплачивает ему курсы повышения квалификации для знакомства с последними новинками отрасли. И снова начинается рутинная работа, пока не появится очередная направляющая сила. В итоге карьера целиком зависит от стечения обстоятельств.

Дэйв Томас и Энди Хант в книге «Программист-прагматик: путь от подмастерья к мастеру» (The Pragmatic Programmer: From Journeyman to Master ) рассказывают о программировании в расчете на совпадения . Большинство программистов начинают работать над задачей, добавляя небольшие фрагменты кода. Иногда просто берется фрагмент кода с сайта и редактируется под собственные нужды. Принцип работы программы при этом остается непонятым, но в нее вносятся многочисленные коррективы, пока она не начнет соответствовать текущим надобностям. Полученный таким образом продукт напоминает карточный домик, и добавление каждой следующей подсистемы повышает вероятность сбоя.

Любой разработчик программного обеспечения понимает порочность подобного подхода. При этом собственный карьерный рост многие оставляют на волю случая. Каким технологиям следует уделить повышенное внимание? Эксперты в какой области являются самыми востребованными? Что лучше – расширять кругозор или углублять свои знания? Мы просто обязаны задавать себе все эти вопросы.

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

Так почему же большинство из нас не столь тщательно относятся к решениям, связанным с карьерным ростом? Если взглянуть на карьеру как бизнес (а так оно и есть), твоим «продуктом» будут те услуги, которые ты в состоянии оказать.

Что это за услуги? Кому ты собираешься их продавать? Возрастет или сократится спрос на них в будущем? Насколько ты готов рискнуть, делая выбор?

Ответы на все эти важные вопросы поможет найти первая часть книги.

Чед Фаулер

Программист-фанатик

Для Келли Джин

Предисловие

Я уверен, что в каждом из нас есть что-то незаурядное, но масса времени уходит на то, чтобы понять, что же на самом деле важно, на то, чтобы вытянуть это из самого себя. Ты не сможешь стать незаурядным, если не любишь свое окружение, свои инструменты, свою область деятельности.

До того как я зажегся проектами 37signals и Ruby on Rails, я прошел через множество работ и заданий, которые вовсе не соответствовали определению «незаурядный». Я торговал водой, и дни были похожи друг на друга, как две капли. Прежде чем я это осознал, прошло 6 месяцев, и они не дали мне абсолютно ничего. Чувство горечи было отвратительным.

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

И когда я такого следа не оставлял, это сказывалось и на моей личной жизни. Если я не чувствовал куража во время работы в офисе, становилось все труднее преодолевать себя и начать действовать.

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

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


Дэвид Хэйнемер Хэнсон (David Heinemeier Hansson),

создатель проекта Ruby on Rails и партнер проекта 37signals

Благодарности

Я бы никогда не написал эту книгу, если бы не Дэйв Томас и Энди Хант. Их книга «Программист-прагматик. От подмастерья к мастеру» (The Pragmatic Programmer: From Journeyman to Master) стала катализатором и вдохновляющей силой. Если бы не поддержка и руководство Дэйва, я бы так и считал себя недостаточно квалифицированным для написания этой книги.

Сюзанна Пфальцер (Susannah Pfalzer) редактировала второе издание книги. Под редактированием я подразумеваю подталкивание, воодушевление, вдохновение, руководство и, конечно… собственно редактирование. Ее терпение и умение найти правильные слова, мотивируя меня, а не пугая, - это как раз то, что было так необходимо для завершения работы. Если бы не Сюзанна, книга так и осталась бы набором сумбурных, не до конца сформулированных идей.

Хочу поблагодарить Дэвида Хэйнемера Хэнсона (David Heinemeier Hansson), написавшего предисловие. Его карьера в 37signals и Rails - это блестящий пример воплощения идей, лежащих в основе этой книги. Я рад, что в мой труд внесли вклад и другие незаурядные люди, с которыми я сталкивался на протяжении своей карьеры. Огромное спасибо Стефену Акерсу (Stephen Akers), Джеймсу Дункану Дэвидсону (James Duncan Davidson), Вику Чадха (Vik Chadha), Майку Кларку (Mike Clark), Патрику Коллисону (Patrick Collison) и Тому Престону-Вернеру (Tom Preston-Werner), которые вдохновляли и меня, и читателей.

Спасибо рецензентам за ценные замечания, которые помогли в подготовке второго издания. Всегда удивительно, насколько неправильна может быть исходная версия главы и насколько правильной ее может сделать хороший рецензент. Спасибо Сэмми Лэрби (Sammy Larbi), Брайну Дайку (Bryan Dyck), Бобу Мартину (Bob Martin), Кенту Беку (Kent Beck), Алану Фрэнсису (Alan Francis), Джареду Ричардсону (Jared Richardson), Ричу Доуни (Rich Downie) и Эрику Костнеру (Erik Kastner).

Не могу не упомянуть Джульет Томас (Juliet Thomas), редактировавшую первое издание книги. Ее энтузиазм и видение перспектив были неоценимы. Я получил огромное количество отзывов от рецензентов первого издания: Кэри Боаз (Carey Boaz), Карла Брофей (Karl Brophey), Брэндона Кэмбэла (Brandon Campbell), Вика Чадха (Vik Chadha), Мауро Чичио (Mauro Cicio), Марка Донохью (Mark Donoghue), Пэта Эйлера (Pat Eyler), Бэна Гудвина (Ben Goodwin), Якоба Харриса (Jacob Harris), Адама Кейса (Adam Keys), Стива Морриса (Steve Morris), Билла Налла (Bill Nall), Уэсли Рейза (Wesley Reiz), Авика Сенгупта (Avik Sengupta), Кента Спиллнера (Kent Spillner), Сандеша Таттитали (Sandesh Tattitali), Крэйга Утли (Craig Utley), Грега Вона (Greg Vaughn) и Питера У. А. Вуда (Peter W. A. Wood). Они помогли сделать книгу значительно лучше, и я никогда не смогу отблагодарить их за потраченное время, силы и проявленное понимание.

Спасибо всем прекрасным людям, с которыми я работал как официально, так и не официально, за идеи, легшие в основу этой книги. Спасибо за то, что выслушали, научили и просто общались, Донни Уэббу (Donnie Webb), Кену Смиту (Ken Smith), Уолтеру Хоэ (Walter Hoehn), Джеймсу Макмюрри (James McMurry), Кэри Боаз, Дэвиду Алану Блэку (David Alan Black), Майку Кларку, Николь Кларк (Nicole Clark), Вику Чадха, Ави Брайнт (Avi Bryant), Ричу Килмеру (Rich Kilmer), Стиву Акерсу (Steve Akers), Марку Гарднеру (Mark Gardener), Райну Оуненсу (Ryan Ownens), Тому Копелэнду (Tom Copeland), Дэйву Крэйну (Dave Craine), Джону Афайду (John Athayde), Марселю Молина (Marcel Molina), Эрику Костнеру (Erik Kastner), Брюсу Уильямсу (Bruce Williams), Дэвиду Хэйнемеру Хэнсону (David Heinemeier Hansson), Али Сареа (Ali Sareea) и Джиму Уэричу (Jim Weirich).

Спасибо моим родителям за их постоянную поддержку. И, самое главное, - спасибо моей жене Келли за то, что наполняет мою жизнь смыслом.

Введение

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

Книга о том, как взрастить в себе желание быть незаурядным. Удивительно, но когда мы начинаем строить карьеру, далеко не в каждом живет стремление стать незаурядным. Большинство из нас просто плывет по течению. Причем СМИ, друзья, знакомые и родные лишь занижают наши ожидания. Поэтому, чтобы сделать свою жизнь незаурядной, ты должен поставить себе цель, а это совсем не очевидно.

Большинство взрослых людей подавляющую часть своего времени проводят на работе, а по статистике за 2006 г., средний американец провел на работе половину жизни. Отдых и занятия спортом далеко позади и занимают лишь 15 % времени бодрствования. Факты говорят о том, что наша жизнь в основном проходит на работе.

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