Среди разработчиков регулярно всплывает вопрос о непрофильных знаниях: стоит ли тратить время, разбираясь в том, что не используешь ежедневно? Порой в связи с высшим образованием: «действительно ли надо давать теоретические основы в таком объёме, или больше пригодилось бы что-то ближе к продакшну?» Порой в связи с собеседованиями: «зачем там хотят блестящего знания алгоритмов, если вакансия на самом деле этого не требует?»

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

Недавно я увидел этот вопрос с ещё одного ракурса и снова задумался о нём. Обычно мы в JUG.ru Group организуем конференции по темам вроде «Java-разработка», где можно увидеть доклады, близкие своей непосредственной работе. Но на этих выходных проводим петербургский фестиваль TechTrain про «всё IT сразу»: там можно не только увидеть единомышленников, но и познакомиться с положением дел в других уголках IT.

Слоган фестиваля — «узнай, чем живут другие». И тут я задался вопросом: а кому это надо? Можно же узнавать то, чем живёшь сам и за что тебе платят. Как iOS-разработчику поможет знание «чем живут фронтендеры»?

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

Часть первая, прагматическая


Г-жа Простакова: А к чему бы это служило на первый случай?
Стародум: На первый случай сгодилось бы и к тому, что ежели б случилось ехать, так знаешь, куда едешь.
Г-жа Простакова: Ах, мой батюшка! Да извозчики-то на что ж? Это их дело.

Д. И. Фонвизин «Недоросль»


Казалось бы, в современном мире нехватку какой-либо информации можно быстро восполнить. Особенно про IT — уж про него в интернете писано-переписано, от Stack Overflow до Хабра. А значит, если вдруг понадобятся какие-то непрофильные знания из «соседней сферы», можно будет открыть Гугл и их обрести. И зачем тогда без конкретной цели в них лезть, если при возникновении этой цели всегда успеешь наверстать? Копай лучше своё основное направление, там конкретные цели всегда есть.

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

Но хотя это и не обязательно, всё равно неизбежно возникают ситуации, где это полезно. Когда договариваешься о встрече, знание города помогает сразу понять «какой вариант места мне удобнее» (не будешь же во время телефонного звонка говорить «подождите, сейчас в приложении разберусь»). Сразу примерно прогнозировать время любой поездки или стоимость такси, сразу знать «куда по какому поводу обращаться», сразу понимать «куда удобно заехать по пути» — всё это упрощает жизнь. И в IT знание «того, что вокруг» тоже несколько упрощает жизнь.

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

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


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

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

Часть вторая, идеалистическая


Шерлок Холмс: Хорошо, допустим, Земля вращается вокруг Солнца. Но мне в моём деле это не пригодится!

Доктор Ватсон: Как ужасно было бы жить в мире, где не с кем было бы поговорить о поэзии… о живописи… о политике… Где каждый знает только то, что ему нужно… для дела.


А помимо практической пользы, давайте вспомним, как изначально оказались в IT. При всех «профессия будущего» и «высокая зарплата», думаю, у очень многих людей будет похожая исходная точка: «попросту обнаружил(а), что компьютеры мне очень интересны».

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

В IT очень многое вертится вокруг вопроса «как повысить свою продуктивность». И не то чтобы это плохой вопрос (очень хороший), но вокруг него возникает культ, при котором тратить время без повышения своей продуктивности ощущается чем-то неправильным. И, по-моему, вот это уже перебор. Нет ничего неправильного в том, чтобы сказать прямо: «да, я хочу потратить своё время, чтобы послушать про не касающуюся меня напрямую IT-область, потому что мне это просто интересно».

Тут надо только помнить о том, чьё именно время ты тратишь — своё, или ещё и работодателя. Собственно, основное возражение этому «интересу к IT», которое я встречал, звучит так: «компания платит сотрудникам за то, чтобы они решали её задачи, а люди тратят рабочее время на какие-то интересные лично им штуки, не приносящие реальную пользу компании».


взято из твиттера Козули

В этом есть своя правда, но произносят эти слова так, словно из них следует «надо забыть об интересном». А, по-моему, на самом деле из них следует «надо уметь разграничивать». И в тех случаях, когда интерес расходится с пользой для компании, реализовывать его в свободное время.

Развивая городскую метафору, узнавать что-то непрактичное — это примерно как в выходной день пойти гулять не потому что «пригодится», а потому что живёшь в большом городе, где вокруг много интересного. Потому что проводить всю жизнь по маршруту «дом-работа-дом» означает страшно ограничивать себя. И когда человек на выходных с интересом узнаёт город, мало кто скажет ему «что-то ты непродуктивен, лучше бы поработал в это время». Но когда он с таким же интересом узнаёт об IT, там это почему-то возникает.

Выводы


Дискуссии о «непрофильных знаниях» часто охватывают какую-то одну из двух описанных сторон. Они то пытаются точно оценить КПД до третьей цифры после запятой («сколько раз за год пригодилась книга по алгоритмам?»), то уходят в абстрактные сферы («когда знаешь алгоритмы, на весь мир начинаешь иначе смотреть»). Но польза и интерес — не взаимоисключающие вещи, а взаимодополняющие. Это две разные шкалы, и обе они важны.

И отсюда первый вывод: когда речь о получении непрофильных знаний, надо учитывать одновременно и пользу, и интерес.

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

А во-вторых, даже если бы это не могло принести никакой практической пользы, насколько мне по-человечески интересно об этом узнать?

И ответ «надо ли мне это» появится по итогам двух ответов вместе.

А кроме того, в интернет-дискуссиях о получении тех или иных знаний вечно пытаются вывести какой-то универсальный для всех ответ. «Нет, Java-разработчикам не надо получать сертификацию, там только учишь ненужное ради бессмысленной бумажки». «Да, всем айтишникам надо прочитать “Мифический человеко-месяц”, это великая книга».

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

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

Разбираться ли в истории IT? Читать ли «Мифический человеко-месяц»? Идти ли «узнавать, чем живут другие»? Открывать ли на Хабре посты о «чужой» области? Сколько бы копий в интернете ни ломалось по вопросам вроде этих, тут не может быть никакого верного ответа «извне». На всё это можно ответить только самому себе.

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


  1. walker
    31.08.2018 16:32
    +1

    мой стол затопило водой из монитора — SOS!


    1. phillennium Автор
      31.08.2018 16:35
      +4

      Спасаю: ваша шутка такая толстая, что вы можете заткнуть течь ей!


      1. Seboreia
        31.08.2018 17:14

        Откровенно говоря, тоже считаю, что посылы статьи довольно банальны.
        Еще не встречал людей с широким кругозором в ИТ, которые получили его (кругозор) просто из-за любознательности или которые его не используют. Я веду к тому, что бОльшая часть «изучения/не изучения» определяется необходимостью. Есть спрос — есть предложение (тут уже простите меня за банальность).
        Можно привести пример сисадминов/«девопсов»: в большинстве вакансий требования такие, что без «знания, чем живут другие» твой выбор места работы сильно сокращается


        1. phillennium Автор
          31.08.2018 17:29

          «бОльшая часть «изучения/не изучения» определяется необходимостью»
          С этим согласен, было бы странно, если бы любознательность перевешивала основную деятельность. Пост про «меньшую часть».

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


        1. Neikist
          31.08.2018 17:44
          +2

          Хм, странно. Если бы я изучал все только по необходимости… Это был бы не я. На работе скучная 1с, а вот дома можно питон поковырять, dart+flutter, линух попробовать под себя настроить, поизучать концепции и парадигмы ЯП, методологии (типа TDD которые на работе не используются), посмотреть на разные языки, немного про компиляторы почитать, про устройство железа (так, на уровне истории и примерного представления). Мне трудно представить чтобы это делалось не из любопытства а по необходимости.


        1. olegchir
          31.08.2018 18:32

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

          Другое дело, какого рода это необходимость.

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

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

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

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

          Или можно взять другой аспект. Необходимость в самовыражении. Это реальная необходимость, потому что иначе — зачем жить? Если незачем жить, то почему бы не гуфнуться прямо сейчас?


  1. RVstudent
    31.08.2018 17:07
    +1

    В моём пионерском детстве папа говорил, что нет бесполезных знаний. Постояно в этом убеждаюсь. Например, в горном институте я изучал начертательную геометрию, и другим какбыкодерам рекомендую для развития пространственного воображения ( и 3d интерфейсы колотят в дверь ногами)


  1. Taliesien
    31.08.2018 18:55

    С того дня как я решил стать кодером, я прочитал уйму книг и статей. Если их все распечатать и сложить в стопку. Думаю от пола до потолка эта стопка не влезет. Читал много. Не имея технического образования, пробелов в знаниях было много.
    Прошло два года. Стал программистом. Поток знаний в голову лезет невероятный. Прошло ещё три года. Закончил второе высшее, стал тимлидом. От знаний голова пухнет.
    Что я помню из того что прочитал 5 лет назад? Почти ничего. Жалею что прочитал? Ни разу.
    Пусть из прочитанного остался и пригодился хоть 1%, уже не зря было потрачено время.


    1. i86com
      01.09.2018 14:50

      Что я помню из того что прочитал 5 лет назад? Почти ничего. Жалею что прочитал? Ни разу.

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

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


  1. Maccimo
    02.09.2018 03:16

    Эти несколько килобайтов скучного текста были призваны мотивировать читателя бежать за билетом на трамвай? Мне кажется, получилось не очень.