Опытный программист из Торонто Мэтт Бриггс настолько любит свою работу, что говорит: «Я бы написал код, даже если бы он был незаконным».
А когда он опубликовал в своем блоге пост о джуниорах, мидл и старших разработчиках, то собрал более сотни восторженных комментариев.
Мы в Алконост Мы тоже восхитились этим и перевели для вас эту статью.
Мы работаем в странной отрасли.
Потребность в разработчиках здесь гораздо выше, чем в кадрах.
Эта проблема существует уже много лет и со временем становится все острее.
Мы испытываем серьезную нехватку талантов, хотя отрасль довольно молода.
Большинство программных проектов терпят неудачу, и почти все выходят за рамки бюджета.
И лучшая идея, которую могут придумать самые сильные умы, сводится к следующему: «Есть несколько стандартных способов решения подобных проблем, но наши решения часто не работают. Единственное, что вы можете сделать, это попробовать и увидеть результат».
Реальность такова, что под «старшим разработчиком» подразумевается человек, который лепит код более 3 лет. Его ставят на руководящую должность, и обычно все заканчивается плачевно.
На самом деле, попытка оценить людей во временных интервалах — это слишком упрощенный способ для таких тонких вопросов, как знания и профессиональный опыт. Но так обстоят дела.
И если мы продолжим классифицировать специалистов таким образом, то нашей отрасли пора взять тайм-аут. Есть разница между человеком с 10-летним опытом и человеком, который за это же время стал в 10 раз опытнее.
Этапы роста разработчика
Мы, программисты, живем в мире сложных систем и переменных.В этом мире даже простое выполнение четко определенной конкретной задачи может оказаться затруднительным.
Особенно, если у вас нет большого опыта работы с существующими инструментами или базой кода.
Кадр из сериала «Выродки»
Вот такая жизнь младший разработчик .
После окончания учебы ты, кажется, знаешь все.
Но вдруг ты понимаешь, что школа плохо подготовила тебя к тем проблемам, с которыми тебе придется столкнуться.
Реальность хаотична, не столь приятна и далека от теории.
Вам приходится двигаться в среде компромиссов, без возможности делать предположения о чем-либо.
Работа с учетом всего этого станет вашим главным уроком и целью.
Младшим разработчикам требуется регулярное наставничество, помощь и поддержка.
В противном случае они могут топтаться на месте очень и очень долго (недавно я встретил друга, который занимался программированием почти 10 лет, но по сути остался тем же начинающим разработчиком).
Можно сказать, что этот период целиком посвящен изучению тактических подходов к решению повседневных задач.
Младший разработчик сосредоточен на коде, а не на процессе разработки.
И он не особо замечает разницы.
Если программист говорит, что «я бы с радостью кодил больше, если бы не эти пользователи», велика вероятность, что вы общаетесь с новичком.
Хорошему младшему разработчику можно дать знакомую задачу и ожидать, что она будет выполнена быстро.
Кадр из сериала «Выродки» Разработчик среднего уровня уже начинает видеть в ошибках (обычно в своих) определенные закономерности.
Он понимает, что написание кода, который работает и не ломается при первом изменении, требует гораздо большего, чем просто завершение работы.
Он также обычно переживает тот уникальный опыт, когда вы смотрите на свою прошлую гордость (код годичной давности) и понимаете, что это полная чушь.
Такой человек изучает вопрос правильной разработки программного обеспечения и находит для себя ответы в экспериментах, литературе и дискуссиях с коллегами.
На этом уровне все направлено на изучение теории разработки продуктов, а не на написание кода (этому учат в школе).
Системы, написанные «средними» разработчиками самостоятельно, выходят из строя по совсем другим причинам, чем те, которые созданы молодыми специалистами.
Джуниор просто напишет гору условно работающих алгоритмов.
Хороший «средний» частично воплотит в себе содержание книг «Шаблоны проектирования» и «Дизайн, управляемый предметной областью».
Конечно, это отличные книги для изучения процесса разработки больших систем.
Но простое следование их постулатам приводит к построению излишне сложных систем, гибких там, где это не важно, и неуклюжих в важных вещах.
«Среднему» программисту можно поручить разработку системы, которая проработает гораздо дольше, чем творение молодого коллеги, но все равно приведет к непредсказуемым последствиям.
Это печально, но факт: подавляющее большинство не только старших разработчиков, но и тимлидов — обычные «средние» программисты.
Многие из них этого не понимают и имеют благие намерения, но они просто никогда не работали с кем-то более квалифицированным.
Мидлы хорошо осознают свою роль в организации и свою ценность для нее.
Хорошие разработчики среднего звена также понимают, что программирование для решения проблемы означает работу до ее логического завершения, а не только до конца задачи.
И все же они все еще слишком увлечены строительством башен из слоновой кости и поиском «правильного пути» в разработке программного обеспечения.
Хороший «средний» разработчик требует меньше контроля.Им можно доверять: они найдут проблемные места в проекте и сыграют важную роль в принятии ключевых решений.
Они также являются «рабочими лошадками» команды, но требуют наставничества более высокого уровня.
Кадр из сериала «Выродки» Ведущий разработчик Я хорошо знаю свои собственные неудачи.
Эти люди создали как недоделанный, так и излишне сложный код — и в обоих случаях увидели катастрофические результаты.
К работе они подходят взвешенно, трезво и спокойно оценивая собственные успехи и неудачи при возникновении проблем.
Старший разработчик разлюбил сложность, которая захватывает умы «средних» коллег, и теперь одержим простотой.
Старший разработчик не классифицирует коллег по уровню знаний; он понимает, что у каждого есть сильные и слабые стороны.
Он знает о своих преимуществах и недостатках больше, чем кто-либо другой, и старается использовать преимущества, когда это возможно.
Старший учитывает контекст при применении теории.
Он понимает, что «Правильного пути» не существует. Единственный способ создать хороший продукт — адаптировать теорию к требованиям клиента, базы кода, команды, инструментов и организации.
Такой человек понимает, что все вокруг требует компромиссов, и будет искать их в паттернах проектирования, библиотеках, фреймворках и процессах.
Старшие разработчики думают не только о себе.
Они прекрасно знают, как работает их компания и организация заказчика, каковы их ценности и что важно, а что не важно для успеха.
Если мяч брошен, старший программист сделает все возможное, чтобы его поймать.
Вы никогда не услышите от него слов «это не мое дело» в таких ситуациях.
Старший разработчик понимает, что работа заключается в решении проблем, а не в написании кода.
Именно поэтому он всегда будет смотреть на работу с точки зрения соотношения ее ценности для организации и затраченных усилий.
В то время как «средний» разработчик увязнет в бесчисленных днях монотонной деятельности, «старший» разработчик сначала поинтересуется первопричинами ситуации.
Он оценит затраты на нейтрализацию причины и либо исправит ее немедленно, либо направит процесс в нужное русло.
Он также понимает, что не может сделать все самостоятельно.
Его основная роль — помогать команде совершенствоваться, часто так же, как отдельные люди совершенствуются сами.
Ведь сила не во власти, а в делегировании.
Не в управлении, а в поддержке.
Если у вас нет ни одного старшего разработчика на руководящей должности, то проект обречен.Команда отличных, обычных людей может привести вас довольно далеко, но дни продукта все еще сочтены.
И в итоге вам придется либо закрывать цех, либо рискованные и дорогостоящие переделки.
Единственный, кто может выбрать правильную технологию и платформу, — это старший разработчик.
Поэтому его отсутствие в проекте с первых дней серьезно вам навредит.
Это просто гигантское упрощение
Реальность такова, что никто точно не соответствует описанному шаблону.Я устал видеть, как программистов оценивают по «многолетнему опыту».
Конечно, они могут вам что-то сказать, но вне остального контекста это практически бесполезная информация.
Более того, наша индустрия склонна ценить дерзких и умных молодых парней, окончивших университет. Эти ребята действительно ценны и нужны, но не более, чем их коллеги с 15-20-летним «полевым» опытом.
Пришло время перестать нанимать людей стереотипно и начать больше думать о команде и составе талантов.
Если все в команде будут думать одинаково, вы окажете плохую услугу как проекту, так и организации.
О переводчике Статью перевел Alconost. Алконост помолвлен локализация приложений, игр и сайтов на 60 языках.
Нативные переводчики, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.
Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающих, имиджевых, рекламных, обучающих, тизеров, объяснителей, трейлеров для Google Play и App Store. Более подробная информация: https://alconost.com Теги: #alconost #старший #средний #средний #младший #программисты #юниоры #средние #старшие #разработчики #кодирование #программирование #Идеальный код #ИТ-стандарты
-
Казанская Лингвистическая Школа
19 Oct, 24 -
Вебкам-Чат
19 Oct, 24 -
Мой Любимый Хостинг — Dreamhost.com.
19 Oct, 24