Тезисы из книги «Путь программиста»

Прочитал книгу Джона Сонмеза «Путь программиста» и книга мне, если честно, запала в душу, так она легко и прямо ответила на многие вопросы, на которые я бессознательно ищу ответы. В общем книга описывает то, что за рубежом называют «soft skills» — навыки, которые необходимы каждому разработчику, но они не имеют отношения к техническим. В общем сделал для вас краткий разбор тезисов с комментариями (материала много, так что пост длинный). Книга разделена на несколько частей и я буду сохранять данную последовательность в своем пересказе.

Часть 1. Карьера

  • Необходимо фокусироваться на тех услугах, которые вы предоставляете как программист или разработчик. Что это значит? А значит это то, что независимо от того работаете вы на компанию или занимаетесь фрилансом, вы должны понимать, что в первую очередь продаете услуги. И эти услуги должны быть качественными.
  • Начиная свою карьеру выделите для себя крупную цель и множество мелких, которые бы помогли достичь ее. Строить свою карьеру нужно сознательно и идти к цели.
  • Расширяйте свой круг общения, это всегда будет полезно как сейчас, так и в будущем.
  • Читайте и комментируйте чужие блоги. Последние 2 тезиса связаны с тем, что сфера работы разработчиков, особенно hardware-разработчиков очень мала, людей занимающихся разработкой электроники не так много. Ищите связи, хотите устроиться в компанию мечты, значит заведите знакомство с разработчиками этой компании, комментируйте статьи в их блогах, станьте узнаваемым в своей сфере работы.
  • Разработчик должен быть узко специализированным специалистом, это повышает привлекательность на рынке труда.
  • Можно выделить следующие варианты продвижения по карьерной лестнице: берите на себя больше ответственности, беритесь за сложные проекты, от которых все отказываются, помогайте новичкам и коллегам, возьмитесь за документирование процессов и проектов, ведите ежедневные записи о работе и предоставляйте недельный отчет менеджеру проекта или непосредственному начальнику, создавайте презентации по теме или задаче, с которой столкнулась ваша команда.
  • Важно: будьте тем человеком, у которого всегда есть решение задачи, никогда не говорите, что задача слишком сложна или идея не будет работать.
  • Вам нужна эффективная система учета рабочего времени, чтобы контролировать сколько времени в день вы тратите на продуктивную работу.

Часть 2. Продвижение себя как разработчика

  • Продвигать себя как разработчика можно разными способами и самым верным является создание своего бренда.
  • Чтобы стать узнаваемым специалистом необходимо занять узкоспециализированную нишу и стать в ней профессионалом, обычно на это уходит около 10 лет в среднем.
  • Иметь личный блог это как иметь очень хорошее резюме, его нужно регулярно обновлять, идеальным вариантом будет выкладывать одну статью в неделю, в начале года я тоже дал себе слово, что буду выкладывать одну статью в неделю, но даже это оказалось для меня не такой посильной задачей(
  • Главный критерий контента, который вы будете создавать — он должен быть полезен другим людям, на него должны ссылаться.
  • Часто у новичков возникает вопрос, откуда брать идеи для контента? Лично я набираю материал понемногу, веду дневник, в который вношу каждый день то, чем занимаюсь в течение дня, последовательность каких-то работ по проектам, материалы, которые изучаю. Это помогает набрать материал для статей. Не нужно бояться, что статьи не идеальны, они и не должны быть идеальными, главное начать писать, со временем навык позволит более грамотно излагать свои мысли. Мне помог навык слепой печати быстро вести дневник и печатать заметки на ходу, когда я занимаюсь другой работой.
  • Чтобы получать трафик на свой блог, вам нужно комментировать чужие блоги и форумы, а когда предоставится возможность оставить ссылку на статью в своем блоге. Также по продвижению бывает полезно размещать ссылки на блог в социальных сетях, например, у моего блога и форума есть сообщества в ВК, Твиттере и Телеграм, это приносит дополнительный трафик. Также рекомендуется оставлять ссылки на страницы в соцсетях в конце каждой статьи, чтобы вас было проще найти.
  • Публичные выступления очень важны, например, презентация на работе по какой то задаче или проекту, но в наших реалиях такие вещи не всегда осуществимы. Создание скринкастов отличный способ начать подобные выступления.
  • Написание собственной книги по какой-либо теме является верным способом зарекомендовать себя как эксперта по данной теме. Хороший пример книга «Си для встраиваемых систем». Книга опубликована в leanpub, наиболее популярное место для тех, кто хочет издать книгу самостоятельно и получать деньги с продажи.
  • Необходимо не волноваться о том, что о вас думают другие люди и преодолеть страх критики и неловкость.

Часть 3. Обучение

  • Мир меняется очень быстро и обучение это важный навык для разработчика.
  • Лучший способ научиться чему-то — погрузиться с головой в процесс и начать действовать еще до того, как станет ясно, что нужно делать. До того как прочитать книгу по интересующей теме, пробегите ее глазами и начинайте действовать. Когда у вас накопиться достаточно вопросов, можете начинать читать книгу в поисках ответов.
  • Наконец, закрепите полученные знания, обучив тому, что вы узнали, кого-то еще.
  • Десятишаговый процесс обучения:
Десятишаговый процесс обучения
  • Первые 6 шагов выполняются только один раз для каждой темы, которую вы хотите изучить. Шаги 7-10 нужно повторять для каждого модуля плана, который вы составите на шаге 5.
  • Шаг 1. Получить общую картину, т.е. найти некоторое количество материала в интернете по теме, которое даст понимание темы и насколько она объемна.
  • Шаг 2. Определить масштаб. Используйте промежуток времени, который вам доступен для того, чтобы сузить тему изучения до разумных пределов, которые вы сможете освоить за данное время.
  • Шаг 3. Определите конечный результат. Не зная, как выглядит успех, трудно нацелиться на него и трудно понять.
  • Шаг 4. Найдите ресурсы. Это обычно книги, статьи в блогах, видеоролики, проекты и т.д.
  • Шаг 5. Создайте план обучения. Используя уже найденные ресурсы, определите что именно изучать и в каком порядке.
  • Шаг 6. Отфильтруйте ресурсы. Важно теперь сузить количество ресурсов до нескольких самых полезных.
  • Шаг 7. Изучите достаточно, чтобы начать. Многие люди совершают две распространенные ошибки. Или ныряют с головой, не изучив достаточно материала или слишком долго готовятся. Нужно найти баланс между двумя этими состояниями. Основная идея этого шага — не изучать слишком много. Очень легко увлечься и начать поглощать все имеющиеся ресурсы, но вы сможете преуспеть, если избежите этого искушения. Вместо этого нужно сфокусироваться на минимальном объеме знаний, который поможет вам начать экспериментировать на следующем шаге.
  • Шаг 8. Экспериментируйте. Основная цель экспериментов это накопить вопросы.
  • Шаг 9. Выучите достаточно и сделайте что-нибудь полезное. Отвечаем на вопросы в шаге 8, подробно изучаем модуль своего учебного плана. Не нужно полностью запоминать всю информацию, читать ровно столько, сколько вам нужно прямо сейчас.
  • Шаг 10. Обучайте. Если вы хотите изучить тему глубоко, придется обучить кого-нибудь. Другого способа нет. Как? Способов много, от статьи в блоге до видеороликов на Youtube и презентаций для коллег по работе. Также можно отвечать на вопросы на просторах интернета.
  • Как найти ментора, который поможет в продвижении в изучении технологий? Ищите того, кто достиг того, что вы собираетесь сделать, того, кто помог другим достичь того уровня, которого хотите достичь вы сами.
  • Список вопросов при поиске ментора:
    • Сделал ли он то, что хочу сделать я?
    • Помог ли он кому-то сделать то, что хочу сделать я?
    • Какими результатами он может похвастаться?
    • Сможете ли вы подружиться с этим человеком?
  • Самый простой вариант найти ментора это поискать среди знакомых и друзей, но зачастую это редко может привести к успеху. Также можно найти человека и предложить ему поработать на него бесплатно в обмен на обучение.
  • Стать ментором. Чтобы стать ментором достаточно быть лишь на шаг впереди того, кого вы обучаете. Найти достойного ученика также задача не из простых, человек должен хотеть обучаться и много работать.
  • Навык обучения важен, чтобы избавиться обманчивого ощущения понимания предмета, имея при этом лишь только поверхностные знания по нему.
  • Автор сходится во мнении, что в области разработки ПО высшее образование не решающий фактор успеха, главное способности, однако его наличие будет несомненным преимуществом. Лучший способ показать ваш опыт это внести вклад в проект с открытым исходным кодом на github.
  • Чтобы заполнить пробелы в своих знаниях просто записывайте те вопросы на которые вы не знаете ответа, вносите их в список, чтобы знать чему уделить время, что ограничивает ваше развитие и эффективную работу.

Часть 4. Продуктивность

  • Продуктивность начинается с концентрации. Без концентрации задачи растягиваются на очень длительный промежуток времени.
  • Чтобы обрести концентрацию необходимо включить силу воли и заставить себя работать над задачей хотя бы 10 минут, за это время импульс концентрации уже будет достаточным, чтобы вас ничто не смогло отвлечь от выполнения задачи.
  • Вам необходимо планировать свои дела на неделю и месяц вперед, удобнее всего использовать для этого канбан доску. Сам я использовал Trello для личного планирования, но у автора прочел про отличный проект https://kanbanflow.com/ Его преимущество в наличии таймера выполнения задач и таймера «помидоров». У меня есть несколько списков: «Входящий задачи», «План на день», «План на неделю», «План на месяц», несколько списков по сферам деятельности и список «Сделано».
  • Техника «помидора» позволяет концентрироваться на задаче в течение 25 минут, после чего 5 минут отдохнуть. Эти 30 минут являются одним помидором. Наиболее эффективно отслеживать сколько «помидоров» ушло на ту или иную задачу и сколько «помидоров» нужно сделать в день.
Техникак помидора для повышения продуктивности
  • Техника «помидора» помогает избавиться от чувства вины за то, что вы мало работаете, т.к. скажем не смогли за день выполнить список дел, просто потому что недооценили то количество времени, которое понадобится на их решение. Если вы знаете, что запланировали в день делать Х «помидоров» и выполнили их усердно работая, то вы можете расслабиться без угрызений совести, поиграть в игру, посмотреть фильм или еще поработать, если есть желание.
  • Также автор предлагает систему квот для повышения продуктивности. Система квот, помогает справляться с повторяющимися задачами или с очень большими и долгими задачами.
  • Квота это количество работы, которое должно быть выполнено несмотря ни на что в определенный временной промежуток, например, выходить на пробежку три раза в неделю, писать по одной статье в неделю для блога, выполнять 50 «помидоров» в неделю.
  • Следует выбирать достижимые квоты, потому что один раз отказавшись от ее выполнения, вы откажетесь снова и быстро квота перестанет иметь значение.
  • Важно выработать чувство ответственности перед самим собой, чтобы быть продуктивным.
  • По поводу многозадачности, по факту наш мозг не может работать одновременно над двумя и более интеллектуальными задачами, думая, что мы выполняем две задачи одновременно, мы просто переключаемся между ними и теряем в производительности и теряем концентрацию. Но можно объединить некоторые задачи и получить настоящую многозадачность, к примеру, можно слушать аудиокнигу или подкаст и заниматься бегом, физическими нагрузками или ехать за рулем.
  • Как часто начинаешь новый проект полный энтузиазма, а по прошествии времени от него начинает тошнить, это и есть перегорание, преодолев это состояние можно открыть второе дыхание.
  • На самом деле лекарства от перегорания нет, нужно просто его игнорировать и добиваться цели несмотря на пониженный интерес и мотивацию, вы просто упираетесь в стену, но если ее пробить, появятся успехи, а с ними вырастет интерес и мотивация.
  • Перестаньте убивать время! Прямо сейчас прекратите смотреть телевизор, просто выкиньте пульт от него. Соцсети и новостные сайты съедают ваше время не хуже телевизора, сгруппируйте свою работу в соцсетях в отведенное время, вместо того, чтобы бессмысленно проверять активность в течение дня. Прекратите играть в онлайн видеоигры, в том числе на мобильных телефонах в то время, когда должны делать что-то другое. Отказ от всего этого увеличит вашу продуктивность в два, а может быть три раза.
  • Секрет продуктивности — выполнять небольшие задачи в течение долгого промежутка времени. Пишите по тысяче слов каждый день и за год наберется четыре романа. Между вами и вашей мечтой стоит рутина, то что вы делаете каждый день накапливается с течением времени во всех областях жизни.
  • Разбивайте задачи на части, это поможет быть более мотивированным и избежать прокрастинации. Являясь начальником также делегируйте задачи малого размера, чтобы подчиненный мог справиться с ней с наименьшим сопротивлением.
  • Тяжелый труд необходим для успеха. Ничто не дается легко. Но успехи порождают успехи. Чем более вы успешны, тем легче будут приходить новые успехи.

Часть 5. Финансы

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

Часть 6. Фитнес

  • Здоровье и занятия спортом это залог успеха любого разработчика.
  • Хорошая физическая форма придает человеку уверенности, что по данным исследований, проведенных в Школе Бизнеса Университета Беркли, является более важным фактором успеха, нежели талант.
  • Физические упражнения повышают вашу производительность и концентрацию.
  • Вы можете избежать многих болезней, занимаясь фитнесом. Вроде как очевидно, но не все так просто по моему мнению, еще важно правильно питаться, думаю это даже важнее спорта.
  • Для занятий фитнесом вам нужно выбрать конкретную и достижимую цель, если вы хотите сбросить или набрать вес, то сколько, если увеличить мышечную массу, то какой вес вы хотите поднимать и сколько раз. Для измерения прогресса выберите один параметр, который вы будете контролировать и следите за ним, чтобы понять когда достигнете цели.
  • Достигнув цели, важно поддерживать себя в форме, потому что потерять прогресс можно очень быстро.
  • Здесь можно расписать о том, как калории влияют на сброс и набор веса и как измерять количество потребляемых и сжигаемых калорий, но это в наше время довольно очевидные вещи.
  • Дать четкую мотивацию для занятий фитнесом очень трудно, то, что мотивирует одного, совершенно не мотивирует другого, поэтому важно вам найти то, что мотивирует вас (глава 59 книги дает довольно много советов для мотиваторов).
  • Далее в книге идет несколько вредных советов, которые касаются питания, возможно они только для меня вредны, так что можете их прочесть.

Часть 7. Дух

  • Лишь разум управляет телом, подчинить свой разум основная задача, которая сможет достичь успехов в любом деле.
  • То, о чем вы думаете, становится реальностью, по крайней мере то, что лежит в рамках возможностей тела и разума. Избегайте негативного мышления.
  • Придерживайтесь позитивного мышления, выбирайте хорошие мысли вместо плохих, каждая ситуация в жизни открыта для вашей интерпретации.
  • Глава 69, в ней автор дает список книг для обязательного ознакомления, вот некоторые из них:
    • «Война за креатив» Стивена Прессфилда
    • «Как завоевывать друзей и оказывать влияние на людей» Дейла Карнеги, сам с ней ознакомился, первый раз прослушал, после купил в бумажном варианте.
    • «Атлант расправил плечи» Айн Рэнд
    • «Совершенный код» Стива Макконнелла
    • «Чистый код. Создание, анализ и рефакторинг» Роберта Мартина
    • «Богатый папа, бедный папа» Роберта Кийосаки, сам прочел с большим удовольствием.
  • Примите свои неудачи, они необходимый шаг на пути к успеху.

Вот собственно и все. Вынес из книги много полезного, особенно то, что касается продуктивности. Перешел с Trello на KanbanFlow. Начал активно, а главное правильно применять технику «помидора», что существенно увеличило мою продуктивность. У меня появилось больше времени для саморазвития, чтения и игр. Я стал намного больше проводить времени с семьей.

Без сомнения эта книга станет для меня настольной, наряду с Карнеги.

Один ответ в “Тезисы из книги «Путь программиста»”

  1. теперь я знаю что буду читать в свободное от отдыха время. следовать ПРАВИЛЬНЫМ советам — тяжело, невыносимо и порой даже больно. НО — это то но, которое должна перевесить всё

Комментарии отключены.