
Среди разработчиков регулярно всплывает вопрос о непрофильных знаниях: стоит ли тратить время, разбираясь в том, что не используешь ежедневно? Порой в связи с высшим образованием: «действительно ли надо давать теоретические основы в таком объёме, или больше пригодилось бы что-то ближе к продакшну?» Порой в связи с собеседованиями: «зачем там хотят блестящего знания алгоритмов, если вакансия на самом деле этого не требует?»
Про это написано уже добрая сотня постов, но я решил написать сто первый. Почему? Объясняю под катом.
Недавно я увидел этот вопрос с ещё одного ракурса и снова задумался о нём. Обычно мы в 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)
RVstudent
31.08.2018 17:07+1В моём пионерском детстве папа говорил, что нет бесполезных знаний. Постояно в этом убеждаюсь. Например, в горном институте я изучал начертательную геометрию, и другим какбыкодерам рекомендую для развития пространственного воображения ( и 3d интерфейсы колотят в дверь ногами)
Taliesien
31.08.2018 18:55С того дня как я решил стать кодером, я прочитал уйму книг и статей. Если их все распечатать и сложить в стопку. Думаю от пола до потолка эта стопка не влезет. Читал много. Не имея технического образования, пробелов в знаниях было много.
Прошло два года. Стал программистом. Поток знаний в голову лезет невероятный. Прошло ещё три года. Закончил второе высшее, стал тимлидом. От знаний голова пухнет.
Что я помню из того что прочитал 5 лет назад? Почти ничего. Жалею что прочитал? Ни разу.
Пусть из прочитанного остался и пригодился хоть 1%, уже не зря было потрачено время.i86com
01.09.2018 14:50Что я помню из того что прочитал 5 лет назад? Почти ничего. Жалею что прочитал? Ни разу.
Ну, это естественно, человек в принципе редко жалеет о полученном опыте, несмотря на ту цену, которой он был получен. Даже про тюрьму и неудачный опыт экстремального спорта так говорят.
Просто «не все йогурты одинаково полезны» — за всю жизнь даже одного процента всех книг и статей не прочитаешь, поэтому лучше 700 раз отфильтровать и 1 раз прочитать, чем читать всё подряд.
Maccimo
02.09.2018 03:16Эти несколько килобайтов скучного текста были призваны мотивировать читателя бежать за билетом на трамвай? Мне кажется, получилось не очень.
walker
мой стол затопило водой из монитора — SOS!
phillennium Автор
Спасаю: ваша шутка такая толстая, что вы можете заткнуть течь ей!
Seboreia
Откровенно говоря, тоже считаю, что посылы статьи довольно банальны.
Еще не встречал людей с широким кругозором в ИТ, которые получили его (кругозор) просто из-за любознательности или которые его не используют. Я веду к тому, что бОльшая часть «изучения/не изучения» определяется необходимостью. Есть спрос — есть предложение (тут уже простите меня за банальность).
Можно привести пример сисадминов/«девопсов»: в большинстве вакансий требования такие, что без «знания, чем живут другие» твой выбор места работы сильно сокращается
phillennium Автор
«бОльшая часть «изучения/не изучения» определяется необходимостью»
С этим согласен, было бы странно, если бы любознательность перевешивала основную деятельность. Пост про «меньшую часть».
А вот девопс мне всё-таки кажется отдельной историей: там, как вы и отмечаете в словах про вакансии, вроде как непрофильные знания де-факто оказываются профильными, там «чем живут другие» попросту входит в «чем живёшь ты сам».
Neikist
Хм, странно. Если бы я изучал все только по необходимости… Это был бы не я. На работе скучная 1с, а вот дома можно питон поковырять, dart+flutter, линух попробовать под себя настроить, поизучать концепции и парадигмы ЯП, методологии (типа TDD которые на работе не используются), посмотреть на разные языки, немного про компиляторы почитать, про устройство железа (так, на уровне истории и примерного представления). Мне трудно представить чтобы это делалось не из любопытства а по необходимости.
olegchir
Есть идея, что вся жизнь человека обсуловлена необходимостью. Так устроены мозги.
Другое дело, какого рода это необходимость.
Например, я работаю в отделе маркетинга. Но вечерами изучаю виртуальные машины и компиляторы, пишу подкасты, и так далее.
Это необходимо, потому что в будущем я выжу себя крутым евангелистом, и что я за евангелист без коммитов в Java-компилятор? Необходимо прямо сейчас заниматься огромной кучей вещей вроде постоянного мониторинга сообщества.
Имхо, правильный разработчик — это тот, кто видит будущее, и знает, что нужно сделать прямо сейчас, чтобы это будущее наступило.
Вещи вроде «узнавать, чем живет сообщество» для меня лично — это необходимость, то самое средство сделать, чтобы наступило именно то будущее, которе я вижу.
Или можно взять другой аспект. Необходимость в самовыражении. Это реальная необходимость, потому что иначе — зачем жить? Если незачем жить, то почему бы не гуфнуться прямо сейчас?