Наконец, в части VII «Психология» мы окунемся в метафизический мир и рассмотрим иллюзорного «призрака в машине». Несмотря на название этой части, я поделюсь с тобой правдивыми, практическими советами на темы, которые прямо влияют на твое эмоциональное состояние.
Думаю, ты можешь назвать эту часть как «Помоги себе сам», хотя мне не особо нравится эта фраза. В этой части основной фокус будет направлен на «перепрограммирование» мозга и создание позитивных установок, необходимых для достижения успеха. Мы поговорим о стоицизме и о том, как он может помочь тебе.
Мы слегка затронем тему отношения и любви, так как для большинства программистов эта область – одна из труднейших. Я также поделюсь с тобой списком «успешных книг»: каждый раз, когда мне удавалось пообщаться с какой-то известной или успешной личностью, я просил назвать их одну книгу, которую, по их личному мнению, должен прочитать каждый.
Устраивайся поудобнее, потому что мы начинаем. Отключи свой аналитический разум и приготовься погрузиться в совершенно уникальную книгу о программировании.
Часть I
Карьера
Самая большая ошибка, которую вы можете совершить, – это поверить, что вы работаете на кого-то другого. Движущая сила карьеры должна исходить от личности. Помните: рабочие места принадлежат компании, а у вас есть своя карьера!
Эрл НайтингейлЛишь небольшой процент разработчиков активно управляет своей карьерой. Но большинство успешных программистов достигли своего успеха благодаря каким-то действиям. Они ставят перед собой цели и разрабатывают планы их достижения. Если ты действительно хочешь добиться успеха в этом жестоком и суровом мире, то «вылизанное» резюме и согласие на любую работу тебе не поможет. Тебе нужно продумывать свои шаги далеко наперед и думать над своими действиями: что ты должен делать, когда ты должен делать и как ты должен это делать.
В этой части я помогу тебе определиться с тем, что ты хочешь от своей карьеры разработчика, и помогу добиться этого.
2
Воспринимай свою карьеру как бизнес
Представь, что сейчас лето, а ты стоишь на поле и наслаждаешься фейерверком. Вокруг тебя свистят заряды, готовые окрасить небо в голубые, красные, фиолетовые и желтые оттенки. Ты следишь за одним определенным зарядом, взлетающим высоко в небо и… ничего не происходит. Ни хлопка, ни взрыва, лишь тихое шипение. А на какой фейерверк должна быть похожа твоя карьера? На тот, что взмыл высоко в небо и окрасил его своими цветами, или тот, что попытался взлететь, но упал на землю?
Мысли как бизнесменМногие разработчики начинают свою карьеру с ошибок. Одна из главных ошибок – то, что начинающие разработчики не воспринимают свою карьеру как бизнес. Не дай себя обмануть; когда ты зарабатываешь на жизнь только написанием кода, ты ничем не отличаешься от средневекового кузнеца в своей кузнице. Времена могут меняться, и сейчас многие из нас работают на компании; несмотря на это, наши навыки, умения и бизнес все еще принадлежат нам самим. Мы всегда можем сменить месторасположение нашей «кузницы».
Такой образ мышления имеет огромное значение в управлении карьерой: если ты воспринимаешь себя как часть твоего бизнеса, то ты сможешь принимать хорошие бизнес-решения. Если ты привык регулярно получать зарплату вне зависимости от твоей продуктивности, то это может плохо сказаться на твоем мышлении. Ты можешь прийти к выводу, что ты просто обычный работник компании. Несмотря на то что в какой-то момент жизни ты правда можешь работать на компанию, не дай этой роли иметь решающее значение в твоей жизни и карьере.
Лучше всего думать о своем боссе как о покупателе, которому необходимы твои продукты для разработки ПО. Конечно, у тебя может быть только один покупатель и вся прибыль будет поступать только от него, но такое мышление помогает перейти от позиции беспомощности и зависимости к позиции автономности и самоуправления. По правде говоря, у многих реальных компаний есть один большой клиент, от которого поступает бо́льшая часть прибыли.
СОВЕТ. Первое, что тебе нужно сделать, – это изменить образ мышления. Тебе нужно избавиться от образа мышления слуги и стать бизнесменом, имеющим собственный бизнес. Если ты начнешь свою карьеру с правильным мышлением, то твое отношение к ней изменится: ты начнешь принимать верные и взвешенные решения, активно руководить своей работой.
Как начать думать как бизнесменПросто считать себя бизнесменом будет недостаточно. Чтобы получить от этого хоть какую-то пользу, ты должен понимать, как именно мыслит бизнесмен. Давай поговорим о том, как именно надо думать и позиционировать себя как бизнесмена и что это значит на самом деле.
Для начала давай разберемся с тем, что представляет собой бизнес. Чтобы бизнес стал успешным, нужно соблюсти несколько условий. Во-первых, у тебя должен быть продукт или услуга. Если тебе нечего предложить, то бизнес не будет зарабатывать. Что лучше всего продавать? Какой продукт или услугу?
У тебя может иметься собственный цифровой продукт, который ты захочешь продавать (мы поговорим об этом в главе 16), но многие разработчики предоставляют услуги по разработке ПО. Разработка программного обеспечения – это довольно обширный термин, включающий в себя множество разнообразной работы и услуг; если говорить простыми словами, то разработчики ПО продают свои навыки по созданию и реализации идей в виртуальной реальности.
ПРИМЕЧАНИЕ. Ты предоставляешь свои услуги по разработке ПО.
Выбор продукта, который ты можешь продавать как бизнесмен, влияет на твое отношение к карьере в целом. Компании часто проверяют, исправляют и улучшают свои продукты. Ты тоже не должен забывать об этом. Ценность предоставляемых тобой услуг и продуктов может меняться, так что твоя основная цель заключается не только в оценивании их стоимости, но и в отслеживании того, чем ты и твои услуги отличаются от тысяч других разработчиков.
И так мы плавно подходим к теме маркетинга, о котором поговорим в следующей части. Тебе следует принять тот факт, что одного продукта и услуги будет недостаточно – необходимо прорекламировать свои услуги потенциальным покупателям. Компании понимают, что это очень важно для их бизнеса, и именно поэтому они тратят на маркетинг огромные деньги. Будучи разработчиком, тебе тоже придется заниматься самомаркетингом. Чем лучше ты будешь продвигать себя и свои услуги, тем больше ты сможешь привлечь покупателей и заработать денег.
Знаешь, большинство начинающих разработчиков совершенно не задумываются о подобном. Вместо того чтобы стартовать ярко и вызывающе, они начинают свою карьеру никем не замеченные. Не делай так.
Вместо этого:
• сфокусируйся на своих услугах и займись их продвижением;
• подумай над тем, как можно улучшить свое предложение;
• подумай над тем, как ты можешь специализировать свои услуги, чтобы они покрывали нужды бо́льшей части клиентов;
• стань специалистом, который будет поставлять специализированные услуги для определенной части клиентов. Всегда помни: разработчик ПО ищет хорошую работу, так что тебе нужен всего лишь один клиент.
Тебе также стоит задуматься над тем, как нужно рекламировать свои услуги и искать клиентов. Большинство разработчиков создают резюме и рассылают его компаниям и рекрутерам. Но если ты относишься к своей карьере как к бизнесу, то ты уверен в том, что это лучший способ разрекламировать себя и найти потенциальных клиентов? Конечно же, ответ «нет». У большинства компаний есть определенные тактики и хитрости, побуждающие покупателей покупать их услугу или продукт; они не гоняются за каждым покупателем поодиночке.
Ты можешь рекламировать себя с помощью множества приемов, которые мы рассмотрим во второй части. Короче говоря, все, что тебе нужно делать, – это думать как бизнесмен. Выйди за рамки нормальности. Как лучше всего привлечь клиентов? Как рассказать им о своих услугах? Если ты можешь ответить на эти два простых вопроса, то тебя ожидает очень хороший старт.
УПРАЖНЕНИЯ• Подумай о бизнесах, предоставляющих продукт или услугу. Чем они отличаются друг от друга? Как именно они рекламируют свой продукт или услугу?
• Если тебя попросят описать собственный продукт или услугу одним предложением, то как оно будет звучать?
• Как образ мышления бизнесмена влияет на то, как:
• ты делаешь свою работу;
• распоряжаешься финансами;
• ищешь работу или новых клиентов.
3
Как ставить адекватные карьерные цели
После того как ты начал относиться к своей карьере как к бизнесу, пришло время определиться с твоими целями.
Все люди разные. Твои цели могут значительно отличаться от моих, но если ты хочешь чего-то добиться, то тебе необходимо знать, чего именно ты добиваешься. Конечно же, проще сказать, чем сделать. Я заметил, что большинство людей (в том числе и разработчиков) просто плывут по жизни, совершенно не зная, чего они хотят. В таком состоянии находится большинство. Обычно мы не задумываемся над тем, на чем нам нужно сфокусироваться, и мы не достигаем никаких результатов.
Представь, что ты плывешь на корабле по бескрайнему океану. Ты можешь просто сесть на корабль и поднять паруса, как сделает большинство людей. Но если у тебя нет определенного пункта назначения, нет стремления достичь этого пункта, то ты все время будешь бесцельно дрейфовать. Возможно, ты случайно приплывешь к какому-нибудь острову, но ты никогда не сможешь достичь значительного прогресса. Тебе всегда нужно стремиться к чему-то. И как только ты определишься с пунктом назначения, ты сможешь использовать все средства, чтобы развернуть корабль и плыть в нужном направлении.
Все это кажется довольно очевидным, но лишь малая часть разработчиков определяют цели своей карьеры. Почему? Ну, у меня есть несколько предположений… Вот одно из них: многие разработчики боятся продумывать свою карьеру в долгосрочной перспективе. Они считают, что если выбрать один путь и следовать ему, то они потеряют другие возможные варианты развития их карьеры. Что, если они выберут неверный путь? Что, если полученный результат их не устроит? Конечно, эти вопросы могут испугать любого человека.
Некоторые разработчики совершенно не задумываются об этом. Мы просто следуем по пути, уже проложенному для нас. Но найти собственный путь всегда намного сложнее. Вместо этого мы хватаемся за первую попавшуюся работу и ждем предложения о работе получше либо того момента, когда нас уволят.
Пришло время определиться со своими целями. Не завтра или на следующей неделе, а сейчас. Если у тебя нет определенной цели, то все твои усилия были потрачены впустую. Тебе необходимо определиться с целями своей карьеры.
Помни, что отказ принимать решение – это тоже решение. По правде говоря, худшее, что ты можешь сделать, – просто выбрать ничего не делать. Чаще всего лучше принять неоптимальное решение или придерживаться неоптимального пути по жизни, а не придерживаться совершенно случайного пути, как это делают многие люди.
Как ставить целиО’кей, мы решили, что пришла пора определиться со своими целями. Но вот вопрос: как ты будешь это делать? Самый простой способ – это поставить глобальную цель, а в процессе ты будешь выделять и выполнять подцели. Обычно глобальная цель очень обобщенная, так как очень тяжело четко определить что-то на довольно долгий срок. Но все нормально. Когда ты ставишь перед собой цель, которую получится выполнить через долгое время, не нужно быть слишком точным. Главное – это установить конечную точку, наметить примерный путь. Давай снова обратимся к примеру с кораблем: чтобы отправиться в Китай, мне не нужно знать точных координат порта, в который я собираюсь причалить. Мне просто нужно сесть на корабль и начать двигаться в нужном направлении; когда я приближусь к Китаю, то я смогу подкорректировать направление корабля. Если я хочу приплыть в Китай, то все, что мне нужно сделать, это определить, в каком направлении я плыву: к Китаю или от него.
И хотя я сказал, что глобальная цель не должна быть четкой и ясной, ты все равно должен понимать ее. Подумай о том, к чему тебя должна привести твоя карьера. Ты хочешь быть менеджером или руководителем? А может, ты хочешь начать собственный бизнес? Ты хочешь стать предпринимателем, предоставляющим свой продукт? Что касается меня, я всегда хотел работать на себя.
Выбор глобальной цели зависит только от тебя. Чего ты хочешь от своей карьеры? Кем ты видишь себя через пять или десять лет? Потрать немного времени на раздумья, так как это действительно важно.
Как только ты определишься, ты можешь перейти к следующему шагу – определению подцелей. Иногда полезно представить, что ты уже достиг своей главной цели. Какие этапы тебе пришлось бы пройти? Какой путь ты преодолел?
Несколько лет назад я набрал очень большой вес, и тогда я поставил перед собой цель – сбросить примерно 45 кг. Эту цель я разбил на несколько мелких: я решил сбрасывать каждую неделю по два кг. Каждую неделю я выполнял одну из подцелей, и это помогло мне приблизиться к выполнению моей главной цели.
Поставив перед собой несколько подцелей, ты постепенно будешь продвигаться к глобальной цели. Очень важно ставить перед собой разные по масштабу цели. Например, ты можешь поставить перед собой цель «прочитать двенадцать технических книг» или «выучить новый язык программирования» за год. Эта подцель – часть глобальной цели. Например, ты хочешь стать senior-разработчиком. Ты также можешь разбить годовую цель на несколько маленьких: к примеру, читать по книге в месяц или изучать что-то новое каждый день.
Шаги для постановки целей
Маленькие цели дают дополнительную мотивацию и позволяют продолжать двигаться к большой цели. Если ты решишь добиться глобальной цели, не разбивая ее на более мелкие, то у тебя не получится «корректировать свой курс» достижения этой цели. Ты можешь вознаграждать себя за выполнение маленьких целей – это будет твоей дополнительной мотивацией. Ежедневные маленькие победы помогут тебе не сдаться. К тому же маленькие цели пугают не так сильно, как большие.
Давай рассмотрим процесс написания этой книги. Когда я решил написать книгу, я поставил перед собой несколько подцелей: писать как можно больше каждый день, каждую неделю. Я не пытаюсь выполнить крупную цель; вместо этого я выполняю маленькие цели, постепенно приближаясь к большой.
Если у тебя нет времени на то, чтобы задуматься о своем будущем, или у тебя нет хотя бы одной четкой цели, то отложи эту книгу и поставь для себя несколько целей. Да, я знаю, что это непросто, но ты будешь чувствовать себя намного лучше, когда сделаешь это. Не будь кораблем, бесцельно дрейфующим по океану. И, прежде чем взойти на корабль, выбери правильный курс.
Отслеживаем целиИногда тебе нужно будет отслеживать и обновлять свои цели. Не думаю, что тебе захочется потратить много времени, а затем обнаружить, что где-то вначале ты допустил досадную ошибку или сбился с курса.
Я рекомендую тебе отслеживать свои цели через определенный промежуток времени. Так ты сможешь изменять их, если что-то пойдет не так. Например, ты можешь проверять их в конце недели, прежде чем начать планировать цели на следующую неделю. А еще проверять их в конце месяца, квартала и года.
Таким образом ты сможешь увидеть, чего смог достичь за разные промежутки времени, а также нужно ли что-то изменить.
УПРАЖНЕНИЯ
• Сядь и запиши по крайней мере одну большую цель.
• Разбей большую цель на несколько мелких:
• по месяцам;
• неделям;
• дням.
• Повесь листок с целью на такое место, где ты будешь постоянно его видеть.
4
Развиваем социальные навыки
В какой-то степени эта книга посвящена «мягким» навыкам. Если ты читаешь эту книгу, то я уверен, что ты понимаешь, как эти навыки важны в жизни и карьере. В этой главе я хочу углубиться в эту тему и поговорить о том, почему мягкие навыки настолько необходимы. Я также расскажу о способах, как можно развить эти навыки.
Отстаньте от меня, я просто хочу писать код!Раньше мне казалось, что все, что надо делать разработчику, – это писать код. И так думаю не только я.
Правда заключается в том, что бо́льшую часть своего времени мы общаемся с другими людьми, а не работаем за компьютером. Даже код мы пишем так, чтобы в первую очередь его понимал человек, и только потом – компьютер. Если бы мы писали коды только для машин, то использовали бы нули и единицы. Если ты хочешь стать хорошим разработчиком ПО, тебе нужно научиться общаться с другими людьми (даже если больше всего тебе нравится писать код).
Подумай, сколько времени ты действительно взаимодействуешь с другими людьми. Тогда ты сразу поймешь, почему нужно всегда улучшать свои социальные навыки. Когда ты приходишь в офис, что ты делаешь в первую очередь? Верно, проверяешь почту. А кто отправляет тебе письма? Компьютер? Твой код отправляет тебе письма, в которых он просит закончить его побыстрее или улучшить? Нет, все это делают люди.
Ты посещаешь планерки? Обсуждаешь ли ты с коллегами различные проблемы, а также пути их решения? Когда приходит время работы, какой код ты пишешь? От кого к тебе поступают требования?
Если ты до сих пор думаешь, что вся твоя работа заключается в написании кода, то подумай еще раз. Твоя задача как разработчика, да и как представителя любой другой профессии, заключается в работе и общении с людьми.
Учимся взаимодействовать с людьмиПо этой теме было написано множество великолепных книг, и я приведу личный список лучших книг в части VII. В этой главе я хочу рассмотреть принципы общения с людьми, чтобы в итоге получить наибольшую отдачу. При этом я буду опираться на одну из любимых мной книг по этой теме – «Как завоевывать друзей и оказывать влияние на людей» Дейла Карнеги (книга многократно издавалась в издательствах «АСТ» и «Попурри»). А еще не забудь о бонусной главе, в которой я рассказываю, как вести себя с хейтерами и реагировать на критику: https://simpleprogrammer.com/softskillsbonus.
Каждый хочет чувствовать себя важным
Главный принцип взаимодействия с другими людьми заключается в том, что каждый человек хочет чувствовать себя важным. Это одно из самых глубоких желаний каждого человека. А еще это чувство – основная мотивация для большинства достижений.
Каждый раз, когда ты взаимодействуешь с другим человеком, думай о том, как ты влияешь на эту потребность. Если ты как-то принижаешь человека или обесцениваешь его самого и его достижения, то в ответ ты не получишь ничего, кроме грубой реакции.
Очень легко отмахнуться от идеи коллеги и предложить свою идею, но как только ты совершишь эту ошибку, то заметишь, что к твоей идее не прислушиваются – так как ты заставил другого человека чувствовать себя неважным, то он будет делать то же самое в ответ. Если ты хочешь, чтобы люди прислушивались и принимали твои идеи, то тебе нужно поступать так же. Пока ты угрожаешь гордости и самолюбию другого человека, ты никогда не сможешь завоевать его сердце.
Никогда не критикуй
Исходя из первого принципа, ты должен был уже понять, что критика очень редко помогает другим достичь необходимого результата. Раньше я очень часто критиковал других людей. Я считал, что замечания – это очень эффективный мотиватор, но я сильно ошибался.
Исследования показывают, что вознаграждения за хорошо сделанную работу мотивируют людей гораздо сильнее, чем наказание за работу плохую. А если под твоим управлением находятся люди, то тебе следует уделить этому принципу особое внимание. Если ты хочешь вдохновлять людей или заставить их что-то изменить, то тебе лучше всего держать язык за зубами и научиться поддерживать других.
Может быть, ты работаешь или работал с начальником, который не понимает этот принцип. Он наказывает тебя за каждую ошибку. Что ты чувствуешь в этот момент? Хочется ли тебе стараться больше? Не думай, что другие люди будут реагировать на критику как-то иначе. Если ты хочешь замотивировать и вдохновить человека, то хвали его, а не критикуй.
Думай о том, чего хочет другой человек
Перестань думать о себе и задумайся о других, и тогда ты начнешь успешно взаимодействовать с другими людьми. Думай о том, что может быть важно для другого человека. Изменив свой образ мышления, другой человек при общении с тобой будет чувствовать себя важным и значимым. Перестань критиковать других. Люди, с которыми ты будешь общаться, будут высоко оценивать твои идеи и предложения.
Когда в следующий раз ты будешь взаимодействовать с коллегой или начальником, смени фокус с себя на него. Попробуй рассмотреть ситуацию с их точки зрения. Как думаешь, чего они хотят добиться этим разговором? Что для них важно? Внимательно слушай их, а затем, когда придет твоя очередь говорить, строй диалог так, чтобы удовлетворить желания собеседника. Продумай сценарий диалога в своей голове. Заранее подготовься к тому, как будет проходить разговор.
Если ты просто расскажешь своему боссу, почему ты хочешь внедрить какую-то функцию в код, то это ни к чему хорошему не приведет. Лучше всего построить диалог так, чтобы начальник понял, насколько это будет выгодно для него самого. Возможно, благодаря этому программа станет стабильнее или ты сможешь закончить работу в срок.
Избегай споров
Будучи разработчиками, иногда мы думаем, что при оценивании все люди используют логику. Довольно ошибочно полагать, что веские аргументы помогут тебе заставить другого человека принять твои идеи.
Но правда заключается в том, что люди очень эмоциональны. Мы можем сколько угодно гордиться своим интеллектом, но чаще всего принимаем решения, основываясь на наших чувствах и эмоциях. Мы похожи на маленьких детей, которые решили примерить деловые костюмы и притвориться взрослыми. Неуважение или обида могут заставить нас плакать или закатить истерику, но мы научились управлять эмоциями и скрывать их.
Очень важно избегать споров. Ты не можешь убедить младенца с помощью логики в том, что ему пора спать, если завтра он хочет чувствовать себя хорошо. Это касается и наших коллег – если ты считаешь, что твой способ решения проблемы лучший, то не сможешь переубедить их с помощью логики.
Существует только один способ победить в споре – это уклониться от него.
Дейл Карнеги, «Как завоевывать друзей и оказывать влияние на людей»Если ты считаешь, что задачу нужно выполнять иначе, то нужно хорошенько подумать над тем, а стоит ли вообще предлагать альтернативный вариант выполнения. Особенно важно, если в этом участвует другой человек. Отказ от критики и признание своей неправоты может оказаться важным для другого человека (а также ты завоюешь его расположение и уважение).
Если ты никогда не уделял должного внимания этим навыкам, то я советую тебе заняться этим прямо сейчас. Твоя жизнь станет намного лучше, если ты научишься правильно и эффективно взаимодействовать с другими людьми.
Управление фреймом
Есть одна концепция, понимание которой поможет тебе общаться с людьми, – это концепция фреймов. Но я должен предупредить: используй эту концепцию осторожно. Легче и эффективнее поладить с теми, кто конкурирует с тобой или настроен против тебя. Пожалуйста, не издевайся над коллегами и учитывай чужое мнение. Советую тебе разобраться с этой концепцией, ведь так ты сможешь понять, что кто-то использует ее, пытаясь заставить тебя молчать или запугать.
Когда ты начинаешь общаться с другим человеком, твои фреймы сталкиваются друг с другом. В конце концов один из них выигрывает… Твой фрейм – это то, как ты воспринимаешь мир и реальность. Соответственно, фрейм другого человека – это его восприятие мира.
Очень часто фреймы конфликтуют между собой, и фрейм-победитель задает тон разговора.
Представим: ты едешь на машине и тебя останавливает полицейский. В этот момент твой фрейм может быть чем-то вроде: «Я не делал ничего противоправного, а этот коп просто придурок». Но когда полицейский подойдет к твоей машине, снимет солнцезащитные очки и спросит: «Знаешь, почему я тебя остановил?», а твой взгляд упадет на кобуру с пистолетом… Велика вероятность, что в этой ситуации фрейм полицейского станет доминирующим.
При общении важно помнить о существовании фреймов. Ты можешь убедить людей в своей правоте несколькими способами. Например, поддерживай доминирующий фрейм, но не соглашайся с тем, что противоречит твоему фрейму.
Особенно хорошо такая тактика работает в ситуациях, когда тебе нужно сохранить авторитет. Например, ты руководитель группы или преподаватель. В такой ситуации люди очень часто совершают главную ошибку – они позволяют другим перебивать их или уходить от темы. Уверен, ты помнишь школьных учителей, которые мастерски управляли фреймом и не распускали класс.