Site icon AppTractor

Как джуниору стать сеньор-разработчиком

Разработчиков программного обеспечения можно классифицировать по уровню опыта. Нечто вроде:

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

Это подводит нас к следующему вопросу.

Когда вы уже перестаете быть джуниором, когда вы становитесь сеньором?

Могут ли годы опыта автоматически сделать вас главным разработчиком? Скорее всего нет.

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

Я ошибался. Да, программирование важно. В конце дня программист должен сдать рабочий код. Но написание кода не единственное, что имеет значение.

Я научился этому непросто, еще когда работал на своего первого клиента. Я поговорил с клиентом 15 минут, собрал суть требований и предположил, что точно знаю, чего он хочет. Я начал яростно работать над кодом, как сумасшедший, получая удовольствие от написания чистого кода. Я сделал приложение за 3 дня, а затем клиент отклонил его. Это было не то, что он ожидал.

Излишне говорить, что мне было больно. Мое эго было ущемлено и я обвинял клиента в том, что он не предоставил достаточно информации. Это говорила моя незрелость. Клиент никогда не виноват. Если бы я посвятил больше времени анализу требований заказчика, ситуация могла бы быть совсем другой. Но я понял это на собственном опыте.

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

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

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

И вот несколько способов перейти от джуниора к сеньору.

Преодолеть эффект Даннинга-Крюгера

Эффект Даннинга-Крюгера — это тип когнитивного искажения, при котором люди считают, что они умнее и способнее, чем они есть на самом деле. По сути, люди с низким уровнем квалификации не обладают навыками, необходимыми для распознавания собственной некомпетентности, и это заставляет их переоценивать свои собственные способности.

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

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

Как справедливо утверждает Дэвид Даннинг.

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

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

Есть следующие способы преодоления такого разрыва:

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

Знайте, что не нужно делать

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

Проще говоря, мы часто решаем сделать что-то, основываясь на том, насколько хорошо оно удовлетворяет наше эго или детское увлечение острыми ощущениями, а не на реальной необходимости сделать это. Мэнсон говорит нам, что лучшие решения принимаются, когда мы отдаляем себя от решения, потому что, скорее всего, речь идет не о “нас”. Просто спросите себя: «Это хорошая вещь?» Да? Тогда идите и делайте это.

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

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

Ключ не в том, чтобы избегать риска, а просто в выборе правильных сражений.

Быть безумно любопытным

Задумывались ли вы, что означает слово «приложение»?

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

Тем не менее, если вы что-то делаете, вы обязаны совершать ошибки. Размышление о своей работе и ее постоянное совершенствование ведет к инновациям, а в основе инноваций лежит любопытство, чтобы узнать, как все работает. Помните, что это важная часть во всем цикле самосовершенствования.

Ошибки -> Инсайты -> Любопытство -> Инновации -> Ошибки… Повторение…

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

И вот несколько способов, которыми вы можете пробудить ваше любопытство и создать свой бренд.

Все начинается с любопытства. Если вам не интересно, проще уйти. Как сказал Альберт Эйнштейн:

У меня нет особого таланта. Мне просто очень любопытно.

Источник

Exit mobile version