Уровень senior что это

Уровень senior что это

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

Если вы уме­е­те писать про­стые про­грам­мы, пони­ма­е­те их прин­цип рабо­ты и може­те разо­брать­ся в чужом коде с ком­мен­та­ри­я­ми — зна­чит, вы може­те быть джу­ни­о­ром.

Градации программистов и фулстек

Есть четы­ре гра­да­ции в про­грам­ми­ро­ва­нии: ста­жёр, джу­ни­ор, мидл и сеньор (Junior, Middle, Senior).

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

Деле­ние услов­ное, всё зави­сит от тре­бо­ва­ний ком­па­нии. То, что одни ком­па­нии тре­бу­ют от джу­ни­о­ров, дру­гие хотят от мид­лов.

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

За опытом

Если хоти­те быст­ро про­ка­чать­ся в язы­ке про­грам­ми­ро­ва­ния, быть джу­ном — иде­аль­ный вари­ант. Есть ком­па­нии, кото­рые не гото­вы пла­тить мно­го нович­кам, но гото­вы вкла­ды­вать­ся в их раз­ви­тие, что­бы вырас­тить себе силь­но­го про­грам­ми­ста. Они пла­тят по 30–40 тысяч руб­лей, но помо­га­ют вам осво­ить язык: ком­мен­ти­ру­ют код, дают кура­то­ров, обу­ча­ют. При этом вы тоже буде­те делать что-то полез­ное для ком­па­нии.

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

За деньгами

Вто­рой вари­ант рабо­ты джу­ни­о­ром — сра­зу начать зара­ба­ты­вать, но тут слож­нее. Немно­гие ком­па­нии гото­вы сра­зу пла­тить нор­маль­ные день­ги нович­кам в надеж­де, что они сами все­му научат­ся. Мож­но рас­счи­ты­вать на зар­пла­ту все­го на 10–15 тысяч боль­ше, чем в пер­вом вари­ан­те, но тре­бо­ва­ния тут дру­гие. От вас будут ждать, что вы сами спо­соб­ны выдать рабо­чий код. Побла­жек на то, что вы толь­ко начи­на­е­те, не будет.

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

Медианные зарплаты джунов

Мы посмот­ре­ли на ста­ти­сти­ку зар­плат в каль­ку­ля­то­ре «Мое­го кру­га». Дан­ные на нача­ло 2019 года:

Для срав­не­ния: меди­ан­ная зар­пла­та фулстек-мидла — 80 тысяч.

Что в итоге

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

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

Если не бро­сать раз­ви­тие и про­грам­ми­ро­ва­ние, мож­но вырас­ти в мид­ла с зар­пла­той и воз­мож­но­стя­ми поболь­ше, но о них — в дру­гой раз.

Уровень разработчика не обязательно определяется многолетним опытом программирования: «джун» вполне может быть старше «сеньора», — всё сводится к профессиональным навыкам. Это не означает, что старший разработчик должен быть специалистом во всём, но можно с уверенностью сказать, что навыки у него гораздо более развиты, чем у разработчиков младшего и среднего уровня.

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

Знания

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

Важно знать, как должно создаваться программное обеспечение. Но просто знать всё это — не значит быть разработчиком более высокого уровня. Знания — это не ключевое отличие, а лишь один из факторов.


Фото — Clem Onojeghuo, площадка Unsplash

Программирование

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

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

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

Как вычислить «джуна»

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

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

Младшие разработчики сосредотачиваются на «компьютерной» части кода, упуская из виду «человеческую».

Как пишут код «сеньоры»

Глядя на код старшего разработчика, можно подумать: и это всё? А где остальное? Достаточно опытный разработчик пишет простой, понятный и, возможно, местами даже чересчур прямолинейный код — и это одно из самых важных качеств, если говорить о программировании. «Сеньор» следует принципу KISS, гласящему, что код должен быть простым и понятным: «Keep it simple, stupid»

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

Не программированием единым

Помимо навыков программирования, есть и другие факторы, которые могут подсказать, что за разработчик перед вами.

Младшие разработчики, как правило, выполняют самые простые и не самые важные задачи; они не занимаются разработкой архитектуры. Разработчики среднего уровня тоже не разрабатывают решения, а просто выполняют задачи, однако их меньше контролируют — если задание довольно типовое. А вот «сеньоры» могут разработать приложение совершенно самостоятельно.

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

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

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

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

А вот в случае «джунов» не следует ожидать, что они смогут задавать нужные вопросы: у них недостаточно практики, поэтому ими должны руководить более опытные коллеги. Младшего разработчика следует обеспечить необходимыми ресурсами или хорошенько подтолкнуть в правильном направлении.

Переход на следующий уровень

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

От «джуна» — к «мидлу»

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

Что касается программирования — следует научиться писать простой код: представьте, что после вас над проектом будет работать другой человек. Кроме того, придется научиться заниматься отладкой — это углубит понимание того, что происходит во время работы программы.

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

От «мидла» — к «сеньору»

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

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

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

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

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

Заключение

Разница между «джуном», «мидлом» и «сеньором» заключается не только в многолетнем опыте. Да, можно с уверенностью сказать, что у последнего навыки гораздо более развиты, чем у разработчиков младшего и среднего уровня. Но знание — не самый важный фактор.

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

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

Напоследок процитирую Мартина Фаулера:

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

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией игр, приложений и сайтов на 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

А так же:
Какое определение самое общепринятое?
Поддается ли это определение формализации?
Можно ли применять к людям с объективной точки зрения, а не менеджерски-маркетинго-эйчарской с целью занижения ЗП?
Есть ли известные личности (возможно, звезды или гуру), которые готовы признать, что они, например senior?

Возможно, вопрос риторический, философский и подымался очень много раз, но я, много над ним размышляя, пришел к выводу, что ответить на вопрос "Ты juniormiddlesenior?" за приемлемое время — это то же, что ответить на вопрос "Сколько стоит машина?" или "Сколько стоит сайт?"

  • Вопрос задан более трёх лет назад
  • 68548 просмотров

Эти понятия, как и многое другое, пришло с запада. В России, знаю на примере текущей компании, есть разделение на "Инженер-программист 3й категории", 2й категории и высшей категории (ведущий инженер-программист). В нормативных документах, в том числе и в рамках должностной инструкции описано, что например инженер программист 2й категории — это сотрудник с высшим образованием по специальности и таким-то количеством лет опыта. Это формальный подход, на практике мне дали 2ю категорию существенно раньше, чем "положено".

Тем не менее, сейчас все равно используются эти 3 понятия (с довольно плавающими границами) для того, чтобы как-то разделяться уровень программист. Точное определение можно получить только в рамках компании и тех требований, которая она предъявляет. Например где-то один и тот же программист может быть сеньором, а в другой — максимум мидл.

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

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

Это все лично мое мнение, не претендующее на истину)

Junior : студент старших курсов и без опыта работы. Если с человеком нужно сидеть и постоянно помогать. Можно доверить баги, но никак не рефаторинг или таски на 1-2 недели, то это 100% джуниор. Опыт фултаим: 0.5-1 год. Либо партайм: 1-2 года. Предметную область знает слабо.

Middle : фиксит баги быстро, может делать таски на 1-2 недели, принимать архитектурные решения, рефакторить. Опыт фултайм: 1-2 года. Предметной областью владеет достаточно, что бы обсуждать с коллегами, спорить, искать решения.

Senior : Тут либо довольно крутой, скилловый Middle, умеющий очень хорошо кодить и знающий предметную область о-о-очень хорошо. Опыт фултайма 5-7 лет.
Либо просто Middle, который решил уйти, но его апнули, что бы не уходил. Обычно молодые Senior этот случай.

есть ли принципиальная разница этих понятий
Есть немного. В вебе растут быстрее (см. молодых синьеров). В геимдеве посложнее, т.к. область специфичная и набить руку в рендере, физике и прочих PS4SDK дома не получится. Но понятие Software Engineer никто не отменял. Software Engineer считаются довольно универсальными и могут быть Senior в любой предметной области, конечно если это не рокетсаенс, которым Senior в жизни не занимался.

Ссылка на основную публикацию
Удобное компьютерное кресло отзывы
В общем, надоело мне с ноутбуком на кровати валяться, спину портить. Стол есть, 74см высотой. Сейчас сижу на офисном стуле,...
Тест эксель на собеседовании
Если вы хоть раз пытались устроиться на работу или же работаете на должности, в круг обязанностей которой входит принятие людей...
Тестирование cd и dvd дисков
В этой статье я опишу программу тест Nero CD DVD Speed, которая разработана компанией "Nero Softwsre AG". С помощью программы...
Удобный сайт для просмотра фильмов
Некоторые онлайн-кинотеатры радуют лицензионными бесплатными фильмами, однако за лучший контент придётся платить. В подборке Лайфхакера — несколько хороших сервисов с...
Adblock detector