Знайте, что их разделяет и как перейти на следующий уровень

Они говорят, что возраст - это просто число, и, опираясь на это, я говорю, что годы опыта - это просто число.

Почему?

Потому что качество вашей работы превзойдет ваш многолетний опыт.

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

1. Зацикленность на реализации или на решении

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

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

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

Совет для вас

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

2. Делать предположения или добиваться ясности.

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

«Самая большая проблема в общении - это иллюзия, что это произошло». - Джордж Бернард Шоу

Пожилые люди в этом вопросе более спокойны и уверены в себе. У них есть одно практическое правило: всякий раз, когда сомневаетесь, задавайте вопросы. Это означает, что нужно знать, что это на самом деле означает. Для них обретение ясности - большое дело. Они хорошо общаются с другими членами команды и другими командами, если это необходимо, и приступают к работе только после того, как точно поймут, что нужно сделать.

Совет для вас

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

3. Придерживаться технологического стека или придерживаться фундаментальных принципов.

Младшие разработчики неопытны. Некоторые начинают свою первую постоянную работу. Мышление младшего разработчика часто заключается в том, чтобы учиться как можно быстрее. Они часто начинают работать с кодовой базой и начинают изучать используемые инструменты, библиотеки и фреймворки. Они могут научиться создавать сервис с использованием Spring MVC, но не смогут создать сервис без инфраструктуры Spring.

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

Совет для вас

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

4. Разрозненное программирование или сотрудничество

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

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

Совет для вас

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

5. Быстрое выполнение задач или получение знаний.

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

Но, барабанная дробь, пожалуйста!

Этого не произошло.

Мне посчастливилось осознать это раньше, и я смогла переключиться на поезд «Приобретение знаний». И, черт возьми, этот поезд потрясающий. Мне нравится моя работа. Я могу принимать более обоснованные решения при выборе различных инструментов и фреймворков. Я приобрел концептуальные знания, связанные с кодированием, объектно-ориентированными парадигмами, функциональным программированием, базами данных (SQL и NoSQL), микросервисами или масштабируемостью. Я могу выучить больше языков программирования, не тратя слишком много времени на учебные пособия. Не чтобы выставлять напоказ свои знания, но я знаю Java, Kotlin, Python, немного Golang и немного Scala.

И я считаю, что в этом разница между младшим и старшим разработчиком.

Совет для вас

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

6. Сосредоточение внимания на скорости по сравнению с упором на качество.

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

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

Совет для вас

Позвольте качеству определять ваши решения. Вначале будет сложно, потому что потребуется больше времени и усилий. Но с каждым днем ​​она будет становиться лучше и станет для вас новой нормой.

«Я не очень хороший программист; Я просто хороший программист с прекрасными привычками », - Кент Бек.

Заключение

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