Старикам тут не место?

2017 · Доклад · CodeFest, WSD

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

Я тогда всё-таки открыл ноутбук. Сложно пройти мимо мысли, что лучший способ сохранить работу в вебе состоит в том, чтобы никого больше в веб не пускать.

Действие первое

Инструмент не заменяет понимания

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

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

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

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

На базовом курсе вёрстки мы объясняем способы построения сеток, которые разработчик встречает в работе. Разбираем особенности браузеров. А в ответ слышим: «Дайте гриды». При этом вопросы кроссбраузерности и ошибок реализации остаются за скобками. Человек хочет гриды, но ещё не понимает, с какими ограничениями столкнётся.

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

Олег приводил пример со своих курсов в Яндексе. Ученик прислал решение с новыми возможностями JavaScript. Олегу пришлось разбираться с незнакомым синтаксисом, чтобы понять, что делает код. Потом он попросил переписать решение на ES5, который они изучали на курсе. Через два дня получил новую версию и снова не смог её прочитать. Синтаксис поменялся, способ думать о программе остался прежним.

Привычный стек тоже может стать ловушкой

У опытного разработчика бывает противоположная реакция: хватит уже новинок, дайте спокойно работать на том, что я знаю. Я умею делать хорошие проекты. Зачем мне опять во всём разбираться?

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

Представим винодельню, где десятилетиями делают вино одним способом. Возможно, прекрасное вино. Меня смущает другое: её владельцы ничего не берут из того, что происходит вокруг, и сами не пытаются влиять на отрасль. В разработке такое замыкание мне тоже трудно принять.

Олег сразу вспомнил Microsoft и Internet Explorer. Мы оба застали время, когда появления возможности в браузере ждали годами. Когда она наконец появлялась, это был праздник. Теперь новинки выходят так часто, что в «Веб-стандартах» мы обсуждаем их каждую неделю. Иногда даже не успеваем толком удивиться.

В Академии мы тоже постоянно следим за изменениями: курсы должны оставаться актуальными.

Действие второе

Опыт начинается с неверной оценки

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

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

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

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

Мяч летит быстрее игрока

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

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

В фильме «Гол!» есть сцена, которую я часто вспоминаю. Молодой футболист любит взять мяч и провести его через всё поле самостоятельно. Тренер просит его бежать вперёд, а сам отправляет мяч дальше одним ударом. Мяч оказывается быстрее игрока. Какой бы хорошей ни была техника, она не отменяет пользу передачи.

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

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

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

Действие третье

На новое остаётся меньше времени

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

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

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

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

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

Руководство подходит не всем

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

При этом переход в руководство не может быть обязательным продолжением карьеры программиста. После выступления нам возразили: человеку может быть пятьдесят лет, а он всё ещё хочет писать код. Он не хочет ни открывать компанию, ни становиться менеджером. Почему из накопленного опыта должно следовать, что ему пора сменить занятие?

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

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

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

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

Передавать опыт можно за соседним столом

Вопрос «когда мне уже пора перестать программировать и начать делиться знаниями?» предполагает слишком резкий переход. Можно делать и то и другое годами. Для этого не обязательно выходить на сцену или объявлять себя наставником.

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

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

Нашей отрасли пока не довелось пережить полную смену поколений. Люди, которые работали на заре Рунета, всё ещё работают рядом с нами. Но новые специалисты уже приходят, и они будут строить что-то своё. Мне хочется, чтобы наш опыт им пригодился, чтобы им не пришлось снова проходить все те же ошибки.

Открыть оригинал