Американский разработчик Бен Нортроп поделился в своём блоге рассужденими о профессиональных проблемах, с которыми сталкиваются программисты «в возрасте» и предложил видение того, как от этих проблем избавиться. dev.by публикует сокращённый перевод текста.
Я — разработчик в паре месяцев от 40-летнего юбилея. Я нахожусь на конференции и слушаю доклад про React Native, в котором докладчик убеждает всех в том, что это «всерьёз и надолго» для мобильной разработки. Мне всё это кажется похожим на JSP 15-летней давности, с той же логикой кода, но я «старый», поэтому я решаю, что просто «не понимаю». У человека, который только недавно разобрался с Angular, всё это вызывает беспокойство. «Опять двадцать пять», — думаю я.
Всё это навело меня на размышления о профессиональном пути разработчика. Чтобы оставаться актуальным — и высокооплачиваемым — программистом, нужно постоянно держать нос по ветру и уметь в нужное время показать свою осведомлённость на практике. Такова работа, но это выматывает.
Подобная погоня за знаниями, пожалуй, характерна только для программирования. В большинстве других профессий профессиональный опыт, накопленный за 20 лет карьеры, помогает достичь стабильного уровня заработка и уважения в профессиональной среде. 20-летний опыт в программировании скорее не является ощутимым преимуществом.
Я постарался объяснить этот феномен с помощью двух терминов:
1. Увядание знания
Как правило, получаемые профессиональные знания накапливаются и делают более значимым и полезным предыдущий опыт. Каждый врач из года в год становится более квалифицированным, так как новые знания укрепляют заложенную в предыдущие годы базу.
Но если речь идёт о технологиях — то ситуация меняется.
«Половина того, что знает программист, станет бесполезным через 10 лет»
Я считаю, что примерно так всё и обстоит, и уверен, что в 2026 году только половина моих нынешних знаний (да здравствует SQL!) будет применимой на практике, от оставшейся части (может быть, React Native?) не будет никакого проку.
Да, я буду получать новые знания, но хватит ли этого? И здесь мы подходим ко второму важному термину.
2. Скорость накопления знаний
В каждой сфере существует определённый набор знаний для того, чтобы человека могли воспринимать как квалифицированного. Как правило, начало карьеры в большинстве сфер посвящено именно получению этого набора знаний. Впрочем, программисты остаются в «студенческом» периоде навсегда, и это делает этапы карьеры разработчика атипичными.
В начале карьеры для каждого разработчика характерен этап азартного обучения, на котором накопление знаний происходит сравнительно просто. Этому помогают и меньшие ожидания со стороны руководства, равно как и меньшее количество обязательств.
Через некоторое время пробел в знаниях между программистом и его более опытными коллегами уже не кажется таким огромным. Появляется уверенность в себе, обозначающая переход на этап восходящей звезды. Затраты, вложенные в обучение, возвращаются, и почти всё, что мы знаем, по-прежнему применимо на практике.
Растут и ожидания. Вас просят помогать начинающим разработчикам, проверять код, проводить интервью, приходить на ещё большее количество митингов и т.д. Во многом есть смысл, но больше всего при этом страдает скорость накопления знаний. Помните, у вас было время читать технические блоги? Забудьте. Наконец, наступает момент, когда увядание знаний становится очевидным. Помните, сколько времени вы (читайте «я») потратили на изучение GWT? Забудьте и о нём. Оба понятия начинают работать против вас.
Наконец, вы попадаете на третий, финальный этап — этап заслуженного ветерана, с его взлётами и падениями. Вы продуктивны и опытны, но в то же время понимаете, что скорее всего знаете меньше актуальных вещей, чем знали на более ранних этапах своего профессионального развития. Огромный объём знаний потерял актуальность, а времени на получение новых уже нет. Именно на этом этапе многие уходят в другие сферы: менеджмент, продажи, тестирование — или фермерство.
Как с этим жить? Лично мне все эти размышления помогли изменить взгляды на жизнь.
Во-первых, я уделяю больше внимания долгосрочным возможностям. Многие из моих коллег соглашались на хорошо оплачиваемую, но «застойную» в плане знаний работу. Через 5 лет оказывается, что они получают намного меньше своей реальной «стоимости», да ещё и перестали ориентироваться в современных технологиях.
Во-вторых, я стараюсь уделять всё больше времени «прочным» знаниям — алгоритмам, архитектуре и безопасности приложений, оптимизации производительности. Думаю, именно это, а не изучение новейшей Javascript-библиотеки, сделает мою карьеру более успешной и долгой.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.