Большинство книг о разработке ПО рассказывает о… разработке ПО. Но только не эта книга. Существует множество хороших книг, рассказывающих, как написать хороший код и какие технологии лучше использовать, но у меня так и не получилось найти книгу, в которой рассказывалось бы, как стать хорошим разработчиком.
Когда я говорю «хорошим разработчиком», я имею в виду не написание кода, не решение задач или запуск юнит-тестов. Я подразумеваю то, как быть хорошим разработчиком с позиции управления своей карьерой, достижения поставленных целей и наслаждения жизнью. Конечно, остальные навыки тоже весьма важны; но я уверен, что ты можешь из других источников узнать, как написать хороший алгоритм на C++ или написать такой код, за который тебя не захотят убить коллеги.
Эта книга не о том, что ты можешь делать. Эта книга… о тебе. Да, все верно. Эта книга о твоей карьере, твоей жизни, твоем теле, твоем разуме и – если ты веришь, что она существует, – о твоей душе. И знаешь, я не хотел бы, чтобы ты принимал меня за чудака. И я не философ-трансценденталист, который проводит все дни в медитациях и воскурении пейота; я не пытаюсь помочь тебе расширить твое сознание. Наоборот, прочитав книгу, ты обнаружишь, что я довольно простой человек, считающий, что разработчик ПО – это кто-то, кто не только пишет код, но и занимается множеством других вещей.
Я придерживаюсь комплексного подхода к разработке ПО. Я считаю, что если ты хочешь стать хорошим разработчиком – да кем угодно, не только разработчиком, – то тебе нужно сконцентрироваться на себе, своей личности, а не только на паре аспектов своей жизни.
И именно благодаря этой идее появилась эта книга. Я не обладаю достаточной мудростью и опытом, и, конечно же, я не могу рассказать обо всех аспектах жизни в этой книге. Будет лучше, если я сконцентрирую внимание на главных аспектах жизни разработчика ПО – за свою жизнь я узнал много нового, и мои знания могут очень помочь тебе.
На страницах этой книги ты повстречаешь несколько тем, которые, как может показаться на первый взгляд, между собой никак не связаны. Но не волнуйся, всему есть логичное объяснение. Книга состоит из семи частей. Каждая часть посвящена определенному аспекту жизни разработчика ПО. Все части можно отнести к четырем большим областям – карьере, разуму, телу и духу.
Мы начнем наш разговор с карьеры. Как по мне, именно карьера – одна из важнейших областей, на которой стоит сосредоточиться всем разработчикам ПО. Я обнаружил, что только малая часть разработчиков задумывается о развитии своей карьеры. В части I, названной «Карьера», я помогу тебе решить эту проблему, например научу тебя управлять своей карьерой и приходить к желаемым результатам. И неважно, что это: подъем по карьерной лестнице, открытие собственного бизнеса, начало предпринимательской деятельности или запуск собственного бренда. Я лично пробовал себя во всех трех вариантах, а также опросил множество разработчиков ПО, проделавших тот же путь… И я собрал весь наш опыт здесь, в этой книге, так что эта информация поможет тебе избежать тех ошибок, что когда-то совершил я или другие люди. Я также рассматриваю важные навыки и умения, которые пригодятся тебе в любой ситуации: создание идеального резюме, умение проходить собеседование, работать удаленно и другие полезные навыки коммуникации с людьми, о которых так часто говорят в последние дни.
В части II «Самомаркетинг» я затрону близкую мне тему – продвижение себя и своей работы. Какие чувства и мысли вызывает у тебя слово «маркетинг»? При упоминании этого слова многие разработчики чувствуют себя некомфортно, но как только ты дойдешь до этой части, ты начнешь воспринимать это слово по-новому. Ты поймешь, почему маркетинг настолько важен. Каждый из нас – продавец, но некоторые просто не могут справиться с этой задачей. И я научу, как стать лучшим продавцом, который точно знает, что он продает. Я не буду учить тебя грязным приемам или схемам быстрого обогащения. Напротив, я дам тебе практические советы, как создать собственный бренд, завести успешный блог или заявить о себе множеством других способов, о которых ты даже не подозревал. Ты можешь объединить эти навыки со знаниями, полученными из части I, и достичь отличных результатов.
Закончив с темой карьеры, мы обратимся к области души и разума. Далее следует часть III «Обучение». Обучение – важная часть жизни любого разработчика. Думаю, мне не стоит упоминать, что постоянное обучение – это одно из наиболее распространенных занятий разработчиков или других IT-специалистов. Умение учиться – ценнейший навык, который ты сможешь освоить самостоятельно. И, овладев этим умением, ты сможешь делать буквально все, что захочешь. К сожалению, бо́льшая часть образовательной системы сломана из-за установки, что для обучения чему-то необходим учитель; мы сталкиваемся с этой установкой постоянно, потому что нам начинают рассказывать об этом с самого детства. Учителя и наставники все еще важны, но в этой части я расскажу тебе, как можно научиться чему-то новому, полагаясь только на себя и свои способности. Тебе понадобится лишь немного храбрости и любопытства, и ты сможешь достичь больших результатов. И тебе не придется сидеть на скучных лекциях и делать заметки. Я расскажу тебе о разработанном мной 10-ступенчатом процессе образования. Благодаря этой системе обучения я смог в короткое время научиться всему, что необходимо знать для создания более 50 онлайн-курсов менее чем за два года для платформы Pluralsight. Я расскажу, на что нужно обратить внимание при поиске хорошего наставника, а также нужно ли образование и степень для того, чтобы стать успешным.
В части IV «Продуктивность» я рассказываю о – попробуй догадаться! – продуктивности. Я специально написал эту главу так, чтобы у тебя появилось больше мотивации. Продуктивность – это одна из огромнейших проблем для разработчиков; к тому же она может мешать тебе стать успешным. Ты можешь довести до совершенства всю свою жизнь, но не справиться с прокрастинацией, неорганизованностью или простой ленью – и тогда тебе станет очень трудно изменить хоть что-то. Я тоже сталкивался с такой проблемой, так что я придумал систему, с помощью которой можно быстро вернуться к работе. Я поделюсь этой системой с тобой. Я также затрону такие сложные темы, как выгорание, залипание перед телевизором и вечный поиск мотивации для выполнения трудной работы.
В части V «Финансы» я затрону еще одну тему, о которой все молчат. Это финансы. Ты можешь быть самым успешным разработчиком в мире, но если ты не умеешь правильно распоряжаться заработанными средствами, то однажды окажешься на улице с табличкой «Программирую за еду». Я открою для тебя мир экономики и финансов и расскажу об основах, которые тебе необходимо знать, так ты сможешь принимать умные решения и начнешь планировать свое финансовое будущее. Я не специалист по финансовому планированию, не брокер, но, кроме работы разработчиком, я с восемнадцати лет занимаюсь недвижимостью и сколотил состояние в несколько миллионов долларов на этом, так что я знаю, о чем говорю. Конечно, мы не будем углубляться в эту тему слишком сильно, иначе мне просто не хватит книги, чтобы рассказать обо всем. Но я расскажу об основах управления финансами, как не утонуть в долгах и, что важнее всего, как сколотить состояние. В качестве бонуса я расскажу свою историю и то, как можно выйти на пенсию в 33 года. По правде говоря, все не так сложно, как может казаться; это может сделать буквально каждый.
А теперь мы переходим к самой веселой части этой книги – работой над собой и своим телом. Ты готов? Если ты в хорошей форме, то ты не только отлично выглядишь в купальнике, но и получаешь умственное и психическое преимущество. В части VI «Фитнес» я расскажу тебе все необходимое для снижения веса, набора мышечной массы и приведения себя в форму. Многие мои знакомые программисты и разработчики страдают от ожирения, плохого здоровья, и они ничего не могут с этим поделать. Ты слышал фразу: «Знание – сила»? Будучи разработчиком, я участвовал в соревнованиях для бодибилдеров и бегал множество полумарафонов и четыре марафона, так что буду рад поделиться с тобой всем, что я знаю. Я расскажу тебе об основах диетического и правильного питания, а также о том, как разная еда влияет на твое тело. Я покажу, как составить план тренировок и диету для снижения веса, набора мышц или всего вместе. Я даже затрону такие специфические темы, как стоячие столы (за которым ты работаешь стоя) и фитнес-устройства для гиков.
Наконец, в части VII «Психология» мы окунемся в метафизический мир и рассмотрим иллюзорного «призрака в машине». Несмотря на название этой части, я поделюсь с тобой правдивыми, практическими советами на темы, которые прямо влияют на твое эмоциональное состояние.
Думаю, ты можешь назвать эту часть как «Помоги себе сам», хотя мне не особо нравится эта фраза. В этой части основной фокус будет направлен на «перепрограммирование» мозга и создание позитивных установок, необходимых для достижения успеха. Мы поговорим о стоицизме и о том, как он может помочь тебе.
Мы слегка затронем тему отношения и любви, так как для большинства программистов эта область – одна из труднейших. Я также поделюсь с тобой списком «успешных книг»: каждый раз, когда мне удавалось пообщаться с какой-то известной или успешной личностью, я просил назвать их одну книгу, которую, по их личному мнению, должен прочитать каждый.
Устраивайся поудобнее, потому что мы начинаем. Отключи свой аналитический разум и приготовься погрузиться в совершенно уникальную книгу о программировании.