Перевод статьи Стивена Юнга на dev.to.
Веб постоянно развивается и улучшается, в этой сфере уже есть очень много для изучения, а с течением времени появляется еще больше.
Новичков это сильно пугает и подавляет.
Я начинал в качестве подрабатывающего студента в веб-агентстве два года назад. У меня не было опыта и никакого понятия о том, как устроена настоящая веб-разработка. В мой первый день я с воодушевлением открывал для себя новое, но боялся задач, стоящих передо мной.
Хуже всего (или лучше, в зависимости от того, относитесь ли вы к тем, у кого стакан наполовину полон или к тем, у кого наполовину пуст) то, что чем больше вы узнаете о различных аспектах веб-разработки, тем больше вы понимаете, как мало вы, собственно, знаете.
Попытка изучать все
Одна из самых распространенных ловушек, в которую попадают новые разработчики, это попытка понимать и делать многое. Причина этого в том, что (давайте смотреть правде в глаза) вам кажется, будто окружающие выше вас на голову, а уровень, которого вам нужно достичь, чтобы стать «хорошим», отодвигается все дальше и дальше.
Разработчику очень легко потерять фокус и пасть жертвой «синдрома блестящего объекта». У соседа всегда трава зеленее, и в этом плане программирование не является исключением, поскольку всегда есть новые способы создавать что-то, один лучше другого.
В мой первый год я начал учиться в свободное время чтобы повысить свой уровень Symfony-разработчика, но потерял концентрацию, пытаясь играться со всем, до чего руки доходили. От C-компилятора до Node.js. Я изучал всё, кроме Symfony, потому что это всё было более новым и захватывающим.
И я мог идти дальше и дальше, и дальше, и дальше по мере появления новых трендов на Github. Я проводил бесчисленные часы за просмотром, чтением, изучением кода; я буквально дышал кодом.
Оглядываясь назад, я понимаю, что слишком распылял свое внимание. Конечно, обучение никогда не является потерей времени. Всегда полезно испытывать новые технологии и быть в курсе новых тенденций, имеющихся в настоящий момент в вашей экосистеме.
Однако, вы действительно начинаете расширять свои горизонты, когда сосредоточиваетесь на чем-то одном: одном фреймворке, одном языке, одном проекте и т. д.
От посредственности во всем к специализации
«Успех требует единственности направления. Для получения большего эффекта нужно делать меньше вещей, а не заниматься большим количеством дел с получением побочных эффектов», – «The ONE Thing», Гэри Келлер. Я рекомендую эту книгу не в качестве учебника по программирования, а скорее как нечто интересное и открывающее глаза.
В мой последний год студенческой работы я начал менять свой подход к «усовершенствованию» с «Чем больше технологий и языков я знаю, тем я лучше» на «Чем лучше я понимаю технологии и языки, которые уже знаю, тем я лучше».
Поэтому я сфокусировался на том малом, что уже знал: бэкенд-разработке на РНР. А конкретно, на бэкенд-разработке с использованием Laravel.
Поняв основы и получив общее представление об этом фреймворке, я сосредоточился на построении вещей с использованием имевшихся у меня знаний вместо изучения новинок GitHub.
Я начал создавать что-то полезное (по крайней мере, полезное для меня), и после этого начал понимать, что по-прежнему изучаю новое, просто не новые инструменты, а новые способы получить максимум из уже известных мне инструментов.
Я улучшил свои навыки повторного использования кода, начал пользоваться шаблонами проектирования и придерживаться принципов DRY и SOLID, изучил технику разработки через тестирование.
В общем, я стал лучше как PHP бэкенд-разработчик, а также как разработчик в целом. Потому что изучив свои инструменты и доведя навыки до автоматизма, вы начинаете изучать программирование за пределами этого фреймворка или языка и реализовывать общие концепции, которые будут универсальны для любой известной вам технологии.
Когда я приблизился к тому чтобы стать вполне приличным Laravel разработчиком, я также начал собственное дело в качестве разработчика-фрилансера. А чтобы продолжать фокусироваться н атом, что я знаю, и продолжать совершенствоваться, я брался за любые бэкенд-проекты, а связанные с фронтендом или другими неподходящими темами отдавал другому фрилансеру.
Таким образом мне удалось на самом деле сконцентрировать внимание на чем-то одном, наращивая при этом навыки фриланса. Я мог продолжать заниматься тем, что знал, и обучаться чему-то полезному, не связанному напрямую с программированием, например, управлению проектами или удаленной работе в команде.
Постепенный подход к обучению
Когда вы доходите до точки, где чувствуете себя уверенно в использовании вашего инструментария, вы можете начинать постепенно добавлять к своему портфолио разработчика новые навыки, но не случайные. Лучший вариант – навыки, дополняющие ваши, поскольку цель остается прежней («стать лучше в том, что уже знаете»), а достичь ее можно с помощью сопряженных навыков.
Финальная цель в том чтобы всегда учиться стремясь к улучшению имеющихся знаний чтобы совершенствоваться в целом. С таким подходом вы можете с легкостью начать использовать ваш имеющийся набор инструментов, каким бы он ни был.
Что касается меня, это было изучение Vue.js чтобы мой профайл разработчика фрилансера приблизился к full-stack.
Для бэкенд-разработчика было бы полезно добавить в портфолио системное администрирование чтобы понять, как самостоятельно реализовать целое веб-приложение. Для фронтенд-разработчика – настройку и использование PostCSS для улучшения качества кода и рабочего процесса.
Варианты бесконечны, но нужно всегда стремиться направлять свои усилия на достижение какой-то одной цели.
[customscript]techrocks_custom_after_post_html[/customscript]
[customscript]techrocks_custom_script[/customscript]