1с middle что это

Обновлено: 07.07.2024

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

Обычно на позицию Junior претендуют выпускники, которые только закончили профильное образование или имеют небольшой опыт в разработке, делали некоммерческие или pet-проекты.

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

Джун нуждается в постоянной помощи и контроле наставника Джун нуждается в постоянной помощи и контроле наставника

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

Итак, определить джуна можно по следующим характеристикам:

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

«Хороший» джуниор, который имеет шансы на быстрое продвижение по карьерной лестнице, должен:

  • Постоянно развиваться, набивать руку в работе, стараться получить разносторонний опыт и новые знания;
  • Быть целеустремленным;
  • Спокойно воспринимать критику, стараясь извлечь из нее пользу и больше не совершать аналогичных ошибок;
  • Понимать ТЗ и выполнять его без постоянной помощи наставника.

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

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

2. Миддл

Специалисты среднего уровня являются основой любой команды разработчиков.

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

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

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

Как пишет код Junior:

Вариант Middle разработчика:

Как распознать middle девелопера:

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

Что делает перспективный мидл, который сможет претендовать на позицию сеньора?

  • Не останавливается в своем развитии, даже когда чувствует себя уверенно в работе. Стремится изучить все детали и тонкости используемых инструментов;
  • Улучшает свои компетенции, учит дополнительные технологии, приложения, фреймворки и языки программирования , которые уже выходят за рамки его нынешних обязанностей. Если такого миддла перевести в другой отдел, он сможет быстро вклиниться в работу и не ухудшит показатели команды;
  • Работает над своими soft skills . Чтобы стать senior разработчиком, нужно не только иметь сильную техническую базу, но и лидерские качества, хорошие коммуникативные скиллы, ведь такой специалист будет обучать команду, помогать сотрудникам.

3. Сеньор

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

Это профессионал, который может не только справляться с разрозненными задачами-кирпичиками проекта, но и в целом понимать его архитектуру, знать функционал Это профессионал, который может не только справляться с разрозненными задачами-кирпичиками проекта, но и в целом понимать его архитектуру, знать функционал

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

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

Как распознать разработчика-сеньора:

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

Сколько времени занимает продвижение по карьерной лестнице?

Продвижение между уровнями у каждого специалиста происходит в «своем темпе» Продвижение между уровнями у каждого специалиста происходит в «своем темпе»

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

  1. Junior – 1-3 года. Самые старательные и целеустремленные джуны успевают получить необходимую базу опыта и знаний в течение года, чаще всего переход на следующий уровень происходит через 1,5-2 года. Если вы видите, что все задачи уже делаете самостоятельно, ваш ментор не вносит кучу правок в ваш код, то не стесняемся на собеседовании и обсуждаем повышение со своим руководством.
  2. Middle – 1-3 лет. При хорошем развитие карьеры специалист проведет на позиции миддла от 1 до 3-х лет. При упорной работе за это время можно углубленно изучить необходимые технологии и языки. Но, как мы уже писали, далеко не все специалисты вообще хотят или могут преодолеть этот рубеж. Кто-то не вытягивает по уровню знаний, ведь даже чтобы остаться на своей позиции, нужно что-то учить и развиваться, потому что профессия разработчика не стоит на месте. А для повышения – нужно делать еще больше! Для кого-то становится проблемой вопрос наставничества, ответственности и необходимости быть нянькой для всей команды, а кресло миддла кажется «спокойной гаванью».
  3. Senior developer – 3-5 лет. Обычно в вакансиях на позицию старшего разраба хотят видеть специалиста со стажем от 5 лет, но на первом месте все равно ваши навыки. Если вы за 3 года освоили весь стек технологий, работодатель наверняка будет только рад заполучить исключительного специалиста. Дальнейшее продвижение по карьерной лестнице уже ведет к руководящим позициям с административными полномочиями – тимлид или архитектор.

Средние зарплаты разработчиков

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

Приводим данные экспертизы Хабра, который регулярно анализирует зарплаты в индустрии, в зависимости от их квалификации:

Из этого графика становится понятно 2 ключевые вещи:

  1. С каждым новым левел-апом, зарплата разраба увеличивается примерно в два раза.
  2. Опытные разработчики более ценны на рынке труда, их зарплаты продолжили расти даже в условиях пандемии и кризиса 2020.

А вот как обстоят дела с зарплатами в разных специализациях и языках программирования :

Кого из них нанимать на работу?

Небольшое пособие для рекрутеров и HR

JUNIOR, ЕСЛИ:

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

MIDDLE, ЕСЛИ:

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

SENIOR, ЕСЛИ:

  • У вас уже есть команда инженеров-программистов низшего звена, которой нужно управлять;
  • Вы можете позволить себе высокоопытных, квалифицированных асов;
  • Ваш проект имеет глубокий характер и требует узкого, строгого подхода;
  • Вы собираете команду экспертов, но не обладаете должным опытом для эффективного проведения собеседований.

Подводные камни

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

  1. Застревание в типовых задачах. Такую ситуацию можно встретить и в небольших компаниях, которые идут по пути наименьшего сопротивления и берут простые однотипные проекты, и в отдельных крупных компаниях, которые хотят сэкономить на зарплате и не очень способствуют продвижению сотрудников. Смысл в том, что джуниору дают простые и совершенно однотипные задания изо дня в день. В результате, вы можете проработать на такой позиции и 3 года, а по факту не получить новых знаний и полезного опыта.
  2. Необъективность. В зависимости от компании, требования к уровню разработчика могут сильно отличаться. Представим, что вы начали работать в небольшой веб-студии. Там вы быстро зарекомендовали себя и начали продвигаться по карьерной лестнице, став через несколько лет старшим разработчиком. Потом вы решили перейти на работу в большую компанию, где зарплата гораздо выше. И тут вас может ожидать большой облом. Небольшая веб-студия имеет небольшой штат сотрудников и, как результат, берется за более простые, немасштабные проекты, поэтому и требования к своим сотрудникам не так высоки. Крупная ИТ-компания работает со сложными и высокотехнологичными продуктами, и здесь требования к соискателю гораздо выше. В итоге ваш уровень senior в маленькой компании может оказаться уровнем middle, или даже junior в крупной фирме.

Выводы

Главный вывод из всей этой информации таков: продвижение в карьере разработки – это не столько про время, сколько про целеустремленность и саморазвитие. И это еще одна вещь, которая делает программирование такой востребованной профессией. Во многих традиционных отраслях рынка труда продвижение по карьерной лестнице до приличного уровня заработка и хорошей должности по-прежнему занимает десятилетия, а разработка позволяет достичь этого буквально за 3-5 лет. И это прекрасно.

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


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

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

Знания

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

О переводчике

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

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

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

Здравствуйте! Публикуем авторскую статью Дмитрия Котлова — сертифицированного 1С-специалиста, руководителя проектов, эксперта по технологическим вопросам. Также Дмитрий является автором и руководителем нового профессионального курса OTUS «Программист 1С», с программой которого мы приглашаем вас познакомиться.


Привет! В своей статье я расскажу о том, какие специалисты нужны для внедрения 1С, какие задачи они выполняют, какие компетенции нужны для качественного выполнения проекта. Отдельно и подробнее поговорим про требования к программистам.

Для начала перечислим позиции специалистов:

  • Руководитель проекта
  • Архитектор
  • Консультант
  • Программист
  • Специалист по качеству (по тестированию)

Чем занимаются перечисленные специалисты?

Руководитель проекта

В зависимости от конкретной компании обязанности следующие:

  • Составление плана проекта и контроль его реализации, могут быть различные планы: по срокам, по качеству, по финансам(бюджет)
  • Взаимодействие с заказчиком по плану планам проекта
  • Участие в продаже проекта
  • Взаимодействие с командой проекта на предмет выполнения проекта и решения административных вопросов
  • Координация выполнения работы и их приёмки
  • Выбор оптимальных конфигураций 1С для решения задач клиента

Архитектор

В зависимости от конкретной компании обязанности следующие:

  • Разработка и описание архитектуры 1С
  • Участие в пресейлах
  • Техническое руководство проектом
  • Контроль качества разработки
  • Выявление и управление техническими рисками проекта
  • Оценка объёма работ
  • Участие в разработке ТЗ, ЧТЗ, ТП, требований к архитектуре
  • Организация процесса разработки
  • Анализ качества продукта

Консультант

В зависимости от конкретной компании обязанности следующие:

  • Консультирование по функционалу
  • Участие в пресейлах
  • Определение бизнес-требований, планирование подхода к работе с требованиями
  • Выявлять, анализировать и документировать требования
  • Доводить требования до заинтересованных лиц, управлять проверкой требований
  • Обеспечивать расстановку приоритетов требований
  • Ставить задачи программистам и принимать результат выполнения
  • Проведение обучения
  • Проведение приёмо-сдаточных испытаний, демонстрация продукта заказчику
  • Сдача и согласование документации с заказчиком

Программист

В зависимости от конкретной компании обязанности следующие:

  • Обновление информационных баз
  • Реализация доработок в соответствии со стандартами разработки
  • Участие в совещаниях

Специалист по качеству (по тестированию)

В зависимости от конкретной компании обязанности следующие:

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

Далее подробнее разберём позицию «Программист»

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

Программист-стажёр — вакансия, как правило, подразумевает нулевой опыт работы с 1С, возможность интенсивно обучаться. Чаще всего такие вакансии есть в компаниях-партнёрах 1С.

  • Установка программного обеспечения
  • Обучение клиентов
  • Участие в тестировании
  • Участие в качестве ассистента во внедрении
  • Программирование
  • Прохождение обучения
  • Сдача тестов и экзаменов на сертификацию
  • Желание развиваться
  • Общительность
  • Инициативность
  • Умение излагать свои мысли, грамотная речь
  • Желателен опыт с 1С
  • Желательно знание бухгалтерского учёта

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

  • Доработка конфигураций
  • Разработка конфигураций под задачи компании
  • Написание новых отчётов, обработок
  • Интеграция 1С со внешними системами
  • Обновление доработанных конфигураций

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

  • Разработка нового функционала
  • Подготовка сборок и релизов по выполненным задачам
  • Настройка сервера 1С Предприятие
  • Декомпозиция, распределение и постановка задач разработчикам
  • Обновление не типовых конфигураций
  • Оптимизация производительности 1С
  • Разработка обменов данными между 1С и внешним ПО

Итак, в статье я описал наиболее часто встречающиеся обязанности и требования. Бывает и специфика, например, если по факту в компании отсутствуют аналитики, то зачастую программисты исполняют их обязанности.

Также, если вам интересно развиваться в данной сфере, не пропустите прямую трансляцию мастер-класса «Разбор стандартов и методик разработки на платформе 1С». Я расскажу о стандартах и методиках разработки 1С и покажу, зачем они нужны. А также вы сможете самостоятельно привести код в соответствии со стандартами и методиками 1С!

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

Intern (Стажер или Интерн)

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

Junior (Младший программист или Джун)

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

Middle (Программист или Мидл)

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

Senior (Старший программист, Ведущий программист или Синьор)

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

Читайте также: