В целом книга очень похожа на книгу «Идеальный программист» Р. Мартина. Прослеживаются общие мысли: нужно быть заметным, заявлять о себе, не замыкаться. Ну все такое. Книга построена в виде набора советов, сгруппированных по общим тематикам.

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

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

Совет 1. Будь впереди или погибнешь?

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

Совет 2. Предложение и спрос.

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

Совет 3. Умения писать код мало.

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

Совет 4. Будь худшим.

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

Совет 5. Инвестируй в интеллект.

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

Совет 6. Не слушай родителей.

Родители хотят, чтобы с ребенком было все в порядке. Однако блистательные карьеры и связанные с этим риски никак не вписываются в эту стратегию. В большинстве своем их советы звучат как «обойтись без потерь», но без риска не будет и успеха. Победители рискуют, а не пытаются «прикрыть тылы». Также программисты часто меняют проекты и рабочие места, и это нормально в IT, однако может быть дикостью для старшего поколения. Построение карьеры в одной компании замедляет твое развитие как разработчика. «Разве твоя судьба до конца дней работать в компания_нейм? Нет, черт возьми!». Нужно стремиться быть «разработчиком технология_нейм», а не «разработчик в компания_нейм». В вопросах карьеры нужно идти на обдуманный риск, не позволяй страху завладеть тобой. Если не получаешь удовльствия на своей работе, то не достигнешь в ней совершенства.

Совет 7. Будь универсалом.

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

Совет 8. Будь специалистом.

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

Совет 9. Не клади все свои яйца в чужую корзину.

Ты пишешь на языке, изобретенным не тобой, используешь библиотеки, которые написал не ты. Не нужно стремиться стать «разработчиком .NET» или «разработчиком SharePoint». Эти технологии/языки придуманы не тобой, поэтому не ставь на них свою жизнь. В идеале нужно постараться начать свой проект и вести его, развивать и поддерживать.

Совет 10. Полюби или уходи.

Е ли хочешь достичь высот на работе, то ты должен полюбить ее. Если тебе все равно на нее, то это быстро станет заметно. Важен энтузиазм в разработке ПО. Без него очень сложно достичь успеха. Здесь я вспоминаю идею Анны Обуховой из ScrumTrek, которая говорила: «если разработчики не получили мотивации и вдохновения на задачу, то эту задачу они сделают на силе воли. А силы воли у них уже нет, они ее растратили на поездку до работы». Можно избежать посредственности, если найти работу, которая влечет. Ты просто не можешь не работать.


Часть 2. Инвестируй в свой продукт.

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

Совет 11. Учимся ловить рыбу.

Ты — разработчик. Тебе могут помогать специалисты по настройке сервера, бизнес-аналитики и другие. Но разве ты стоишь многого, если твои навыки зависят от целой группы специалистов? Прежде всего, стоит изучить инструменты, с которыми ты работаешь чаще всего. Затем платформу. А дальше — вспомогательные инструменты и бизнес-аспекты. Все знать необязательно, но ходить за заказчиком и дергать его по мелочам — не дело специалиста. Но при этом важно не забывать принцип «Не жди, пока тебе расскажут. Спрашивай сам». Нужно постоянно себя спрашивать «как и почему?». Почему и как это работает? Как IIS передает запросы страницам в контроллеры ASP.NET? Все эти вещи должны тебя интересовать.

Совет 12. Разберись, как работает бизнес.

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

Совет 13. Найди наставника.

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

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

Совет 14. Стань наставником.

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

Совет 15. Практика, практика и еще раз практика.

Следует инвестировать свое время в свое ремесло. Как музыканты разыгрываются и оттачивают навыки, издавая самые ужаснейшие звуки, так и разработчики должны практиковаться без зазрения совести на качество работы. Ибо практика — не цель, а средство для достижения Скилла писать хорошо и чисто. Нужно тренироваться на пределе своих возможностей. Можно отнестись к изучению своих инструментов как к физическим упражнениям, которые нужно делать постоянно. Можно применять технику «с чистого листа»: пробуй писать программу сразу как на чистовик. Есть множество разных способов практики, но главное: чтобы писать хороший код, нужно сначала научиться писать тонны плохого.

Совет 16. Подход к работе.

Разработка ПО — это не вещь, а процесс создания некоторой вещи. Есть множество методик по организации этого процесса. Может показаться, что ты не можешь и не должен влиять на процесс, ведь ты — всего лишь разработчик/тестировщик. Но это не так. Ты — часть процесса, и вполне имеешь право влиять на него. Необходимо анализировать процесс, выявлять слабые и узкие места его, чтобы понять, как можно его улучшить. Если ты хочешь хороший процесс, то принимай участие в его внедрении или формировании. Обсуждай с другими разработчиками компании процессы и практики, формализуй их, представь своему руководству. Даже если процессы спускаются сверху, то ты вполне можешь рассказать своему руководству, как можно интерпретировать указания сверху на конкретно ваш отдел. Понимание процессов и умение объяснить их очень ценится: кодеров много, но тех, кто может организовать работу кодеров, мало. Сведения о принципах организации и бизнес-процессах пойдет тебе только в плюс.

Совет 17. На плечах гигантов.

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

Совет 18. Автоматизация задач.

Самый дешевый разработчик не всегда гарантирует низкие затраты на разработку ПО. Многие руководители проектов считают, что если они хотят увеличить производительность, то им нужно просто нанять больше человек. Практика показывает, что это зачастую не так. Упор стоит делать на автоматизацию. Рутинные нудные задачи часто демотивируют и отнимают полезное время у разработчиков. Чтобы устранить это, стоит уделить время на автоматизацию рутинных задач. Делаешь накаты по инструкции вручную? Запрограммируй это! А еще лучше сделай систему CI/CD.


Часть 3. Исполнение.

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

Совет 19. Прямо сейчас.

Соревнования способствуют ускорению процессов. Ты можешь неделями делать системы для клиента, но если тебе дадут возможность участие в конкурсе — сделать прототип такой же системы за два дня — ты, скорее всего, справишься. Соревновательный дух подстегивает. Если ты будешь делать задачи быстро, то ты будешь успевать их заканчивать до того, как они тебе надоедят. Всегда спрашивай себя: «а что ты моешь сделать прямо сейчас?» Создавай движение, не расслабляйся. Становись тем, кто толкает процесс вперед.

Совет 20. Читай чужие мысли.

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

Совет 21. Ежедневные победы.

Каждый из нас иногда превозмогает свои усилия на работе, однако спустя какое-то время просто забывает. Чет Фаулер рекомендует записывать себе в блокнот «хиты дня» — маленькие ежедневные победы. Они могут быть незначительными, однако когда их накопится достаточно, можно вернуться назад и проанализировать. Фиксация хитов поможет тебе переосмыслить ценность заданий и свое поведение. Уже нельзя будет говорить, что ты тратишь две недели на совершенствование, когда ты обязан кажд день делать что-то такое, что необходимо зафиксировать. С чего можно начать? Нужно сесть на 30 минут и выписать всё, что бы ты поменял в текущем процессе разработки. На что тратишь время, что можно было бы автоматизировать. Спустя какое-то время будет что показать на очередном пересмотре зарплат. Чем ты был полезен работодателю?

Совет 22. Помни, на кого ты работаешь.

В идеальном мире все сотрудники понимают, как компания зарабатывает деньги. Однако со своих позиций каждый может не видеть всей картины. В том числе и разработчики. Каждый должен согласовывать свои рабочие цели с целями компании, в которой он работает, однако это не всегда легко осуществить. Но зато ты можешь посмотреть, какие проблемы испытывает твой непосредственный руководитель. Ты можешь видеть проблемы своей группы. Проанализируй проблемы группы и реши их, и тогда ты решишь проблемы своего начальника. Возможно, решив проблему начальника, ты решишь проблему его начальника, и так вверх до генерального директора. Делая свою небольшую часть работы, ты делаешь вклад в прибыль фирмы. Это делает работу осмысленной. Однако не стоит думать: «не буду делать работу своего начальника, он припишет мои заслуги себе». Ну да, опосредованно припишет. Но он ведь для того и сидит на свое месте, чтобы организовать твой труд в том числе. И его успех зависит от твоего успеха. И успех твоего начальника — твой успех тоже. Начальство же и формирует тебе зарплату.

Совет 23. Будь на своем месте.

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

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

Совет 24. Великолепная задача на сегодня.

Часто только в стрессовых ситуациях мы проявляемся с наилучшей стороны. Многие готовы просидеть полночи над задачей, забыв обо всем. Экстренные условия мобилизуют, они дают чувство восторга. Нужно уметь достигать этого же чувства при выполнении текущих задач, пусть даже и не очень интересных. Обычно интересно там, где разработчик может проявить свою фантазию. Соответственно, скучными задачами кажутся рутинные обязанности, которые не бросают вызов твоим способностям. Чтобы рутинные обязанности показались интересными, стоит попробовать делать их идеально. Не любишь юниттестирование — сделай пачку самых идеальных тестов, которые покрывают едва ли не 100% кода трестируемого модуля. К каждой нудной задачи подходи с мыслью, как можно сделать так, чтобы большее ее не делать вручную. Тогда такие задачи покажутся интересными.

Совет 25. Сколько ты стоишь?

Мало кто задумывается, сколько он стоит фирме, где работает, и сколько приносит денег. Для простоты рассветов ты можешь смело умножать свою зарплату на 2 — столько компания в общей массе соц.отчислений тратит на тебя. А приносишь ли ты хотя бы столько же прибыли ей? Выгодная ли ты инвестиция для своей компании? Како твой вклад в годовой доход фирмы? Пробуй думать в этом ключе и анализируй свой труд, приносит ли он деньги или сокращает ли расходы. Попробуй задать эти вопросы своему руководству, узнай, как еще ты можешь помочь компании. Один факт, что ты интересуешься этим, заставит руководство по другому взглянуть на тебя. Компания руководствуется таким понятием, как «минимальная планка уровня доходности инвестиции». Попробуй узнать ее и посчитай, являешься ли ты сам выгодной инвестицией?

Совет 26. Камешек в ведре воды.

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

Совет 27. Возлюби поддержку.

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

Совет 28. Восьмичасовое пламя.

Работать все должны не более 40 часов в неделю. Это и практично, и закреплено законом. Роб Мартин предложил относиться к рабочему дню как к восьмичасовому пламени: человек должен работать настолько интенсивно, что он просто не сможет работать больше восьми часов. Уставший человек не может работать так же хорошо, как и отдохнувший. Поэтому задержки на работе не приводят к ощутимому приросту производительности. Если каждый день задерживаться на работе, то ценность каждого часа рабочего дня падает. Ты не чувствуешь ограничения сверху и подсознательно не подстегиваешь себя к выкладыванию на 100% в течение 8 часов. Работа обычно не дает пока, когда ее в течение дня спускают на тормозах. Она идет с тобой домой и не дает расслабиться. Но если ты интенсивно работаешь в течение 8 часов, то у тебя просто не остается сил тащить рабочие проблемы домой. Работай меньше, чтобы все успевать. И тогда она принесет тебе больше удовольствия.

Совет 29. Научись проигрывать.

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

Совет 30. Умей говорить «Нет».

Самый быстрый путь к невыполнению обязательств — непосильные обязательства. Не стоит говорить «Да» только лишь ради того, чтобы не разочаровать просящего. В том, чтобы услышать «нет», нет ничего плохого. Наоборот, многие понимают это и больше верят в будущем твоим ответам «да». Более того, в области IT мало кто нанимает людей, которые слепо исполняют требования. А если ты попал в такую компанию, то не стоит в ней задерживаться. Не стоит увлекаться отказами: исполнительность на работе в цене. Лучше всего на просьбы будет что-то вроде: «Я не обладаю достаточным опытом для этой задачи, но я с радость займусь, чтобы освоить это. По срокам сориентировать не смогу.» Такой ответ ценят больше, чем необдуманное «да».

Совет 31. Не паникуй.

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

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

Совет 32. Скажи это, сделай это, покажи это.

Планирование для большинства — не очень интересное мероприятие. Однако Чет настоятельно советует планировать, приводя в примеры стартапы и компании, которые вдохновлялись планами и достигали успеха. Чтобы преодолеть нежелание планировать свой день/неделю/месяц, нужно поощрять себя при выполнении пунктов плана. Завершил задачу — перевел торжественно ее в папку «ГОТОВО». Уже чувствуешь себя лучше. Чет дает совет планировать публично: нужно сообщать своему руководству свои планы на неделю вперед и, главное, отчитываться о любом результате реализации этих планов: и позитивные, и негативные результаты. Тогда к твоим словам со временем будут прислушиваться, тебя будут называть «человек дела».

Если у тебя есть что-то, что тебе не нравится в текущих процессах на работе, то стоит о них говорить руководству. Однако просто лишь с критикой идти не стоит. Лучше всего придумать какой-нибудь план (а лучше несколько) по исправлению ситуации. Тогда рассматривающий твои претензии отнесется к ним более ответственно.


Часть 4, Маркетинг не только для бизнесменов.

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

Ну и что?

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

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

Совет 33. Восприятие и репутация.

Ты можешь долго играть в идеалиста, которому неважно, что о нем думают. Однако репутация — это реальность, тут нужно просто смириться. Есть старая мудрость: «Если дерево падает в лесу, где никого нет, производит ли оно шум?» Конечно производит, но если его некому услышать, то это совершенно не имеет значения.

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

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

Совет 34. Проводник в неведомое.

Возможно, наиболее важным качеством, которое позволит тебе проявиться себя на работе, является способность к коммуникации. Попробуй взглянуть на себя глазами своего заказчика/начальника. Заказчик отвечает за продукт, но его реализацию вынужден доверить малоприятным типам вроде программистов. Ходят важные и слова им не скажи. Хочешь ли ты быть одним из таких? Заказчики всегда будут искать тех, кто поможет им не переживать по поводу их проекта. Неподкованные заказчики тебя побаиваются, ведь они совершенно не понимают. Ты — их проводник по суровым землям программной разработки. Ты обеспечиваешь их комфорт по неизведанным местам. Ты показываешь им достопримечательности и не пускаешь в малоприятные места этого «города». Заказчик тебе доверяет, так нужно постараться оправдать это доверие. Заказчик — это тот, кто моет помочь тебе выполнить твое задание разработать программу. Ты знаешь программирование, а заказчик — бизнес-контекст. Заказчик представляет потребности бизнеса, а тебе платят за удовлетворение этих потребностей. Не забывай об этом.

Совет 35, Велик могучим русский языка (в оригинале, думаю, английский язык, но я не проверял).

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

Совет 36. Будь рядом.

У тебя есть возможность пообщаться с руководством или заказчиком? Не упускай ее. Присутствие — важная вещь. В личном общении имеют значение не только слова, но и выражение лица. Поэтому незнающим людям в IT гораздо легче вести разговор на темы разработки, если ты рядом — они по твоему лицу смогут понять, не глупость ли они говорят. При личном общении формируются тесные социальные связи. Дружба, контакты, нетворкинг. Многие решения принимаются во время деловых обедов и в неформальном общении. В письмах они лишь закрепляются. Будь на виду, не закрывайся в своем кабинете, стань неотъемлемой частью своего коллектива. Люди любят общаться с людьми в той или иной мере. Не нужно ограничиваться только лишь деловыми сообщениями и звонками. Когда будешь звонить своему коллеге в другом отделе, то не забудь поинтересоваться делами и перекинуться парой слов о возвышенном.

Совет 37. Разговор с бизнесменом.

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

Совет 38. Меняй мир.

Худшее, что могут спросить о тебе на работе — это «А чем он/она вообще занимается?» Это подразумевает, что люди понятия не имеют, что ты делаешь, каких результатов достигаешь. Мало кто задумывается о своих достижениях, многие просто приходят к восьми, делают задачи и уходят в пять. Они не задумываются о предназначении задач. Но чтобы быть разработчиком в странах первого мира, нужно иметь цель. Будь заметным в группе, предлагай новые идеи, пропагандируй изменения. Если видишь что-то, что коллеги делают неправильно, выноси на обсуждение, предлагай изменения. Не всем коллегам такое понравится, но не обращай внимание на них, ведь не стоит отказываться от изменений, если они могут задеть чьи-то чувства. Даже если коллеги выйдут из себя, пусть тебя утешит тот факт, что они точно никогда больше не спросят «А чем он вообще занимается?»

Совет 39. Пусть твой голос услышат.

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

Кого бы ты нанял охотнее: программиста или программиста-автора статей и/или книг? А не круто ли нанять того, кто внес вклад в опенсорсную библиотеку, которую ты используешь в своем проекте? Подумай над этим. В компьютерной отрасли нет объективной системы рейтинга разработчиков, которая работала бы при найме на работу. Чем больше твоя социальная сеть, тем лучше для твоей карьеры. Сделай свое имя известным,. Заставь говорить о себе. Читай блоги и начни писать сам. Начни с малого — делись своим мнением о книгах, которые прочел. Отрабатывай навыки письменной речи. Дальше — доклады на презентациях. Начинай раньше, чем почувствуешь себя готовым к этому.

Совет 40. Раскрути свой бренд.

Раскрутка бренда состоит из двух частей: создания собственной узнаваемой марки и действий, направленных на формирование положительных ассоциаций с твоим именем. Признание и уважение. Твое имя — это твой бренд. Береги его и не порти необдуманными постами или иным поведением. Гугл не забывает ничего.

Совет 41. Публикуй свой код.

Открытый исходный код. Это даст возможность сказать когда-нибудь «Вы используете <библиотека_нейм>? Так пару моих пулреквестов туда заапрувили!» Вредил собеседование закончится фразой «мы вам перезвоним». Опенсорс развивается, и отличным шансом проявить себя будет участие в развитии его. Открытый код — это реклама себя. Много кто использует Rails, но мало кто может похвастаться своим вкладом в его развитие. А руководство проектом с открытым кодом — так вообще огромный плюс при собеседованиях. Если человек успевает все это делать в свое свободное время, то значит это специалист с большой буквы и широкого круга компетенций.

Совет 42. Незаурядность.

Традиционный комплекс маркетинга состоит из четырех P: Продукт, Цена (price), Продвижение (Promotion) и Распространение (Placement). Цель маркетинга — создать связь между потребителем и производителем. В последнее время все больше обращают внимание на вирулентный маркетинг — когда о товаре говорят в непринужденном общении. Такой маркетинг выгоден: люди охотнее верят своим друзьям, чем рекламе по радио. Сейчас, говорит Чет Фаулер, можно выделиться только если ты незауряден. О тебе должны говорить еще до того, как спросят. Надо быть самым умным и/или быстрым, нужно действовать. Выделяйся на фоне остальных: напиши книгу, генератор кода, который вынужден часто писать и т.д. Будь личностью и делай вещи, о которых не смогут не говорить.

Совет 43. Заводи знакомства.

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


Часть 5. Сохраняя конкурентные преимущества.

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

Совет 44. Ты уже устарел.

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

Совет 45. Ты уже безработный.

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

Совет 46. Дорога в никуда.

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

Совет 47. Составь план.

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

Совет 48. Отслеживай состояние рынка.

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

Совет 49. Этот толстяк в зеркале.

Когда человек теряет или набирает вес, он может этого долго не замечать, ведь он видит себя каждый день. Только тогда, когда одежда становится большой/тесной, тогда и замечаешь. С твоей карьерой происходит то же самое. В один день ты можешь начать ощущать дискомфорт, что твоя работа тебе не подходит, что пришло время расти. Шкалы оценки конкурентоспособности нет, ты не сможешь понять объективно, растешь ты дальше или проседаешь. Посему нужно разрабатывать собственную шкалу. Важен также взгляд со стороны. Ищи себе наставника или доверенное лицо. Интересуйся мнением других о себе, они могут подсказать, где стоит улучшиться и подтянуть себя. Если на работе твоей используют метод оценки «360» — используй его и извлекай выгоду. Фиксируй результаты. Делай часто ретроспективу своей карьеры.

Совет 50. Ловушка для обезьян.

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

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

Совет 51. Избегай каскадного планирования карьеры.

В 2001 году придумали манифест гибкой разработки ПО. Ватерфолл приводил часто к тому, что разрабатываемый продукт в течение месяцев и лет становился никому не нужным, но вот гибкий подход позволил пересмотреть этот процесс в сторону постоянных ретроспектив и переоценки планов. Твоя карьера — это почти самое важное в твоей жизни, так будешь ли ты строить ее на основе ватерфолла со всеми его недостатками? Проводи переоценку ценностей, оглядывайся назад и решай, изменились ли твои приоритеты и цели. Если да, то не стоит об этом беспокоиться, ведь ты «повзрослел» и набрался мудрости. Карьерные изменения — это не строительство небоскреба: когда ты понимаешь, что двигаешься не туда, это не означает, что нудно выбрасывать весь накопленный опыт. Он тебе поможет, будь уверен.

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

Совет 52. Лучше, чем вчера.

Мы совершаем ошибки. Главное — умение их решать. Чем больше ошибок, тем сильнее ты фокусируешься на их решении, а не на их причине. Это можно наблюдать в большинстве областей жизни человека. Чтобы не погрязнуть в рутине, стоит каждый день себя спрашивать: «сегодня было лучше, чем вчера?» Если отвечаешь «да», означит двигаешься в нужную сторону. Копаешься в легаси-коде? Не бойся менять по чуть-чуть этот код, улучшай его постоянно, и тогда спустя время ты увидишь заметные улучшения. Получение быстрого результата, пусть и незначительного, мотивирует. Улучшения должны быть пусть и небольшими, но ежедневными. Разбивай большие задачи на маленькие этапы и закрывай их каждый день.

Совет 53. Стань независимым.

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

Попробуй себя в роли фрилансера, удели несколько выходных и вечером, чтобы закрыть какой-нибудь проект. Будь любознательным и Лене засиживайся на одном комфортном месте.