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

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

1) Быть старшим разработчиком не означает, что вы проработали более долгую карьеру программиста, чем младший разработчик, и не означает, что старший разработчик должен быть старше младшего разработчика. Все сводится к умению, 100%. Как получить этот навык? Что ж, продолжительность карьеры обычно играет большую роль в этом, поэтому многие старшие разработчики занимаются кодированием дольше, чем младшие разработчики - но это также сводится к энтузиазму и энтузиазму. Разработчик, который 4 года проучился на курсах информатики в колледже, будет обладать навыками, но есть большая вероятность, что тот, кто самостоятельно обучался программированию в течение 2–3 лет, может быть значительно более талантливым - просто потому, что у него было больше энтузиазма и самоотверженность во время обучения в течение этого времени.

2) Быть старшим разработчиком не означает быть экспертом во всем. Никто не может быть экспертом во всем; тем не менее, это правда, что старший разработчик должен в разумных пределах владеть хотя бы одним языком. Это может быть JavaScript, C #, Ruby, Java, R - это не имеет значения, потому что в большинстве этих языков используются похожие концепции, и понимание этих концепций является важным. Но нет, вам определенно не нужно быть мастером на все руки, чтобы вас считали руководителем.

Давайте копнем глубже: что на самом деле значит быть старшим или младшим разработчиком?

Старшие разработчики

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

«Хм, мне было поручено создать веб-приложение на Python с использованием Django, и я не знаю Django; Я почти не знаю Python! Но я знаю C #, который является объектно-ориентированным языком, таким как Python, и я знаю ASP.NET MVC, который следует тем же шаблонам, что и Django, поэтому у меня есть прочная основа для начала. Я прочитаю документацию о том, как начать работу с Django, посмотрю несколько руководств и продолжу ".

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

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

Младшие разработчики

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

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

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

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

Резюме

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

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

Запишитесь на бесплатную консультацию с Clevyr сегодня, чтобы обсудить ваши потребности в программном обеспечении! Https://clevyr.com/contact-us/