Когда вы в последний раз чувствовали себя настоящим экспертом в разработке? Лично я — где-то в тот момент, когда впервые написал программу, которая завершилась без ошибок. Программирование — это как бесконечный ремонт дома, в котором ты уже живёшь. Ещё вчера тебе казалось, что новая крыша будет решением всех проблем. А сегодня оказалось, что появились окна с автоподогревом, и без них дом вообще не дом. И, конечно, все соседи уже поставили такие.
Когда я только начинал писать код, казалось, что всё устроено достаточно просто. Выучил язык, разобрался с парой библиотек, написал несколько алгоритмов — и ты уже молодец, программист. Но со временем это ощущение исчезло. Теперь я захожу в Telegram или читаю очередной техноблог, и мне кажется, что все обсуждают что-то, в чём я ещё не разобрался: вышел новый фреймворк вроде Bun.js, обновилась спецификация языка (JavaScript ECMAScript 2024), релизился Webpack 6. А кто-то успел протестировать какой-нибудь новый линтер. И на фоне этих ярких изменений я смотрю на свой рабочий проект и задаюсь вопросом: а смогу ли встроить в свои проекты весь этот сверхсовременный стэк, да и нужен ли он вообще.
Программисты как спортсмены
Одно из самых сложных (и интересных) качеств нашей профессии — её неспособность остановиться. Если в разработке и есть что-то постоянное, так это скорость изменений. Мы живём в индустрии, которая развивается быстрее, чем любая другая — каждый месяц:
Приходят новые инструменты (вроде Vite && TurboPack),
Кто-то находит проблемы в существующих подходах (например, проблемы с масштабируемостью старых монолитов),
А кто-то предлагает принципиально новые архитектурные решения (как популяризация микросервисов или "serverless-first").
Эти новшества делают нас частью невероятного прогресса, но одновременно и участниками гонки. Только вот эта гонка часто оказывается далеко не про технологии — она про нас самих. Ты будто сравниваешь себя сегодняшнего с собой вчерашним и задаешь всё те же вопросы: сколько мне ещё нужно знать? Как быстро я могу освоить новую технологию? Смогу ли я за неделю разобраться в том, что другие изучали месяцами?
И вот это постоянное сравнение — как и в профессиональном спорте — может либо стимулировать, либо разрушать.
Да, мы живём в мире, где на нас всегда давят дедлайны и новые фреймворки. Но признайтесь: ведь круто поспорить с коллегами, нужен ли вашему проекту новый "лёгкий" инструмент, о котором вы потом будете жалеть весь следующий квартал
Фреймворк недели. Или как технологии бегут быстрее нас
Каждый месяц появляются не просто новые технологии, а "ослепительно новые" — настолько, что кажется, будто без них ваш проект обречён. Примеры есть у всех:
Кто-то внедрил Next.js и утверждает, что без серверного рендеринга (#SSR) современные сайты уже неактуальны.
Кто-то перешёл на SvelteKit и рассказывает, что его отдача по производительности переплюнула проект на React.
Или вспомните хайп вокруг Deno, который якобы должен был заменить старый добрый Node.js. А вы его используете?
Новые 'убийцы технологий' появляются быстрее, чем ты успеваешь допить кофе и открыть вкладку с их докой. А к моменту, когда ты делаешь последний глоток, уже появляется другой материал с кричащими заголовками про то, что и на "убийцу" нашелся еще более ультимативный конкурент. Помните, как NoSQL заменил все эти устаревшие и неактуальные подходы реляционных баз, создав прекрасный мир без PostgeSQL/MSSQL/...? А как шарповый Blazor уничтожил JS, TS, да и вообще всю фронтовую разработку?
Объем доков новых фреймворков, вышедших в 2024 не перечитать и за год и никто из нас не знает их всех. Никто. Даже самые популярные технические блогеры, которые дают великолепные доклады на конференциях, не успевают прыгнуть в каждый технологический поезд.
Жизнь программиста — это постоянный выбор: что выучить, а что пропустить. Kubernetes выглядит как сложный монстр, но нужен ли он вам в вашей реальной работе? Может быть, прямо сейчас проще сосредоточиться на углублении знаний в вашем стекe или на освоении TypeScript?
В какой-то момент я понял, что знания накладываются слоями. Если ты обладаешь хорошей базой — тебе не составит труда разбираться в новых инструментах, ведь концепции остаются те же самыми. Забавно, но чем больше опыта у тебя в программировании, тем медленнее начинают устаревать твои знания.
Формула давления: почему нам кажется, что мы всегда отстаём
Ключевая проблема, с которой сталкивается большинство разработчиков, — это восприятие времени. На вас давят дедлайны. Это накладывается на восприятие обучения: нам кажется, что новые инструменты стоит освоить немедленно, ведь "это должно было быть сделано ещё вчера". А если вы проводите время на GitHub, Hacker News или Reddit, то вокруг сплошь истории успеха:
Кто-то запустил маленький программный продукт, который заработал миллионы.
Кто-то выложил библиотеку, которая собрала десятки тысяч звёзд.
А кто-то имплементировал алгоритмы, которые вы не знали даже в теории.
Но это иллюзия. Реальная жизнь не такая. Никто не публикует гифки, как он 3 дня пытается понять, почему у него не работает docker-compose
. Никто не выкладывает посты о том, как 2 часа бился головой о стену, пока не запустилась база данных для тестов. Мы видим только результат, а не путь. И мы себя сравниваем с этим "отредактированным образом".
GitHub — это как Instagram для программистов, только вместо красивых фоточек еды здесь проекты с идеальным кодом, из-за которых забываешь, что реальная жизнь чуть менее гламурна. Никто не выкладывает stories "пять часов дебага, а причина оказалась у меня в кэше".
В этой гонке важно понять одну вещь: такой подход разрушает. Если постоянно бежать только ради того, чтобы "догнать", то вы устанете быстрее, чем добьётесь успеха.
Как справиться с этой гонкой
Я не думаю, что кто-то из программистов может до конца выбраться из этого ощущения. Мы всегда будем чем-то увлечены, чем-то обеспокоены в своей работе. Но я научился относиться к этому иначе.
Первое — теперь я не сравниваю себя с другими. Не существует никакой позиции "идеального инженера", к которой нужно стремиться. Даже если ты встретишь крутого разработчика, который создал кучу библиотек, он тоже с чего-то начинал. Его путь — это его путь, а ваш — это ваш.
Второе — цените свой прогресс. Одним из главных принципов для меня стало постоянное "фиксирование маленьких побед". Да, сегодня я не изучил новую библиотеку или не внедрил суперновый инструмент, но разобрался с очередным багом, оптимизировал модуль или закрыл несколько задач. Это уже повод для удовлетворения.
Наконец, работа программиста — это больше про любопытство, чем про обязательства. Мы не должны "выучить все технологии" или "стать лучшими во всём сразу". Мы должны постоянно оставаться любопытными и исследовать. Это лучшее, что мы можем сделать для себя и этой профессии.
Как выбраться из "гонки"
Не торопитесь осваивать всё и сразу. Добавьте технологии в свой список, но не пытайтесь погружаться в каждую. Новые инструменты всегда кажутся незаменимыми, но, как правило, только 10–20% из них действительно становятся стандартами.
Сравнивайте себя только с прошлым опытом. Научились использовать новый инструмент? Решили задачу проще? Это и есть ваш прогресс.
Вдохновляйтесь, но не ориентируйтесь на чужие графики. У каждого своя "гонка". Некоторые к 20 годам пишут нейросети, а у других карьера строится к 30–40 годам, но ведёт к глубокому пониманию фундаментальных знаний.
Учитесь основам. Это замедлит устаревание ваших знаний. Если вы сделаете ставку на принципы разработки (SOLID, алгоритмы и структуры данных, асинхронщина), то любой фреймворк будет гораздо проще освоить. Ведь концепции не меняются.
Вместо заключения
Мне нравится думать, что программирование — это профессия, в которой ты будешь узнавать и расти до самого конца. Это нескончаемая гонка с самим собой. Только она не про то, чтобы стать лучшим на какой-нибудь конференции или блеснуть на собеседованиях. Это про то, чтобы каждый день спрашивать себя: "Что нового я могу понять и создать?"
Но если уж признавать это гонкой, то представьте, что это гонка ради удовольствия, а не чтобы первым прийти к финишу. Оглянитесь вокруг: вы — участник невероятного марафона, в котором нам не столько важно выиграть, сколько научиться наслаждаться бегом.
Да, мы всегда будем немного отставать от реальности, но это не повод останавливаться. Ведь самое лучшее в этой работе — это процесс. Всё, что вы делаете, — это шаг вперёд. Как сказал один мой коллега:
"Если ты до сих пор задаёшь вопросы — значит, ты продолжаешь расти и учиться — а это главный признак хорошего программиста".