Дошли руки до книги Чеда Фаулера «Программист-фанатик».

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


Книга известная, ранее издавалась под названием «Страсть к программированию» и на хабре выкладывали главы из нее.

В целом идеи Фаулера иногда очень банальны и очевидны (даже думаешь, зачем об этом вообще было писать, это и так всем понятно); иногда спорны; а иногда любопытны.

Книга разделена, как и полагается, на главы, они названы советами и пронумерованы.
Всего 5 частей и 53 совета.

Главный посыл и идея книги раскрываются с первых же слов:

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

Автор в прошлом профессиональный музыкант. И в самом начале высказывает любопытную идею. Он задается вопросом:

Почему так много хороших музыкантов являются также хорошими программистами?

И сам же отвечает на него:

Дело в том, что используются одни и те же функции мозга, обе профессии ориентированы на нюансы, обе требуют креативности.

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

В предисловии к главе еще раз подчеркивается, что профессия и карьера — это инвестиции времени своей жизни. Поэтому карьеру ни в коем случае нельзя пускать на самотек.

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

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

В конце главы предлагается упражнение. Разделить лист на две части. В правой выписать угасающие технологии, а слева набирающие силу, недавно заявившие о себе. Когда все будет готово, отметить то, с чем знаком наиболее полно. Затем то, в чем есть опыт, но недостаточный.
Дальше Фаулер предлагает оценить получившийся результат: чего больше? прослеживается ли тенденция?

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

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

Рассматривается аутсорс и уровень владения навыками. Предлагается такая стратегия:

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

В конце главы предлагается исследовать рынок труда.

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

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

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

Глава начинается с цитаты Пэта Метени: "В какой бы группе ты ни был, всегда будь в ней худшим".

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

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

Фаулер советует изменять тип мышления изучая языки, наподобие, SmallTalk. Это добавляет вариативности в подходах.

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

Рассматриваются старые походы к карьере:

  1. «Вечная» работа в одной компании.
  2. Работа только ради работы.

В конце главы предлагается вспомнить принятые карьерные решения. После чего оценить их. Насколько этим конкретным решением управлял страх? Какое решение было бы, если бы страха не было?

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

Если ты хочешь оказаться последним человеком в списке на увольнение, имеет смысл стать полезным в как можно большем числе случаев.

Автор предлагает как минимум пять «степеней свободы» и не ограничивать себя конкретной технологией или ролью. А также не ограничиваться и максимально расширять свои знания в направлениях:

  1. Конкретная должность. Умение не ограничиваться четко своим сектором, а, если это потребуется, поддерживать соседние и помочь им своими знаниями.
  2. Платформа/ОС.
  3. Базы данных.
  4. Системное администрирование.
  5. Бизнес. Об этом уже говорилось в главе 3.

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

Суть главы — максимально изучить все, что можно по своему направлению. Фаулер рассказывает историю. Он нанимал людей, и они не могли ответить на вопрос:

Как бы вы написали на Java программу, которая уронит виртуальную
машину Java?» А в ответ — тишина… «Эй, как вас там? Ау!


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

Тут нет смысла что-то писать. В названии главы и отрывке вся суть:

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

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


В конце рекомендуется:

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

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

Вся суть главы в одном предложении: если ты хочешь до­стичь высот в своей работе, ты должен быть влюблен в нее.

На этом глава 10, а заодно и часть 1 закончились.

Часть 2 + конспект-таблица


Часть 3 + конспект-таблица

Комментарии (52)


  1. SlavikMIPT
    20.12.2019 02:13

    четко


    1. CrzyDocTI
      20.12.2019 14:33

      ага, особенно:

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


      1. enjoykaz
        20.12.2019 21:12

        image

        Комбо


      1. SlavikMIPT
        21.12.2019 22:22
        +1

        не вижу противоречий


      1. webmascon
        22.12.2019 05:10
        +1

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


        1. SlavikMIPT
          23.12.2019 00:33

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


  1. Cassiopeya
    20.12.2019 06:50

    Спасибо за Вашу работу!
    Хотела прочитать ее, но останавливало всегда именно то, что в подобных книгах смысла на десяток страниц и на 300+ воды


    1. AGregory Автор
      20.12.2019 10:33
      +1

      Пожалуйста. В ближайшие дни, как будет время, вылажу конспект остальной части. В книге очень много воды, поэтому конспект передает мысли автора в сжатом виде и саму книгу можно уже не читать.


    1. iago
      20.12.2019 17:26

      присоединюсь к благодарности автору, молодец что осилил, но даже в конспекте куча воды и капитанства, примерно как на annual мотивационных митингах в нашей enterprise компании


  1. MinimumLaw
    20.12.2019 07:16

    Ой как не хочется в очередной раз влезать в фанатские дискуссии… Но просто не могу.

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

    К слову, у меня у одного сайт chadfowler.com в хроме 79.0.3945.79 и Firefox 71 (macOs) не работает (только пункт articles из верхнего меню нормально отрабатывает)? Так и задумано или что?

    Читайте классику. То же «Искусство программирования». Оно реально полезнее.


    1. jaiprakash
      20.12.2019 09:14

      FF на андроиде: на многих пунктах меню вместо открытия страницы загружает файл index.textfile


      1. jaiprakash
        20.12.2019 09:19

        Который при открытии в текстовом редакторе оказывается html. Так что сохраните, переименуйте. Или напишите автору.



    1. AGregory Автор
      20.12.2019 10:37
      +1

      Так в этом же и смысл. Смысл конспекта — познакомить со спорными мыслями автора, а не воспринять их как истину. Разные подходы рождают дискуссию и это хорошо.


      1. ua30
        20.12.2019 14:08

        Спорные мысли это неплохо (может быть). Но… Вам не кажется, что советы 1, 2, 7, 8, 9 просто конфликтуют друг с другом? Одно дело, когда автор ведет свою спорную линию. А другое, когда одни его мысли противоречат другим его же мыслям.


    1. ua30
      20.12.2019 11:24

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


      1. webmascon
        22.12.2019 05:18

        книга написана ровно 10 лет назад — в 2009 году.


    1. bugdesigner
      21.12.2019 07:09

      Интересно, может это связано с стремлением быть худшим?


  1. VMichael
    20.12.2019 09:09
    +1

    Совет 6. Не слушай родителей
    Рассматриваются старые походы к карьере:
    «Вечная» работа в одной компании.
    Работа только ради работы.

    Что, родители могут только такие советы давать? Родители разные бывают. Инфантилизм и идиотизм какой то просто.
    Я бы советовал прислушиваться к советам родителям, у них есть жизненный опыт, которого нет у детей (речь совсем не о технологиях). Вообще полезно, когда ты слышишь о разных сторонах вопроса информацию. Но также нужно помнить, что ответственность за принятое решение за тем, кто его принимает, а не за тем, кто советует. Не нужно пытаться переложить ее на советчиков.


    1. iago
      20.12.2019 17:28

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

      Но забывает что по пути к этой «хорошей работе» я за 13 лет сменил 6 компаний. А если бы остался в первой, то получал бы, как мне говорили когда уговаривали к ним на распределение, «не меньше чем на интеграле» (завод такой в Минске)


  1. Sonnenwendekind
    20.12.2019 10:38
    -2

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

    Совет не ясен: пришёл на работу пьяным, начальнику это не понравилось.


    1. AGregory Автор
      20.12.2019 10:41

      Смысл в другом. Фаулер считает, что нужно работать в том месте, в котором есть огромный потенциал для профессионального роста. Возьмем его пример с оркестром. Музыкант стремится попасть в коллектив, в котором он играет хуже всех остальных. За счет этого всеми силами он старается «подтянуться» до уровня остальных музыкантов.


      1. igruh
        20.12.2019 13:16

        Совершенно верно. Это неверный (с точностью до наоборот) перевод совета. Выбирай место, где ты будешь сначала худшим, чтобы стать лучше.


        1. lxsmkv
          20.12.2019 15:50
          +1

          Я слышал этот совет в формулировке: окружай себя людьми которые лучше тебя.


    1. VMichael
      20.12.2019 10:44

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


      1. DrunkBear
        20.12.2019 12:03

        Только автор умалчивает — а ты-то зачем этой команде нужен? /irony
        Если ты не знаешь и не умеешь того, что будет полезно другим, ты просто балласт.


        1. AGregory Автор
          20.12.2019 12:18

          Вы абсолютно правы. И это стрессовая ситуация для человека. Т.к. он сам видит свою некомпетентность, т.е. это его внутреннее состояние, но коллектив это тоже видит и это внешнее давление. В такой ситуации только два хороших решения: 1. уйти; 2. потратить все силы, чтобы как можно быстрее (насколько возможно, конечно) перестать быть худшим и поднять свой уровень.


          1. DrunkBear
            20.12.2019 14:57

            Я немного не о том: если человек приходит в команду — он уже должен уметь что-то полезное для этой команды — тестить рутинные операции, делать мёрджи веток или вовремя приносить хороший кофе — не суть важно.
            Поэтому не стоит недооценивать свои сильные стороны.


        1. zomby
          20.12.2019 20:46

          В любой команде есть кто-то худший. После нескольких итераций увольнения худшего ваша команда будет состоять из одного человека :)


          1. webmascon
            22.12.2019 05:15

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


  1. lazexe
    20.12.2019 13:21

    Вот только совсем недавно прочитал эту книгу — воды налито более чем. Советы более чем очевидные для типичного здравого разработчика программного обеспечения. Не тратьте на нее даже время. А этой статьи — более чем достаточно.


  1. ixolit
    20.12.2019 13:43
    +1

    Последние пару лет читаю книги американских авторов по разным тематикам и там всегда так — книжка на 300 страниц, полезных мыслей 2 страницы максимум, остальное вода.


    1. iago
      20.12.2019 17:30

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


  1. arheops
    20.12.2019 14:52

    Ага, будь универсалом и одновременно будь специалистом.
    А еще желательно богатым и здоровым.


    1. lxsmkv
      20.12.2019 16:02
      +1

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


  1. missman
    20.12.2019 17:01

    Объясните джуну)

    Как бы вы написали на Java программу, которая уронит виртуальную
    машину Java?


    1. Ritikular
      20.12.2019 20:00

      System.exit(0); выполнит остановку JVM


      1. ubogov
        21.12.2019 01:39

        А ошибка в рантайме не уронит?


      1. Vlad_02
        22.12.2019 08:47

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


        1. Ritikular
          22.12.2019 14:22
          +1

          Согласен с Вами. В оригинале вопрос звучал как: «How would you crash a JVM», так что мой ответ не совсем корректен. Хотя exit() и выполнит остановку с вызовом shutdown hook и finalize полагаю что автор хотел бы услышать другой ответ. Как альтернативу я бы еще мог предложить «Runtime.getRuntime().halt()» которая как раз уронит запущенную JVM. Учитывая что автор посетовал на то, что не услышал даже неверного ответа это скорее можно расценивать как поле для дальнейшей дискуссии, вряд ли кому-то на самом деле приходилось писать такой код. Опять же, какой вопрос — такой и ответ. Некорректность можно расценивать в свою пользу.


  1. OZR
    20.12.2019 17:30
    -1

    Для меня эта книга оказалась самой интересной и полезной в этом году. И ещё точно будет перепрочитана в будущем, для лучшего осознания. Важное уточнение:

    Книга не имеет абсолютно никакого отношения к программированию и программной инженерии. Т.е совсем. Никак. В ней нет никакой информации про то как или что-то работает. На мой взгляд она даже никакого отношения к IT не имеет.

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

    Она не техническая. Всё написанное — именно гуманитарные навыки и привычки. Книгу проглотил за сутки. Очень понравилась.


    1. iago
      20.12.2019 17:31

      у меня для вас плохие новости. Вы — гуманитарий!


      1. OZR
        20.12.2019 19:36
        +1

        Скорее часть нашего _технарского_ общества выпускает наглухо оторванных от реальности технофашистов, с наукой, вместо религии и лозунгами аля «Всю власть — инженерам!». «Программисты — 31337!»…

        А хочется быть элитой, настоящей. А не навязанно-выдуманной. А для этого необходимо понимать всё вот это humanities. Как минимум для того, чтобы не быть в глазах общества IT-специалистом паршивым интеллигентным инженеришкой, место которого в НИИ, в шарашке. А социальный статус почти у всех IT-шников и тыжпрограммистов не выше токаря.

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


        1. MinimumLaw
          21.12.2019 10:09
          +1

          А хочется быть элитой, настоящей. А не навязанно-выдуманной. А для этого необходимо понимать всё вот это humanities.


          Ммм… Однако…

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

          Может все не так. И никогда общество в добровольном порядке не признает себя «быдлом» в противовес «настоящей» и «не настоящей» элите. Общество может (и будет) ценить профессионалов. Мастера токаря (посмотрите количество работ на том же YouTube и комментариев под ними), продавца, к которому приятно прийти за покупками, директора, который грамотно обеспечивает работу своей организации не допуская авралов или простоев и заботящегося о своих сотрудниках, да того же IT'шника, который в сотый раз может рассказать с улыбкой и прибауткой какую кнопку нажать надо и программиста, который упрощает жизнь админу и пользователям.

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

          А уж как с этим соотносится конспект книги… Давайте оставим это на совести каждого конкретного человека. Не хочу сильно углубляться. Хотя бы по тому, что мое мнение может не совпадать с мнением окружающих. Больше того, на Хабре не просто может, а практически гарантированно будет не совпадать.


          1. lxsmkv
            21.12.2019 23:33

            Мне показалось, OZR говорил об "элитизме" который иногда проявляют некоторые представители этой профессиональной области. Т.е. говоря просто, это профессионально обусловленная заносчивость. Этот элитизм проявляется, например, посредством такой беззлобной дискриминации вроде «Вы — гуманитарий» (см. комментарий выше).

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

            Есть у меня еще одна теория на этот счет. Что эта профессиональная область до определенной степени заполнена самозванцами (людми обладающими поверхностными знаниями, дилетантами), которые себя так ведут, чтобы сойти «за своего». Но это только теория.


            1. MinimumLaw
              22.12.2019 11:04

              Хотя может это когнитивное искажение и таких везде хватает.


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

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

              Но это только теория.


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


  1. dbarabanshchikov
    20.12.2019 19:39
    +1

    Читал её пару лет назад, детали уже подзабылб, а перечитывать желания нету. За статью спасибо, освяжил в памяти. Жду следующую часть.


  1. slovak
    20.12.2019 21:04

    А smaltalk попадает в "угасающие технологии"? ))


  1. Northerner19
    21.12.2019 00:11
    +1

    Книгу уже начал читать ранее но остановился. Случайно увидел статью. Спасибо за конспект, буду ждать следующие части.


  1. Londoner
    21.12.2019 00:53

    Да, есть ощущение, что гонорар авторов книг зависит от количества страниц. А нет ли где-нибудь на просторах Интернета проекта, где добровольцы публикуют конспекты различных книг?


  1. Londoner
    21.12.2019 01:01

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

    А вот совет делать наоборот


  1. AGregory Автор
    22.12.2019 08:46

    Готовы еще две части. Для удобства я добавил в них конспект-таблицу. Это самая суть, которая позволяет узнать основные мысли книги за секунд 30. Всех приглашаю.
    Часть 2
    Часть 3