В чем разница между разработчиками Entry Level / Jr / Sr? [закрыто]

198

Кроме названия и оплаты, какая разница?

  • Какие у них разные обязанности?

  • Насколько они осведомлены / опытны?

  • Какова основная мера, чтобы определить, где разработчик вписывается в эту базовую структуру?

JD Исаакс
источник

Ответы:

341

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

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

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

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

HLGEM
источник
2
есть ли название (на английском языке) для «Промежуточного уровня», переводчик Google использует «Полный разработчик». Но это не ценный источник =)
Мишель Айрес
23
Отличное, похожее на историю объяснение. Мне понравилось читать это.
Саид Нимати
1
Спасибо за это объяснение. Я самоучка в iOS-девелопере (без образования по компьютерным дисциплинам) и выпустила свое первое приложение, которое имеет некоторые нетривиальные функции (например, JSON CRUD, некоторые социальные компоненты, хороший дизайн). Я не думаю, что я отличный программист, но я написал приложение задом наперед и понял, что нужно для доставки. Где бы вы разместили кого-то вроде меня, гипотетически?
SamYoungNY
1
@NYCTechEngineer, на ум приходит переполнение стека. Также местные группы пользователей, ведение блогов, написание статей и книг.
HLGEM
1
@BrianHaak Thx - интересно, что вы говорите. С прошлого года я работал над гораздо большим проектом, чем раньше. У меня появилось такое чувство, что я взглянул на код, который я написал всего несколько месяцев назад, и сказал: «Что за хорошая идея?» :) - Запуск этого проекта из небольшого ядра в проект, который можно легко расширять, а также приспособить для не-разработчиков, которые хотят добавлять контент, заставил меня задуматься о структуре более высокого уровня. Сопряжение с более опытным программистом показало мне, что я скучаю по многим оппам. использовать абстракции. У меня также есть проблемы с пространством имен.
SamYoungNY
43

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

Младший - менее четкие инструкции, меньше проверки, небольшая ответственность за разработку и анализ; помогает людям начального уровня найти компилятор и использовать репозиторий

Старший - ответственный за разработку и анализ, как ожидается, самостоятельно исправит упущения, мало / без проверки, мало / без инструкций; помогает людям младшего уровня учиться / совершенствовать навыки анализа и проектирования

Стивен А. Лоу
источник
20
Хорошо, за исключением того, что я не знаю, что я полностью согласен с «нет проверки / инструкции» для старшего уровня. Если вы не работаете в команде или с ней, никто не должен быть полностью островом.
Вонко вменяемый
@WonkotheSane у нас есть тот, кто объединяет коды с ошибками без каких-либо codeReview или запроса на извлечение. Не особо обсуждается архитектура приложения, за исключением повсеместного использования шаблона наблюдения. Принимает все решения сам, чтобы он не приспособился ни к чему новому . Все потому , что он является сам является островом. Он не в этом. Он является остров :(
Honey
16

На самом деле, я думаю, что все сводится к тому, как долго вы были на работе. Если у вас есть 10-летний опыт работы, вы старший разработчик, если вы выпускник, то вы, вероятно, начальный уровень. Я видел много «старших» разработчиков, которые с трудом могли кодировать и не знали, что они делают, и много юных разработчиков, которые были фантастическими.

Craig
источник
7
Это перекликается с моим опытом. «Старший» означает время в компании и, как правило, ничего больше; навык не учитывает ни одной йоты. Я работал со множеством «старших» разработчиков (и менеджеров в этом отношении), которые ничего не знали о программном обеспечении, кроме разработки методом проб и ошибок, но работали в компании более 5 лет или были самыми первыми программистами, нанятыми, когда место было начато, и поэтому получил повышение в связи с владением недвижимостью.
Уэйн Молина
8

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

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

На младшем (или просто исключив «начальный уровень» / «младший» из названия / описания) вы завершили свое ученичество и охватили основные области развития вашей компании, углубившись в каждую основную область, чтобы вы были знаком с каждым из них. Теперь вы помогаете обеспечить руководство и вклад в эквивалент ученика, но ваша собственная работа все еще проверяется мастером / старшим, хотя, возможно, не так, как когда вы были младшим.

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

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

Тодд Уильямсон
источник
6

Это будет сводиться к ожиданиям компании программиста.

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

Вальтер
источник
4

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

Крис
источник
Я понимаю, но в какой момент вы «за пределами начального уровня» или «за пределами младшего»? Если вы всегда учитесь, то каждый день вы выходите за рамки того, что были днем ​​ранее.
Джей Ди Айзекс
Начальный уровень прост, но я ищу больше примеров опыта / знаний, которые бы предлагали младший или старший.
Джей Ди Айзекс
Как я уже сказал, это зависит от компании, контекста технологии / языков, о которых идет речь, и более конкретно, это вопрос мнения, если вы не говорите об официальных должностях. Я не думаю, что когда-либо буду считать себя экспертом в любом языке, если сам не напишу чертову вещь.
Крис
Кроме того, если вы находитесь в компании, посмотрите на младших разработчиков и сравните их с ними. Это хороший показатель в контексте конкретной компании.
Крис
4

Как многие уже говорили, это варьируется от компании к компании и от работы к работе.

Например, однажды я работал в компании, которая считала любого, кто работал там более 5 лет, «старшим инженером-программистом». С другой стороны, в другом месте, где я работал, были очень строгие определения (и связанные с ними шкалы заработной платы).

В некоторых местах «начальный уровень» и «младший» могут означать одно и то же.

Он может варьироваться в зависимости от многолетнего опыта, общих знаний, конкретных знаний (т. Е. Знания особенностей определенного языка), опыта управления и / или лидерства, всех их комбинаций и, конечно, гораздо большего.

Вонко вменяемый
источник
3

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

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

Очевидно, это только мое мнение, а не жесткое правило. YMMV.

MattC
источник
2

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

Вступление = Ваша новая, вероятно, ваша первая работа.

Юниор = Вы хорошо, но не должны быть лучшими, у вас также обычно меньше 5 лет и более 2 лет опыта.

Старший = Вы должны быть лучшими и иметь опыт работы более 5 лет.

Лорд-фу
источник
Вы пропустили промежуточный.
Неолиск