Вы, наверное, слышали об усталости от JavaScript или Frontend. Но реальность такова, что речь идет не о Javascript или Frontend, а о всей индустрии. Мы не можем отрицать, что в наши дни все меняется так быстро, что практически невозможно успеть за этим каким-либо разумным образом. И мы, разработчики, тоже виноваты. Когда индустрия возлагает на нас невыполнимые ожидания, мы просто принимаем это. Сколько раз вы думали, что недостаточно хороши, потому что не знаете 10 разных языков программирования одинаково хорошо? Но вопрос здесь в том, почему вы должны.

Скажем, модная компания ищет full-stack разработчика, скажем, им нужны знания Java и React. Оба уже настолько широки, что действительно трудно идти в ногу с обоими на одном уровне. Если вы хотите быть разработчиком полного стека, я должен вас разочаровать: вы можете быть действительно хороши только в одном деле за раз. Вы либо отличный Front-end разработчик с приличными знаниями Back-end, либо отличный Back-end разработчик с приличными знаниями Front-end. Если вы старший архитектор программного обеспечения с более чем 20-летним опытом и думаете: «Вот я», я бы попросил вас написать реальный фрагмент кода, решающий реальную проблему. А затем разверните этот код. А затем заставить его работать на каждой платформе. А потом масштабировать.

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

Если вы освоили React, продолжайте. Нет необходимости переключаться на Vue или Angular или что-то еще, если это не окупается лучше. Во-первых, для опытного инженера-программиста изучение нового инструмента — это всего лишь вопрос дней. Знаний и опыта, которые у вас уже есть, достаточно, чтобы сразу приступить к созданию полнофункциональных программ. Во-вторых, все эти инструменты делают почти одно и то же и очень похожим образом. Ну, более-менее. Изучите основы, и у вас все получится.

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

Не будьте мастером на все руки. Будь то парень или девушка, которые действительно любят эту конкретную технологию. Будьте лучшими в своей области. Будьте нишевым разработчиком. В долгосрочной перспективе это окупается лучше. Вы хорошо разбираетесь в плагинах WP или Golang? Не имеет значения, пока вы являетесь экспертом в этом, вам хорошо идти. С учетом сказанного, это не означает, что вы должны сужать свои интересы только до одной вещи, очень поможет обширное знание нашей постоянно меняющейся отрасли, чтобы иметь общее представление о том, как все работает.

И, ради бога, никогда даже не думайте, что вы не можете добиться больших успехов в отрасли без знания X, Y и Z. Когда придет время, вы все равно научитесь этому и так же легко забудете мельчайшие детали инструменты, которые вы не используете изо дня в день. Это не делает вас плохим инженером, просто так устроен человеческий мозг. Вы не можете знать все на свете одинаково хорошо одновременно. И вам не нужно.