Работа программистом предполагает постоянное обязательное самообучение. Самообучение включает в себя, во-первых, углубление знаний в уже знакомых сферах, и, во-вторых, получение навыков в неизвестных и пропущенных областях. Это всё, конечно, красиво звучит на бумаге, но по факту мы ещё имеем приступы лени, застревания в стеке технологий и выгорание от рутины. Новые ощущения помогают в борьбе с тёмной стороной разработки. Вот только ощущения должны быть действительно новыми: разбираться в десятый раз с нюансами «новых» api от очередной социалки быстро становится завуалированной рутиной.


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

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

Основное решение тут простое и всем известное: самообразование. Оно может принимать разные формы: дополнительный проект для хобби; образовательные курсы и семинары (текст / аудио / видео); конкурсы и соревнования; книги. Для меня самыми полезными и эффективными стали книги, поэтому на их примерах и будут описаны применяемые мной методы контролируемого обучения.

В чём проблема? Бери и читай!


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

Вот с чем легче провести время отдыха: «Эгоистичный ген» Докинза или «Совершенный код» Макконелла; «Кровь, пот и пиксели» Шрайдера или «Паттерны проектирования» от Фрименов? (Хотя справедливости ради стоит добавить, что все эти книги были самыми увлекательными в списке).

Вот начал полезную книгу. Теперь всё хорошо?


А вот нет. За собой заметил, что впервые начав читать Совершенный код Макконнелла, замедлился в чтении где-то на середине. И как-то незаметно можно сделать перерыв в неделю, две недели… потом почитать часок… и опять пауза на неделю. Эдак одну книгу годами можно читать, но так и не закончить, но ложное чувство постепенного прогресса при этом всё равно присутствует. А чувство стыда за большие перерывы незаметно отбивает всякое желание возвращаться к предмету, который доставляет столько неприятных переживаний.

Так кто же враг?


Моим врагом было отсутствие наглядности. Когда не видишь постоянно насущную задачу, то её вроде как и нет. И можно отложить её в долгий ящик. Для решения этой проблемы у меня не было инструментов, но подходящий для себя я всё же нашёл. И это простая таблица карьерного капитала в Google Docs. Сойдёт вообще любая таблица, в том числе и в бумажном виде. Нашёл я эту методику в книге Нюпорта «В работу с головой». У него там несколько методик, но мне подошла именно эта.

Методика «Таблица карьерного капитала»



Базовые правила:

  1. Создать таблицу с 3 столбцами: Дата; Затраченные часы; Выполняемые задачи.
  2. В конце каждого дня заполнять очередную строку таблицы. В «Выполняемые задачи» вносится список значимых для самообразования задач и сколько часов в каждую из задач было инвестировано. В «Затраченные часы» сумма часов по задачам.
  3. Если за день не было выполнено ни одной задачи, то ставить прочерки и нули, чтобы они мозолили глаза.
  4. Включать в список только значимые для своего самообучения задачи. Ремонт в квартире часто может быть важнее самообразования, но включать его сюда не стоит. Впрочем, это правило очень размытое.
  5. Задачи предпочтительнее ставить в формате SMART, то есть быть: конкретными (прочитать книгу А); измеримыми (прочитана и понята 1 книга); достижимыми (я уже читал подобные книги и эту осилю); актуальными (мои алгоритмы тормозят! С этим надо что-то делать); с указанием крайнего срока сдачи (максимум 2 месяца на прочтение).
  6. Общее число текущих задач не должно быть слишком большим, чтобы не распыляться. Для меня это примерно 6 задач. При этом строго соблюдается правило, что единовременно нельзя читать больше 2 книг.
  7. В конце месяца суммируются все часы и сравниваются со средним Вашим показателем. Если больше среднего — чувствуем себя очень хорошо; если ниже среднего — всё равно чувствуем себя хорошо; если ниже поставленного обязательного минимума — чувствуем себя нехорошо и либо корректируем своё поведение, либо снижаем минимальную планку.

Вот и всё — метод очень простой. За подробным описанием с примерами можно обратиться к одной из книг Нюпорта.

У себя я вношу часы с градацией 0,25 часов (15 минут).
В месяц у меня выходит от 30 до 120 часов.
Минимальная планка: 30 часов.
Средняя планка: 60 часов.
Таблицу можно уточнять, усложнять и украшать разными диаграммами для приятной визуализации.

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

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

— [40,25 ч.] Совершенный код. Макконнелл.
— [1,75 ч.] Scrum гайд и стратегии.
— [34,50 ч.] Искусственный интеллект в компьютерных играх. Алекс Дж. Шампандар.
— [26,50 ч.] Паттерны проектирования. Фримен, Фримен, Сьерра.
— [24,75 ч.] (English) Шаблоны в игровом программировании. Робер Нистром.
— [17,50 ч.] Эгоистичный ген. Докинз.
— [5,50 ч.] Воспитание ребенка. Гипенрейтер.
— [8,00 ч.] В работу с головой. Нюпорт.
— [12,75 ч.] (English) Гарри Поттер 1.
— [9,75 ч.] (English) Гарри Поттер 2.
— [11,25 ч.] (English) Гарри Поттер 3.
— [22,75 ч.] (English) Гарри Поттер 4.
— [26,75 ч.] (English) Гарри Поттер 5.
— [18,25 ч.] (English) Гарри Поттер 6.
— [19,75 ч.] (English) Гарри Поттер 7.
— [5,50 ч.] Фрирайтинг. Марк Леви.
— [13,00 ч.] (English) How to win friends. Cornegey.
— [4,25 ч.] Макиавелли. Государь.
— [7,50 ч.] Кровь, пот и пиксели Шрайера.
— [23,75 ч.] Все о цвете. Линдси.

Заключение


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

Кстати, хочу заметить, что наличие некоторых книг в списке не означает, что они мне понравились и я бы их рекомендовал кому-то, кроме своих врагов. Поэтому рекомендательным списком его воспринимать никак нельзя.

Для игровой разработки я могу посоветовать: «Совершенный код»; «Паттерны проектирования»; «Шаблоны в игровом программировании»; «Кровь, пот и пиксели»; «Все о цвете».

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

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


  1. KonstantinSpb
    16.05.2019 08:28
    -1

    Самый лучший способ научиться чему-нибудь, это объяснить и научить этому других.
    И уметь объяснять так, чтобы даже 5 летний ребенок понял бы.


    1. qnok Автор
      16.05.2019 08:38
      +1

      Лишь отчасти согласен.
      Самому учить — это хорошо для закрепления и более полного понимания.
      Но для обучения новому этот подход не работает, т.к. учить тому, в чём не разбираешься не получится. И ученики в проигрыше, и учитель нахватается заблуждений.


    1. superyateam
      16.05.2019 10:11
      +2

      Как вы научите чему-то других, если вы сами это не знаете?


      А знаменитая фраза про то, что если вы не можете объяснить пятилетнему ребенку, то значит вы сами в этом не разбираетесь — это полный бред. Попробуйте, объясните уравнения математической физики, например.


      1. Guitariz
        16.05.2019 10:25
        +2

        Зато удобное оправдание для тех, кто не понимает, например, зачем нужно преобразование Фурье. Вместо здорового занудства гораздо легче изобрести десяток поговорок-отговорок и сыпать ими на каждом углу.


      1. akryukov
        16.05.2019 10:28
        +1

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


        1. Guitariz
          16.05.2019 10:36

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


        1. superyateam
          16.05.2019 11:07

          сомневаюсь по поводу общего смысла.
          вот я вчера читал эту статью: habr.com/ru/post/451604
          очень интересно, потому что я увлекаюсь геймдевом, но матмодель которая там описана, мне совершенно непонятна — нужно сидеть вспоминать, что проходил в университете, читать что-то еще дополнительно.
          Какое общее представление тут можно донести пятилетнему ребенку? То, что корабль по волнам плывет и качается? Да тут такой пласт математики и физики скрывается, что не каждый взрослый поймет что к чему.


          1. akryukov
            16.05.2019 11:34

            Какое общее представление тут можно донести пятилетнему ребенку? То, что корабль по волнам плывет и качается?

            Именно так.


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


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


  1. suharik
    16.05.2019 10:11
    +1

    Интересная идея насчет таблицы, спасибо. Мой «книжный путь» оформлен иначе, оказался довольно удобным. Постоянно под рукой блокнот для разных записей, в самом начале занес список книг, разделенных на уровни (Level one, two, three) — то, что планирую прочесть в ближайшее время. Уровни представляют собой погружение в тему — сперва язык сам по себе, затем применение его в получении и анализе данных, затем более узкая область, анализ текста.
    Само время чтения подсчитывать не стал, только даты начала и конца. В перспективе будет добавлено количество страниц и место (в дороге, в парке, перед сном).

    Список
    image


    1. qnok Автор
      16.05.2019 10:17

      Спасибо. Разделение на уровни в плане — отличное дополнение для меня.
      У меня подобные бумажные носители имеют тенденцию «замусоливаться» от частого использования и постепенно забрасываться в кучу бумаг «на потом».


  1. valweb
    16.05.2019 10:13
    +1

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

    Из последних понравилась книга Джона Сонмеза «Путь программиста»: обо всем скомпоновано.


    1. qnok Автор
      16.05.2019 10:19

      Благодарю за наводку на Сонмеза. Посмотрю на возможность включения его в персональный план.


  1. qppi
    16.05.2019 10:14

    самый лучший способ всей ерунды с тайм менеджментом и самообразованием это ПОСТОЯННО иметь перед глазами запись о том что нужно сделать-выучить


  1. Guitariz
    16.05.2019 10:16
    +1

    Jira и Trello — готовые визуальные инструменты для менеджемнта любых задач. Может по началу будет казаться сложным, но поверьте, табличка гораздо большее зло.

    Далее просто мое имхо.
    Все мотивационные тренинги мне напоминают чистое аборигенство. Успешные люди постят картинка с прочитанными книгами, а все вокруг пытаются повторить успех путем просто перечитывания тех же книг.
    Без желания. Без понимания. Без хоть какого-то внутреннего посыла. Изобретают мотивационные тренинги, заставляют жить себя по выдуманным табличкам. Начинают «продавать » свои методики другим аборигенам.
    Ну согласитесь, это же все равно что скакать вокруг упавшего самолета с выдуманными заклинаниями — абориген от этого не станет пилотом и тем более инженером.

    Интересно мнение автора —
    а велик ли толк от чтения из под палки? Много ли информации усваивается?
    Неужели книга настолько скучная, что надо буквально уговаривать себя почитать еще несколько минут? Может, дело все таки в книге? Или в том, что оно автору не надо?


    1. rtakyiv
      16.05.2019 10:26
      +1

      Я не автор, просто мои пять копеек. Опять же, по поводу тренингов не буду говорить — не пробовал и не участвовал. А вот такие штуки как автор предлагает — по-моему неплохая штука. Тема в том, что такая 'маркировка' добавляет иногда мотивацию, работает как положительное подкрепление. Мозгу так проще, почитал 30 мин полезное чтиво — получи ачивку. Т.е. "из-под палки" это как раз без таблички. Это подкрепление может быть вообще безсмысленным, символическим, но это работает во многих случаях. Есть крутая книга на эту тему — "не рычите на собаку", Прайор кажется, про то как это у зверей и у людей рабоает. Книжка коротенькая но емкая по смыслу, интересная.


    1. qnok Автор
      16.05.2019 10:27

      Все мотивационные тренинги мне напоминают чистое аборигенство. Успешные люди постят картинка с прочитанными книгами, а все вокруг пытаются повторить успех путем просто перечитывания тех же книг.
      Без желания. Без понимания. Без хоть какого-то внутреннего посыла. Изобретают мотивационные тренинги, заставляют жить себя по выдуманным табличкам. Начинают «продавать » свои методики другим аборигенам.
      Ну согласитесь, это же все равно что скакать вокруг упавшего самолета с выдуманными заклинаниями — абориген от этого не станет пилотом и тем более инженером.


      Вот полностью с этим согласен.
      Вероятно, я в статье не на том сделал акценты, раз мою статью так воспринимают.
      Неужели, многие думают, что я действительно буду рекомендовать Гарри Поттера для обучения программированию? Для себя я его прочитал, чтобы а) подтянуть словарный запас в художественном английском; б) эти сказки написаны простыми конструкциями, что удобно для начала.

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

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


      1. Guitariz
        16.05.2019 10:32

        Я не про литературу, я в целом про посыл «заставьте себя читать, а если не можете, придумайте мотивационную табличку».
        В эту же игру отлично будет вписываться любой литературный мусор для домохозяек, котопые легко читается. Ачивками по времени чтения можно хоть всю стену завешать.
        Гораздо важнее прочитать одну толковую книгу с пониманием содержимого, чем начитать 120 часов по табличке.
        И да, если глава в статье не интересна — вы это либо знаете, либо оно вам не нужно. Возможно, нужно глубже разобраться в вопросе, чтобы понять, зачем эта глава, или перечитать предыдущие. Или, возможно, просто перестать себя обманывать.


        1. qnok Автор
          16.05.2019 11:01

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

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


          1. Guitariz
            16.05.2019 11:22

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


            1. qnok Автор
              16.05.2019 11:48

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


    1. Gryphon88
      17.05.2019 19:15
      +1

      Я не автор, но если Вам интересно моё мнение… Читаю в два захода, в первый наискось, не добиваясь полного понимания/запоминания, на уровне «есть такая штука, применяется тогда-то, решает такую-то проблему», во второй, когда столкнусь с проблемой или обстоятельствами, про которые ранее читал, возвращаюсь и перечитываю. Например, «с листа» паттерны программирования так и не осознал, а когда боролся со спагетти, очень даже.


  1. msdos9
    16.05.2019 10:36

    В 80-х годах, будучи школьником, я поглощал тонны литературы (и худ. и нехуд.), и еще умудрялся хорошо учится, и, заметьте, без всяких таблиц и прочих пинков под зад. Может потому, что было ИНТЕРЕСНО?


    1. qnok Автор
      16.05.2019 11:02

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


      1. msdos9
        16.05.2019 11:39

        В принципе, сейчас, я могу найти время для чтения, но желание уже не то, и даже таблички не помогут )))


  1. Capacitor10n
    16.05.2019 11:43
    +1

    А я при чтении тех. литературы вырубаюсь минут за 10, вовремя чтения мысли улетают далеко в космос и я даже не понимаю что читаю…
    Какую нибудь фантастику читаю вообще легко, только начинаешь и все будильник звенит пора умываться и спать.

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

    Как читать без сюжетные книги не засыпая и не теряя концентрации на смысле?)
    Читаю через силу, но длительность концентрации не растет, чередования сюжетных и без сюжетных книг не помогает.


    1. qnok Автор
      16.05.2019 11:51

      Бывают тех. книги с некоторым подобием сюжета.
      Для меня лучшим примером этого была книга «Паттерны проектирования. Фримен, Фримен, Сьерра.»


  1. NIKOSV
    17.05.2019 01:29
    +1

    Мой подход — беспроводные наушники + аудио книги. Занимаешься домашними делами и слушаешь книгу. За год таким способом «прочитал» примерно 25 книг без потери времени. Если бы читал сам, у меня бы это заняло вечность. Правда этот способ подходит только для гуманитарных и художественных книг.


    1. qnok Автор
      17.05.2019 07:32

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


    1. suharik
      17.05.2019 09:28

      1. qnok Автор
        17.05.2019 17:35

        Для них и аудиокниг не делают, поэтому и проблемы нет.


        1. suharik
          18.05.2019 17:45
          +1

          Делают. Перейдите хоть по одной из ссылок )


          1. qnok Автор
            18.05.2019 22:54

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