Джон Сонмез
Гибкие навыки. Исчерпывающее руководство по прокачке себя для начинающих разработчиков
John Sonmez
Soft Skills: The Software Developer’s Life Manual Second edition updated and reset, Simple Programmer LLC, 2020
Copyright © 2020 by John Z. Sonmez
© Райтман М. А., перевод на русский язык, 2023
© Оформление. ООО «Издательство «Эксмо», 2023
Всем разработчикам, которые непрерывно стремятся
самосовершенствоваться…
Которые недовольны приемлемым результатом
Которые не упускают возможность расширить горизонты
и исследовать новое
Чья жажда познания никогда не угасает Для которых разработка ПО – это больше, чем просто набор кода
Для которых неудача – это не конец, а лишь шаг на пути
Которые падают и вновь встают, чтобы двигаться дальше У кого есть воля и решимость искать более трудный путь в жизни
И, главное, кто готов помогать другим на этом пути
Предисловие
Поздно вечером в пятницу, 5 декабря 2014 года, на мой 62-й день рождения я получил электронное письмо от автора этой книги, Джона Сонмеза. В своем письме он просил меня написать это предисловие к понедельнику, 8 декабря. К письму был прикреплен заархивированный документ, в котором было несколько десятков текстовых документов. По правде говоря, подобная презентация книги показалась мне весьма неудобной – у меня не было ни сил, ни времени на то, чтобы собирать книгу в один PDF-файл.
Я не обрадовался просьбе Джона. Моей жене только-только сделали операцию по замене коленного сустава, и тогда она находилась в центре реабилитации. На утро субботы у меня был назначен урок пилотирования, а остаток выходного я хотел провести со своей женой. Вечером я должен был сесть в самолет до Лондона, а затем читать курсы с понедельника по пятницу. Я никак не мог написать текст к понедельнику. Джон поставил слишком жесткие рамки, о чем я ему и сказал.
Перед поездкой в аэропорт я обнаружил, что Джон прислал мне рождественскую посылку с сыром и ветчиной. К посылке была приложена открытка, в которой он благодарил меня за то, что я согласился написать предисловие к его книге. Мне также пришло еще одно электронное письмо, в котором Джон говорил, что издательство позволило задержать рукопись – теперь в моем распоряжении был еще один день. Он прислал мне еще несколько писем с просьбами, но я сразу предупредил его: вероятность того, что я успею, очень мала, так что ему не следует ничего от меня ждать.
Я поехал в аэропорт, сел в самолет, проспал весь полет до Лондона, а затем взял такси и поехал в свой любимый лондонский отель. Поездка вымотала меня физически и ментально, так что оставшееся время я играл в Minecraft, пока не устал окончательно. Весь понедельник я преподавал, а затем я писал код в компиляторе SMC для тридцатого эпизода моего курса Clean Code, доступного по ссылке http://cleancoders.com.
Сегодня вторник, 9 декабря. Я преподаю второй день, и только-только дал студентам двухчасовое задание. Тогда я решил проверить почту и обнаружил, что Джон прислал мне еще одно письмо. В этот раз он прикрепил PDF-файл с книгой. Хорошо, это многое упрощает. Я открыл файл и пролистал книгу. Очень хорошо.
Обратите внимание на один факт: Джон сделал все, что от него требовалось. Он задумался над тем, что мне будет нужно. Он давал мне полезные советы и стимул. Он потратил много сил и времени, чтобы упростить мне работу. Даже когда я отказался и сказал, что не смогу выполнить свою работу, Джон продолжил пытаться помочь мне. Он не сдавался. Он не отступил. До тех пор, пока оставался хотя бы призрачный шанс на успех, Джон продолжал искать возможное решение.
И именно об этом была его книга. О том, как добиться успеха. О привычках и стратегиях, образе мышления, приемах и уловках, которые помогут вам приблизиться к успеху. И пример этого – не только действия Джона, но и он сам.
Пока студенты выполняли свое задание, у меня были свободны два часа. Я открыл PDF-файл и начал читать его. Черт возьми! Вы только гляньте эти темы! Физическое здоровье, торговля опционами, недвижимость, душевное равновесие… Как уйти с работы, как начать консалтинговый бизнес, как присоединиться к стартапу, создать продукт, подняться по карьерной лестнице, рекламировать себя… Этот список можно долго продолжать…
Понимая, что я не прочитаю книгу за два часа, да и все равно не буду писать предисловие, я лишь бегло просматривал страницы. Но затем я понял, что Джон хочет рассказать о чем-то важном! Вся книга – это одно целостное сообщение, которое должен услышать каждый программист (и не только программист).
Знаете ли вы, как составить резюме? Знаете ли вы, как нужно договариваться о зарплате? Знаете ли вы, как устанавливать ставку, если работаете на себя? Знаете ли вы о рисках, если решите уволиться с работы и стать фрилансером? Знаете ли вы, как получить финансирование для своего стартапа? Знаете ли вы, сколько стоит просмотр телевизора? Да, вы правильно прочитали.
Ответы на эти вопросы вы найдете в этой книге. Это нужно знать. Я не читал книгу целиком, а только просматривал некоторые фрагменты, но этого было достаточно, чтобы я решил написать это предисловие. Если вы начинающий разработчик ПО, пытающийся найти себя в этой сложной сфере, то в ваших руках находится книга, из которой вы почерпнете множество полезных советов.
Несмотря на мой очень плотный график, Джон сумел мотивировать меня на написание предисловия. Он использовал приемы, о которых говорит в своей книге, и снова добился успеха!
Роберт С. Мартин
(Дядя Боб)
Uncle Bob Consulting LLC
От автора
Хотел бы я рассказать тебе о невероятной истории, почему я решил написать эту книгу. Хотел бы я рассказать тебе о том, как я медитировал в пустыне, как прилетел орел и опустился на мое плечо, прошептав мне на ухо: «Тебе нужно написать книгу о гибких навыках для разработчиков». Хотел бы я рассказать тебе, что мне приснилась эта книга; тогда я резко вскочил посреди ночи и начал записывать все, что увидел во сне.
Но правда в том, что я написал книгу из-за того, что почувствовал: я должен сделать это.
Я работаю разработчиком уже множество лет, и я много с чем сталкивался. Иногда я делал правильный выбор, иногда нет, а в правильности некоторых выборов сомневаюсь и по сей день. В то время мне никто не мог подсказать, что правильно, а что нет. У меня не было человека, который помог бы мне продвинуться вперед. У меня не было человека, который показал бы мне, как стать успешным разработчиком не только на работе, но и в повседневной жизни.
Конечно, в моей жизни были люди, оказавшие на меня какое-то влияние: многие из них учили меня тому, как разрабатывать ПО, и прочим вещам. И я благодарен этим людям – возможно, без них я не смог бы достичь этих высот. Но я никогда не встречал человека или гайд, который мог бы рассказать мне всю важную информацию. Например, как принимать важные решения, касающиеся моей карьеры.
Как быстро, легко и эффективно учиться новым вещам, как быть максимально продуктивным и что делать, если я ничего не хочу и чувствую себя разочарованным.
Основы финансов, физического и ментального здоровья. Как эти аспекты влияют на меня как разработчика ПО, а также на мою повседневную жизнь.
Я написал эту книгу из-за того, что мне хотелось создать такой гайд и поделиться собственным опытом, а также опытом других успешных разработчиков, успешных финансовых экспертов, фитнес-гуру и мотивационных спикеров, с которыми я имел удовольствие встретиться. Я написал эту книгу, чтобы мои знания и опыт помогли кому-то сделать свою жизнь лучше.
Я написал эту книгу, чтобы…
…твое путешествие стало чуть легче…
…помочь тебе стать лучшей версией себя…
…и, что важнее всего, помочь тебе избавиться от чувства одиночества на этом длинном пути разработчика ПО.
Смогли ли эти строки вдохновить вас?
Отлично. Давай же начнем наше приключение!
Предисловие ко второму изданию
Я написал первое издание этой книги в 2014 году. Вот это да! За прошедшие пять лет в моей жизни и мышлении много чего изменилось. Эти изменения были настолько сильными, что я мог бы переписать всю эту книгу от начала до конца.
Однако… для второго издания «Гибких навыков» я сделал кое-что другое. Когда я перечитал книгу, то понял, что могу не только дополнить некоторые темы, но и добавить совершенно новую информацию. А еще я осознал, что бо́льшая часть информации и по сей день остается актуальной.
Одной из причин, по которой «Гибкие навыки» обрели такую популярность, стала доступность информации. И я хотел бы, чтобы второе издание было таким же. Я хотел убедиться, что даже человек, не знающий философию или продвинутые приемы маркетинга, просто возьмет книгу и сразу сможет использовать полученные знания.
Но… это не значит, что я не внес значительные изменения во второе издание книги. Я исправил части, с которыми больше не согласен, а также рассказал о новых открытиях в философии, фитнесе и финансах, сделанных мной за прошедшие пять лет.
Давай начнем с того, что ты не найдешь во втором издании. Приложения… В первом издании было четыре приложения: как работают деньги, как работает фондовый рынок, основы диеты и питания, а также раздел о здоровом питании. И хотя эти приложения были очень ценными, я чувствовал, что они выбиваются из общей структуры книги. Я принял решение убрать приложения.
Я также вырезал главу о торговле опционами. Конечно, эта глава была очень интересной, но к прочтению я ее не рекомендую – она создает очень красивую иллюзию, которая может сбить читателей с нужного курса. Я вырезал главы и из других разделов книги – на мой взгляд, эти главы не были похожи на связанные части, а выглядели как отдельные эссе.
Я изменил порядок некоторых глав – так книга стала логичнее и понятнее. Несмотря на это, ты все так же можешь начинать читать книгу с любой главы в любом удобном для себя порядке, ведь именно такой смысл закладывался в книгу, когда я начинал писать ее.
Но не думай, что я просто вырезал какую-то информацию! Отчасти причина этого в том, что мне нужно было очень много всего рассказать тебе, мой дорогой читатель. И чтобы сделать это, мне нужно было место. Я слегка изменил старые главы, добавил новую информацию или уточнил некоторые моменты. По сути, это стандартные действия при подготовке второго издания. Но есть кое-что, что точно должно вас заинтересовать… Это новые главы!
Например, в раздел о маркетинге я добавил главу о том, как представить собственный бренд на YouTube – это еще одна возможность для представления себя на рынке. Я также добавил главу, в которой рассказываю, как сколотить настоящее богатство. Я рассказал о финансовых концепциях, которые позволили мне не только выйти на пенсию молодым, но и значительно приумножить собственное состояние в разных областях (я горжусь этой главой). Также я добавил главу о голодании и моем текущем режиме питания. Я ем один раз в день! Преимущество такого подхода поразит вас. Я еще никогда не чувствовал себя так хорошо. А еще я добавил главу о философии, которая сыграла основную роль в том, чем я занимался последние пять лет. Да, я сейчас о стоицизме. Поверь, эту главу ты не захочешь пропускать; по правде говоря, ты можешь начать читать книгу именно с этой главы.
Я также переименовал все главы в книге – теперь они намного понятнее, и из названия ты сразу поймешь, о чем они. Когда я перечитывал книгу, заумные названия типа «Как накачать пресс» показались мне не только смешными, но и… банальными и старомодными. Думаю, дело в том, что с возрастом чувство юмора немного меняется.
Если говорить начистоту, то это издание мне нравится больше первого. Новое издание «Гибких навыков» придает книге целенаправленный характер, а в этой версии появились ценные советы, которые ты не найдешь в первой книге. При этом второе издание сохраняет все то, почему книга стала такой популярной – идею и тон. Итак! Окунись с головой в книгу, наслаждайся и приготовься изменять свою жизнь к лучшему.
Джон Сонмез
Сан-Диего, Калифорния, 2020
Об этой книге
Привет! Спасибо, что купил мою книгу. Возможно, ты держишь ее в руках и думаешь: о чем она? Что еще за «Гибкие навыки»? Отличный вопрос! Позволь мне кратко ответить на него.
Подумай вот о чем: существует огромное количество хороших книг, в которых тебя учат кодить, помогают освоить новую технологию, рассказывают, как правильно работать в команде или запускать свой проект. Ты даже можешь найти книги, в которых рассказывается то, как улучшить свою карьеру или как отвечать на вопросы на собеседовании. Но попадалась ли тебе когда-нибудь книга, которая помогла бы тебе стать лучшей версией «хорошего разработчика»?
Попадалась ли тебе книга, в которой рассказывалось не только как найти хорошую работу и заработать много денег, но и куда потратить эти деньги? Как бросить работу и стать предпринимателем, конечно, если таково твое желание?
Попадалась ли тебе книга, которая помогла бы тебе успешно построить репутацию в области разработки ПО и научила бы тебя быть сильнее и здоровее ментально, физически и духовно?
Я никогда не встречал подобной книги и именно поэтому решил сам написать обо всем этом… и даже чуть больше.
Вне зависимости от того, кто ты, эта книга написана именно для тебя. И когда я говорю, что она «для тебя», я это и имею в виду. В этой книге рассказывается обо всем: как пройти собеседование, как создать отличное резюме, как вести успешный блог, как построить личный бренд, как повысить собственную продуктивность… Я даже рассказываю об инвестировании в недвижимость и сбрасывании веса.
Ты также найдешь часть, в которой я рассказываю о собственной технике быстрого обучения: благодаря ей я смог создать более 55 онлайн-курсов за два года для платформы онлайн-обучения Pluralsight.
Я серьезно: вне зависимости от того, кто ты и кем работаешь, в этой книге ты сможешь найти для себя что-то полезное. Тут даже есть глава, посвященная встрече с тем самым, особенным человеком, надеюсь, ты понимаешь, о чем это я!
В главе 1 я подробно рассказываю о том, что именно ты найдешь в этой книге, а также о ее структуре. Но прежде чем ты начнешь свое погружение, я хотел бы поделиться с тобой ссылками на полезные онлайн-ресурсы, которые, возможно, будут для тебя полезны. Внутри самой книги ты также найдешь ссылки на полезные сайты, но вот основные.
Онлайн-ресурсыБонусная глава
https://simpleprogrammer.com/softskillsbonus Получи БОНУСНУЮ главу о том, как общаться с хейтерами и критиками. Эта глава ОБЯЗАТЕЛЬНА к прочтению, особенно если ты собираешься открывать бизнес, вести блог или начинать маркетинг. Полностью БЕСПЛАТНО.
Блог The Simple Programmer
http://simpleprogrammer.com Тут ты найдешь огромную коллекцию постов на темы, затронутые в этой книге. А еще это лучший способ связи со мной и поиска ценной информации, которую я выкладываю каждую неделю. Также не забудь подписаться на мою email-рассылку; так ты получишь доступ к множеству бесплатных материалов, которые я выкладываю еженедельно.
YouTube-канал The Simple Programmer
http://YouTube.com/jsonmez На своем YouTube-канале я публикую видео на темы, затронутые в этой книге, и делаю это бесплатно. Подпишись, чтобы не пропустить мои новые видео. Я выкладываю их каждую неделю.
Блог «Мышление бульдога» и канал на YouTube
https://bulldogmindset.com и https://YouTube.com/bulldogmindset Мой новейший проект и бренд, в котором я сконцентрировался на личностном росте. Здесь ты найдешь полезную информацию о мышлении, фитнесе, богатстве и навыках общения. Все это основано на стоицизме. Ты можешь найти мои старые видео на YouTube канале Simple Programmer – просто напиши название в поиске.
Курс «Как продвигать себя как разработчика ПО»
http://devcareerboost.com/m Если тебя заинтересовала та часть книги, в которой я рассказываю о продвижении и продаже своих услуг, то предлагаю тебе посетить этот сайт. Здесь ты можешь купить полный курс, в котором мы детально разбираем, как построить личный бренд, а также заработать репутацию в области разработки ПО. Этот курс – один из самых популярных моих продуктов.
Курс «10 шагов, чтобы быстро научиться чему угодно»
http://simpleprogrammer.com/ss-10steps Это еще один углубленный курс, где я подробно рассказываю о теме, которой посвящена часть «Обучение» этой книги. Если тебе понравилась эта часть, то ты по достоинству оценишь и курс.
Entreprogrammers
http://entreprogrammers.com
Если ты собираешься создавать собственный бизнес, то рекомендую тебе обратить внимание на этот подкаст: записи выходят каждую неделю, а веду его я и еще три разработчика-предпринимателя.
1
Чем эта книга отличается от тех, что ты читал до этого
Большинство книг о разработке ПО рассказывает о… разработке ПО. Но только не эта книга. Существует множество хороших книг, рассказывающих, как написать хороший код и какие технологии лучше использовать, но у меня так и не получилось найти книгу, в которой рассказывалось бы, как стать хорошим разработчиком.
Когда я говорю «хорошим разработчиком», я имею в виду не написание кода, не решение задач или запуск юнит-тестов. Я подразумеваю то, как быть хорошим разработчиком с позиции управления своей карьерой, достижения поставленных целей и наслаждения жизнью. Конечно, остальные навыки тоже весьма важны; но я уверен, что ты можешь из других источников узнать, как написать хороший алгоритм на C++ или написать такой код, за который тебя не захотят убить коллеги.
Эта книга не о том, что ты можешь делать. Эта книга… о тебе. Да, все верно. Эта книга о твоей карьере, твоей жизни, твоем теле, твоем разуме и – если ты веришь, что она существует, – о твоей душе. И знаешь, я не хотел бы, чтобы ты принимал меня за чудака. И я не философ-трансценденталист, который проводит все дни в медитациях и воскурении пейота; я не пытаюсь помочь тебе расширить твое сознание. Наоборот, прочитав книгу, ты обнаружишь, что я довольно простой человек, считающий, что разработчик ПО – это кто-то, кто не только пишет код, но и занимается множеством других вещей.
Я придерживаюсь комплексного подхода к разработке ПО. Я считаю, что если ты хочешь стать хорошим разработчиком – да кем угодно, не только разработчиком, – то тебе нужно сконцентрироваться на себе, своей личности, а не только на паре аспектов своей жизни.
И именно благодаря этой идее появилась эта книга. Я не обладаю достаточной мудростью и опытом, и, конечно же, я не могу рассказать обо всех аспектах жизни в этой книге. Будет лучше, если я сконцентрирую внимание на главных аспектах жизни разработчика ПО – за свою жизнь я узнал много нового, и мои знания могут очень помочь тебе.
На страницах этой книги ты повстречаешь несколько тем, которые, как может показаться на первый взгляд, между собой никак не связаны. Но не волнуйся, всему есть логичное объяснение. Книга состоит из семи частей. Каждая часть посвящена определенному аспекту жизни разработчика ПО. Все части можно отнести к четырем большим областям – карьере, разуму, телу и духу.
Мы начнем наш разговор с карьеры. Как по мне, именно карьера – одна из важнейших областей, на которой стоит сосредоточиться всем разработчикам ПО. Я обнаружил, что только малая часть разработчиков задумывается о развитии своей карьеры. В части I, названной «Карьера», я помогу тебе решить эту проблему, например научу тебя управлять своей карьерой и приходить к желаемым результатам. И неважно, что это: подъем по карьерной лестнице, открытие собственного бизнеса, начало предпринимательской деятельности или запуск собственного бренда. Я лично пробовал себя во всех трех вариантах, а также опросил множество разработчиков ПО, проделавших тот же путь… И я собрал весь наш опыт здесь, в этой книге, так что эта информация поможет тебе избежать тех ошибок, что когда-то совершил я или другие люди. Я также рассматриваю важные навыки и умения, которые пригодятся тебе в любой ситуации: создание идеального резюме, умение проходить собеседование, работать удаленно и другие полезные навыки коммуникации с людьми, о которых так часто говорят в последние дни.
В части II «Самомаркетинг» я затрону близкую мне тему – продвижение себя и своей работы. Какие чувства и мысли вызывает у тебя слово «маркетинг»? При упоминании этого слова многие разработчики чувствуют себя некомфортно, но как только ты дойдешь до этой части, ты начнешь воспринимать это слово по-новому. Ты поймешь, почему маркетинг настолько важен. Каждый из нас – продавец, но некоторые просто не могут справиться с этой задачей. И я научу, как стать лучшим продавцом, который точно знает, что он продает. Я не буду учить тебя грязным приемам или схемам быстрого обогащения. Напротив, я дам тебе практические советы, как создать собственный бренд, завести успешный блог или заявить о себе множеством других способов, о которых ты даже не подозревал. Ты можешь объединить эти навыки со знаниями, полученными из части I, и достичь отличных результатов.
Закончив с темой карьеры, мы обратимся к области души и разума. Далее следует часть III «Обучение». Обучение – важная часть жизни любого разработчика. Думаю, мне не стоит упоминать, что постоянное обучение – это одно из наиболее распространенных занятий разработчиков или других IT-специалистов. Умение учиться – ценнейший навык, который ты сможешь освоить самостоятельно. И, овладев этим умением, ты сможешь делать буквально все, что захочешь. К сожалению, бо́льшая часть образовательной системы сломана из-за установки, что для обучения чему-то необходим учитель; мы сталкиваемся с этой установкой постоянно, потому что нам начинают рассказывать об этом с самого детства. Учителя и наставники все еще важны, но в этой части я расскажу тебе, как можно научиться чему-то новому, полагаясь только на себя и свои способности. Тебе понадобится лишь немного храбрости и любопытства, и ты сможешь достичь больших результатов. И тебе не придется сидеть на скучных лекциях и делать заметки. Я расскажу тебе о разработанном мной 10-ступенчатом процессе образования. Благодаря этой системе обучения я смог в короткое время научиться всему, что необходимо знать для создания более 50 онлайн-курсов менее чем за два года для платформы Pluralsight. Я расскажу, на что нужно обратить внимание при поиске хорошего наставника, а также нужно ли образование и степень для того, чтобы стать успешным.
В части IV «Продуктивность» я рассказываю о – попробуй догадаться! – продуктивности. Я специально написал эту главу так, чтобы у тебя появилось больше мотивации. Продуктивность – это одна из огромнейших проблем для разработчиков; к тому же она может мешать тебе стать успешным. Ты можешь довести до совершенства всю свою жизнь, но не справиться с прокрастинацией, неорганизованностью или простой ленью – и тогда тебе станет очень трудно изменить хоть что-то. Я тоже сталкивался с такой проблемой, так что я придумал систему, с помощью которой можно быстро вернуться к работе. Я поделюсь этой системой с тобой. Я также затрону такие сложные темы, как выгорание, залипание перед телевизором и вечный поиск мотивации для выполнения трудной работы.
В части V «Финансы» я затрону еще одну тему, о которой все молчат. Это финансы. Ты можешь быть самым успешным разработчиком в мире, но если ты не умеешь правильно распоряжаться заработанными средствами, то однажды окажешься на улице с табличкой «Программирую за еду». Я открою для тебя мир экономики и финансов и расскажу об основах, которые тебе необходимо знать, так ты сможешь принимать умные решения и начнешь планировать свое финансовое будущее. Я не специалист по финансовому планированию, не брокер, но, кроме работы разработчиком, я с восемнадцати лет занимаюсь недвижимостью и сколотил состояние в несколько миллионов долларов на этом, так что я знаю, о чем говорю. Конечно, мы не будем углубляться в эту тему слишком сильно, иначе мне просто не хватит книги, чтобы рассказать обо всем. Но я расскажу об основах управления финансами, как не утонуть в долгах и, что важнее всего, как сколотить состояние. В качестве бонуса я расскажу свою историю и то, как можно выйти на пенсию в 33 года. По правде говоря, все не так сложно, как может казаться; это может сделать буквально каждый.
А теперь мы переходим к самой веселой части этой книги – работой над собой и своим телом. Ты готов? Если ты в хорошей форме, то ты не только отлично выглядишь в купальнике, но и получаешь умственное и психическое преимущество. В части VI «Фитнес» я расскажу тебе все необходимое для снижения веса, набора мышечной массы и приведения себя в форму. Многие мои знакомые программисты и разработчики страдают от ожирения, плохого здоровья, и они ничего не могут с этим поделать. Ты слышал фразу: «Знание – сила»? Будучи разработчиком, я участвовал в соревнованиях для бодибилдеров и бегал множество полумарафонов и четыре марафона, так что буду рад поделиться с тобой всем, что я знаю. Я расскажу тебе об основах диетического и правильного питания, а также о том, как разная еда влияет на твое тело. Я покажу, как составить план тренировок и диету для снижения веса, набора мышц или всего вместе. Я даже затрону такие специфические темы, как стоячие столы (за которым ты работаешь стоя) и фитнес-устройства для гиков.