senior developer что такое

Вершина, но не предел, или как стать Senior Developer

К концу статьи у вас будет список из лучших ресурсов и поэтапно расписанный путь к такой должности, как Senior Developer.

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

Чего мы хотим от должности Senior Developer?

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

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

Кто такой Senior Developer?

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Нет, будучи полиглотом, который знает 10 разных языков программирования и создал свою собственную версию Jarvis, вы не станете старшим разработчиком. Дело в том, что Senior Developer – это тот, кто обладает приличным багажом знаний, оказывает положительное влияние на младших сотрудников и в целом улучшает показатели эффективности своей компании. Вы можете знать все о функциональном программировании, но если при этом нет навыков продуктивного общения с командой, или ваши знания не представляют фактической ценности для конечного потребителя, вы не старший разработчик.

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

Как стать старшим разработчиком?

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

Главное правило – не стоять на месте. Не нужно зацикливаться на чем-то одном: расширяйте спектр возможностей, изучайте языки, СУБД, IDE, фреймворки, знакомьтесь с принципиально новыми подходами в области программирования, ведь кто знает, чем будут заниматься те же специалисты по машинному обучению через 5 лет? Все меняется, и нужно осваивать умения, позволяющие быстро адаптироваться в новых условиях.

1. Технические навыки

Старшие разработчики используют очень много «Почему» в понимании технологий:

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

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

Хороший пример mind mapping для JavaScript-программистов:

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Если ваша специальность никак не связана с компьютерами, начните с изучения структур данных, алгоритмов и других основ. Зачем? Хоть технологии и меняются, базис остается прежним. Новичкам подойдет книга «Алгоритмы. Вводный курс». Хорошим вариантом для тех, кто знает основы, станет книга «Алгоритмические трюки для программистов», а вот профессионалы обязательно оценят «Алгоритмы. Построение и анализ».

Не обходите стороной и подкасты вроде Software Engineering Daily: они позволят вам оставаться в курсе текущих проблем и будущих перспектив всей отрасли.

2. Командные навыки

Данный аспект часто упускается из виду. Как вы работаете со своей командой? Относитесь ли вы к категории дерзких и упрямых, или же проявляете внимательность, охотно сотрудничаете и всячески поощряете членов команды? Senior Developer никому ничего не доказывает. Ему и не нужно: он сразу пишет чистый упрощенный код, а не такой, который будет выглядеть демонстративным, но совершенно нечитабельным в глазах других программистов. Старший разработчик готов помогать другим и отвечать на все вопросы.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

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

3. Навыки клиента/пользователя

Могут ли клиенты или пользователи быть вами услышаны? Когда они что-то предлагают, вы понимаете, с какими проблемами они сталкиваются? Старший разработчик – это также внимательный слушатель, который может предложить дельные советы по решению проблем. Senior Developer отлично справляется с формированием отношений. Он понимает, что обе стороны, – и клиент, и разработчик, – выигрывают от продуктивного взаимодействия. Прочитайте «Психологию влияния» для улучшения этого навыка.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

4. Навыки роста

Старшие разработчики ежедневно изучают что-то новое. Это не значит, что они проводят 14 часов в день, сидя перед компьютером, читая статьи. Они более эффективны. Они всегда стараются поговорить с другими программистами, задать вопросы или изучить новые темы. Они не сосредотачиваются только на одном наборе знаний. Вы можете быть лучшим в чем-то одном, но если вы не знаете весь спектр или не понимаете, с какой проблемой столкнулись, вы уже не лучший.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Senior Developer не скажет «О, я ненавижу эту библиотеку!». Большинство людей говорят это лишь потому, что не понимают чего-то до конца. Например, не говорите: «Я ненавижу jQuery. Только плохие разработчики все еще используют jQuery». Старший разработчик скажет, что «jQuery сыграл важную роль в развитии Интернета и популярности JavaScript», и он будет прав, ведь действительно разобрался в данном вопросе.

5. Навыки собеседований

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Старшие программисты на то и старшие, что могут общаться и продавать свои услуги другим. Вы можете видеть потребности своего работодателя и внушить уверенность в том, что являетесь тем, кто ему нужен. Senior Developer должен уметь принять на себя роль ведущего в проекте, а потому подача на собеседовании решает все. У американского эксперта Рамита Сетхи есть отличная статья, которая даст хороший старт. Помогут и другие полезные материалы по трудоустройству.

6. Навыки сообщества

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

В заключение

Развивайте эти навыки, но помните: вам должно нравиться то, что вы делаете. Если вы не находите интересным каждый день изучать информатику и разработку программного обеспечения, вы никогда не станете старшим разработчиком, потому что у вас не будет искреннего стремления совершенствоваться. Если вы когда-либо читали книгу «Хватит мечтать, займись делом!», то понимаете, что страсть к работе должна быть чрезмерной.

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

Источник

Кто такой сеньор и что он делает (он же senior)

Программист, который умеет всё.

Послушать аудиоверсию этой статьи (6 минут):

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

Чем senior-разработчик отличается от всех остальных

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

Ключевое качество сеньора — умение работать полностью автономно. Это значит, что задача, которая ему поручена, будет сделана, даже если никто пока не представляет, как именно. Для этого сеньор:

Как им стать

Обычно говорят про 5–10 лет работы мидлом, но это ерунда. Настоящими сеньорами становятся не по выслуге лет (хотя иногда бывает и такое), а по способности решать сложные задачи и брать на себя ответственность за ход проекта.

Если говорить о требованиях, которые обычно предъявляют к сеньорам, то вот они:

А ещё он знает про технический долг и про то, что с ним делать. Про этот философский аспект работы программистом мы расскажем отдельно.

Зачем нужны senior-разработчики

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

Помогать другим программистам. Когда у джуниоров возникают вопросы, они идут к мидлам. Когда вопросы у мидлов — они идут к сеньорам.

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

Сколько платят senior-разработчикам

Мы посмотрели зарплаты сеньоров разных направлений на Хабр Карьере за второе полугодие 2019 года:

Это в полтора раза выше, чем у мидлов.

Что дальше

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

Об этом — в новых статьях.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Как в Микрософте сделали свой язык программирования. И зачем.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Это не так сложно, как звучит.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Когда нужно ещё что-то кроме пароля.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Самое понятное применение интернета вещей в жизни

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Разбираемся с экспертом

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Современные технологии против игры прошлого века.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

И какие они бывают.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Разбираем, почему это не самый популярный язык.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Все говорят про какой-то хостинг. Что это вообще такое?

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Это как системный администратор и программист в одном лице.

Источник

Разница между «джуном», «мидлом» и «сеньором». И что делать, чтобы перейти на уровень выше

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

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

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

Знания

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

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое
Фото — Clem Onojeghuo, площадка Unsplash

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

Источник

Отличия junior, middle и senior разработчиков — объясняют эксперты

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

Нам пришел вопрос от подписчика Tproger, которым мы хотим поделиться с вами:

«Чем отличаются junior, middle и senior разработчики? Как происходит переход между этими уровнями?»

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

руководитель отдела управления персоналом ISPsystem

Упрощенно различие между уровнями разработчиков можно описать так: Junior — совсем новичок, может мало и часто с чужой помощью; Middle может многое и сам; Senior помогает всем, руководит или является гуру в одной из сфер. Кроме способности решать задачи, в разработчике для нас важны знания и вовлеченность в жизнь команды и продукта.

Конкретное наполнение уровней зависит от стека технологий, который используется в компании. В ISPsystem деление примерно такое:

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

Middle разработчик — вчерашний Junior, успешно освоивший весь стек технологий, используемый командой. Его уже не пугает командная строка и Git. Он уверенно, самостоятельно и в срок решает небольшие задачи/баги. Высказывает полезные замечания при просмотре чужого кода.

Senior разработчик — ментор, евангелист. Ему можно поручить новый продукт или направление. Он уже руководит подразделением (teamlead) или является очень крутым разработчиком (techlead). Партнер компании. Он понимает, для кого делается тот или иной продукт. Кто, что и как должен делать.

Внутри этих понятий тоже есть разделение. Кроме Junior, есть Junior+ и Junior++. Аналогично с Middle, а с Senior — нет. Senior он есть, и все. «Он крут! Сам все решает и делает. Имеет авторитет в команде и вне» — так закреплено у нас. Мы ориентируемся на эти уровни при поиске новых программистов и для работы с теми, кто уже в команде. Глядя на требования — а они зафиксированы и открыты, — сотрудники понимают, в какую сторону «копать», чтобы вырасти. Это что-то вроде OKR (Objectives and Key Results).

Как происходит переход между уровнями? Первая оценка идет на собеседовании, далее — каждые полгода. Разработчик и его тимлид (или ментор) встречаются и определяют цели (те самые OKR), которые сотрудник должен достичь для повышения (или смотрят, достиг ли он поставленных ранее целей). Вырос Junior или нет, решает ментор и тимлид. Решение о переходе с уровня Middle на Senior принимает СТО. Предусмотрено также, что в этом могут участвовать и другие разработчики уровня Senior: один из них выдвигает коллегу, а окончательное решение принимают расширенным составом

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

руководитель отдела разработки новых программных продуктов IT-компании NEIRIKA

Первое, что приходит на ум при обдумывании ответов на вопросы, – модель приобретения навыков Дрейфуса и матрица компетенций Джозефа Сиджина (Joseph Sijin). Но первая из них слишком общая, а вторая в чем-то чересчур подробная, в другом же – зияет лакунами. Поэтому мы постараемся дать оригинальный ответ, не изобретая вместе с тем велосипеда.

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

На мой взгляд, при оценке уровня разработчика необходимо учитывать следующие навыки, знания и характеристики:
1. Вычислительные технологии (Computer Science): структуры данных, алгоритмы, системное программирование;
2. Программная инженерия (Software Engineering): VCS, IDE, CASE, CI/CD, middleware, процессы, метрики;
3. Программирование: языки программирования, библиотеки, каркасы, организация кода, организация собственной работы;
4. Коммуникативные навыки;
5. Когнитивные навыки;
6. Знание предметной области;
7. Опыт.

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

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

Опыт является довольно условной характеристикой, бывают случаи, что человек за 5 лет может достичь уровня эксперта, а некоторым недостаточно и 10, чтобы стать Middle.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

руководитель направления по разработке новых проектов, Банки.ру

Junior — разработчик, который только начал свой путь в программировании. Человек освоил синтаксис языка и может писать простейшие программы/скрипты. В коммерческой разработке это означает, что человек может решать простейшие задачи, более сложные задачи он может выполнять с помощью и под контролем опытного коллеги. Давать такому разработчику сложные задачи и ждать от него разумного исполнения (как по качеству, так и по срокам) нельзя. Код junior-разработчика нуждается в постоянном ревью.

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

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

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

Для развития своих навыков необходимо: изучать новые языки и подходы программирования (ООП, функциональное программирование), читать исходный код популярных проектов (находить плюсы и минусы представленных решений), изучать разные СУБД, NOSql решения, механизмы кеширования, очереди и тд.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

заместитель генерального директора RU-CENTER

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

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

директор по технологическому развитию ИТ-компании «АйДи – Технологии управления»

Junior, middle и senior разработчики – градация, которую чаще всего используют на ИТ-рынке, но далеко не всегда понимают, как именно она строится. Обычно junior-разработчика определяют как новичка с реальным опытом работы до 1-1,5 лет, middle-программиста – как все еще обучающегося специалиста с опытом 1-3 года, а senior – как профессионала, проработавшего в компании добрых 5-6 лет.

На самом деле эта градация не совсем корректна. Есть те, кого можно и через 4 года работы в компании отнести к разряду новичков, а есть настоящие «бриллианты», которые всего через несколько месяцев после выхода на рынок уже проявляют самостоятельность и не бегают каждые 5 минут с вопросами к старшим коллегам. Поэтому, на мой взгляд, иерархию ИТ-специалистов можно и нужно выстраивать в зависимости от тех профессиональных навыков, которые они осваивают.

Так, junior – это обычно человек с маленьким опытом разработки или вообще без него. Конечно, он обладает теоретическими знаниями и, вполне вероятно, профессиональным образованием или, как минимум, освоенной программой курсов по программированию. Часто – понимает основы алгоритмизации и основные структуры данных, возможности выбранного языка программирования и выбранного 1-2 фреймворков. Однако эти знания, как правило, не систематизированы, обрывочны и не подкреплены практическим применением. Поэтому работать ему приходится под присмотром руководителей или старших товарищей: код, который он пишет, нуждается в проверке со стороны более опытных специалистов.

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

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

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

Чтобы развиваться в ИТ, нужно понимать, что придется постоянно держать руку на пульсе – технологии развиваются настолько стремительно, что даже профессионалы своего дела вынуждены постоянно заниматься самообразованием: читать новые статьи и исследования по теме, тестировать новые продукты и технологии. Любые знания в этой сфере полностью устаревают уже через 3-5 лет, и если нет постоянного роста, можно из senior снова «скатиться» на позицию middle.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

директор по инновациям компании «Иннодата»

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

Junior разработчик — обычно это стажеры или сотрудники с отсутствующей квалификацией по определенной технологии. Обычно берут в команду к более сильным коллегам, которые помогают им не только с постановкой задачи, но и с выбором инструментов для ее решения. Младшим доверяют простые, некритичные для проекта задачи, на которых они скорее учатся, чем доставляют конкретный результат. В среднем через 1-1,5 года в меру способный junior developer уже готов к переходу в категорию «среднячков».

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

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

директор по развитию бизнеса SoftMediaLab

Путь к уровню Junior разработчика начинается, когда в компанию приходит вчерашний студент с опытом решения некоммерческих задач и так называемых pet projects – небольших проектов, реализованных рамках обучения. Когда он попадает в команду, на него обрушивается множество новой информации, но самое важное он получает наставника. В этот момент человек должен демонстрировать быструю обучаемость, не задавать два раза одни и те же вопросы и постараться максимум времени уделить обучению и задачам. Обычно компании берут человека, если до уровня junior ему осталось не более 6 месяцев. Так происходит, потому что простых задач в разработке не так уж и много. Часто их приходится специально искать под джуна, чтобы он мог на чем-то учиться. В результате компания тратит больше, чем получает.

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

Middle разработчик– это человек который уже набрал определенный опыт. Он понимает процессы в команде, архитектуру продукта, продуктовый контекст и почему все так, а не иначе. Он уже не боится задач длиной в неделю и более. Может декомпозировать эту задачу, в том числе на задачи в единицы дней, которые можно отдать джуну. Маркеры того, что человек перешел в разряд middle: наставничество, предложения по архитектуре и процессу, конструктивное обсуждение плана спринта, идентификация плохих задач и, самое главное, успешное решение задач средней сложности длиной в неделю и более. Middle – это человек, компетенции которого признала команда. Такой человек может справиться с добавлением новой бизнес-логики в существующий сервис, добавлением новых страниц интерфейса, добавлением новых функций API. В среднем путь от Junior до Middle занимает от 1 до 3 лет.

Senior разработчик — это человек, который решил, кем он хочет быть: тимлидом (руководить командой) или техлидом (заниматься техническими историями). Он перестает оперировать задачами, на вход он получает зону ответственности: продукт, отдельный бизнес-сервис, команду. Он сам понимает, что нужно делать, чтобы сделать хорошо. Senior, в отличие от Junior и Middle обучается сам, никто не говорит, что конкретно ему надо изучить. Senior часто выходит за пределы команды, начинает влиять на соседние команды и на жизнь компании в целом. Главный маркер Senior – он уже обладает серией успешно запущенных продуктов, у него есть ряд историй успеха. Еще один маркер – точность в оценках. За счет опыта решения различных задач senior может выбрать наиболее оптимальное решение и реализовать его самостоятельно или силами команды, при этом довольно точно попав в оценки по времени. Путь от middle до senior может занимать разное время. Кто-то достигает этого уровня за год, кто-то за 5-10 лет, а у кого-то этот переход так и не происходит

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

директор по производству компании РДТЕХ

Исторически сложилось, что разница между уровнями junior, middle и senior определяется длительностью работы сотрудника на позиции разработчика: junior работает год-полтора, middle – два-пять, опыт senior’а составляет больше пяти лет.

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

Обычно junior’у достаются несложные задачи, для реализации которых ему необходим куратор, к которому он может обратиться с вопросами. Middle-разработчик справляется с задачами самостоятельно, по своей инициативе берется за задачи повышенной сложности, только в этом случае прибегая к помощи старших коллег. Если же разработчик способен решать задачи любой сложности, а коллеги часто обращаются за его авторитетным мнением, то такого сотрудника пора возводить в ранг senior. Переход между уровнями, как правило, происходит по результатам выполнения крупных проектов или на основании периодической оценки персонала, в рамках которой оцениваются не только профессиональные, но и личностные компетенции разработчика.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

генеральный директор Лига А.

Многие считают, что у такого разделения есть чёткие границы в рамках всей отрасли, которые можно измерить и вывести в единую систему, по которой определять, к какому типу относится каждый специалист. Моё мнение — это ошибка. Уровень каждого конкретного специалиста необходимо считать по команде или компании, в которой он работает. Приведу пример: разработчик из небольшой студии, которая занимается потоковой разработкой однотипных проектов, может занимать в такой студии должность старшего разработчика(senior), но при этом если он пойдёт в крупную высокотехнологичную компанию, его уровень могут оценить как junior. Таким образом мы получаем человека, который для одной компании слишком силён, а в другую компанию его вообще не возьмут работать.

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

заместитель директора по разработке программного обеспечения компании «Аэроклуб ИТ»

Прежде всего, хочу сразу сказать – для нас данные уровни означают не только технические навыки (hard skills), но и навыки общения с людьми, работы в команде, готовность отвечать за свои решения (soft skills).

Чем выше уровень разработчика, тем выше требования к нему в части soft-skills. Технические навыки обычно разработчикам развить легче, чем навыки общения и командной работы, но именно навыки работы с людьми становятся очень важны для middle- и, тем более, для senior-разработчиков. Я не думаю, что возможна успешная работа команды из разработчиков, которые прекрасные «технари», но не желают или не умеют общаться между собой и работать для достижения единой цели.

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

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

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

ведущий разработчик торговой площадки для бизнеса Supl.biz

Нельзя сказать, что между junior/middle и middle/senior есть какая-то очень четкая грань, на основе которой человека однозначно можно было бы отнести к той или иной категории. На мой взгляд, junior – это человек, который знает основы программирования, теорию, свободно владеет каким-либо языком программирования в степени, достаточной для выполнения типовых рабочих задач, когда не требуется нетривиальных решений. Забегая вперед, можно сказать, что возникающие трудности у junior могут разрешиться простой консультацией с middle, для которого такие задачи и вопросы – это пройденный этап. В большинстве случаев, обладая совсем небольшими знаниями и опытом, junior-ам часто кажется, что они уже многое освоили, что они могут самостоятельно решать трудные задачи, что им пора уже становиться middle-ом. Junior-ы часто не заботятся о последствиях, не обращают внимание на такие мелочи и тонкости, которые могут, например, положить продакшн или существенно замедлить выполнение программы. И причина этому – опыт, точнее его отсутствие. Junior-ы часто пишут нечитаемый код, потому что для них важно здесь и сейчас выполнить поставленную задачу, потому что им еще не приходилось часами разбираться в чужом устаревшем запутанном коде.

Middle – это, как минимум, junior без перечисленных выше недостатков. Middle уже осторожен, он аккуратнее пишет код, старается предугадать возможные ошибки, следит за тем, чтобы его код был как можно более простым и эффективным. Middle способен решать нетривиальные задачи, которые могут длиться от двух часов и до двух недель, способен проводить исследования и обосновывать свой выбор конкретного решения, способен рассуждать о его плюсах и минусах. Считаю, что middle должен уметь заниматься грамотными оптимизацией, рефакторингом и обзором кода (review), он должен на продвинутом уровне свободно владеть языками и технологиями, которые необходимы в работе. Middle должен интуитивно понимать, что та или иная задача – типовая, и что с большой долей вероятности кто-то ее уже решил, и решение можно просто найти и использовать у себя. Как мне кажется, дополнительно к данному уровню можно отнести грамотный выбор решения и то, какую стратегию нужно выбрать именно сейчас, именно в данный момент: сделать максимально качественно, но долго, либо чуть более небрежно, но быстро. Небрежность – это всегда плохо, но часто бывают ситуации, когда быстрая реализация приносит намного больше пользы. Конечно же, такие решения тоже нужно уметь обосновывать. Последнее, на чем бы хотелось сделать акцент – в отличие от junior-а, middle уже может адекватно оценивать задачи по времени, и придерживаться намеченной оценки.

С Senior-ом выделить конкретные критерии сложнее. Наверное, главные качества senior-а – это его опыт и способность анализировать и предвидеть. Senior-у можно давать самые сложные задачи и быть уверенным, что задачи либо будут выполнены, либо будет доказано, что задачу в поставленном контексте выполнить невозможно. Senior способен проектировать архитектуру программы, задавать вектор развития программного продукта. Senior-у, зачастую, не интересно заниматься простыми задачами, которыми занимаются Junior-ы или middle-ы, ведь он знает, что даже, пускай он еще не занимался такими задачами, но точно знает, что решит задачу за указанное время. Наверное, можно сказать, что Senior-ы работают на более высоком, абстрактном уровне.

На мой взгляд, переходы между рассматриваемыми уровнями установить очень трудно, особенно если рассматривать переход middle-senior. Увидеть, что junior окреп до уровня middle не так сложно, как сказать, что middle теперь полноценный senior. Также убежден, что если senior может самостоятельно принять решение о том, что junior теперь middle, то переводить middle-a в senior-а должен не один человек, а целая экспертная группа. И у каждого из экспертной группы доводы могут быть свои.

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

технический директор компании 404 Group

Деления разработчиков на junior, middle и senior весьмы условны, они часто зависят от особенностей работы компании. Один и тот же специалист может где-то считаться как Junior+, а кто-то его определит как крепкого Middle. Не существует единых стандартов перехода от одного грейда к следующему. В некоторых компаниях есть прописанные уровни с указанием того, что должен знать сотрудник, занимая ту или иную позицию. Но этот уровень часто не совпадает у разных работодателей.

Что должны уметь junior, middle и senior разработчики? На практике junior не знает как программировать на языке и испытывает трудности с пониманием нюансов бизнес-логики. Middle уже научился программировать, он понимает продвинутые аспекты языка, ориентируется в коде, знает, где найти ответы. При этот он еще не достиг нужного уровня опыта, чтобы оценивать большой объем кода, быстро в нем разбираться и понимать, что код делает. Специалиста уровня senior не нужно учить программировать, он сам разберется в деталях проекта и найдет наиболее эффективный способ решить поставленную задачу.

Сколько этим специалистам нужно времени для раскрытия своего потенциала? В какой-то компании разработчик может оставаться на позиции Junior пару лет, а сотруднику другой — хватит и одного года, чтобы стать Middle. Все индивидуально и зависит от того, как сама компания оценивает этих специалистов. Поэтому критерии для перевода сотрудника из одной позиции в другую достаточно субъективны. Не существует формальных способов однозначно оценить, к какой категории относится разработчик. Хороший руководитель или тимлид, работая с человеком продолжительное время, сможет дать характеристику этому специалисту.

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

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

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

директор флагманского проекта Galenos компании «ТехЛАБ»

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

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

Junior – это, как правило, специалист, умеющий на базовом уровне работать с принятыми в проекте технологиями, но не имеющий за плечами ни «багажа» из пары лет опыта, ни знаний по текущему проекту. «Юниор» обычно работает под строгим присмотром старших коллег. Главная задача новичка на этом этапе – максимально глубоко погрузиться в специфику деятельности компании, поэтому можно и нужно задавать вопросы товарищам по цеху, интересоваться деталями рабочих процессов и вообще всячески путаться у всех под ногами. Для него важно показать, что он может одинаково результативно учиться и выполнять профессиональные задачи. Именно в это время на новичка обычно готовы тратить время и усилия, чтобы максимально быстро и эффективно ввести в работу – и такую редкую возможность нужно использовать по полной программе.

Только когда юниор набирается опыта и готов проявить самостоятельность в решении задач, он переходит в разряд middle-разработчик. Обычно такие разработчики не требуют сильного контроля со стороны старших и способны сами определять направление и метод реализации задач, которые им ставит руководитель. На этом этапе программист своими силами пишет и тестирует порученные ему компоненты системы, а также – нередко, но не всегда – отвечает за юниоров. Причем не так важно, сколько времени прошло с прихода человека в компанию – переход к middle-позиции обычно связан, прежде всего, с качеством и скоростью выполнения задач. Главное – избежать здесь «звездной болезни» и не прерывать процесс образования и самообразования: участвовать в профильных семинарах, вебинарах, проходить квалификационные курсы и экзамены.

Пожалуй, переход от middle к senior-разработчику – самый сложный. Ведущий разработчик должен не только уметь проектировать продукт «с нуля» и решать любые возникающие на проекте задачи с применением различных способов, но и быть способным взять на себя ответственность за итоговый продукт. Только заработав авторитет в компании, доверие младших сотрудников и руководства, а также доказав, что он готов день за днем показывать одинаково качественный результат работы, программист может ставить задачи другим сотрудникам.

senior developer что такое. Смотреть фото senior developer что такое. Смотреть картинку senior developer что такое. Картинка про senior developer что такое. Фото senior developer что такое

руководитель отдела разработки REG.RU

Есть разные подходы к определению уровней junior/middle/senior. HR часто привязывают эту градацию к количеству лет опыта — это самый простой, понятный и неправильный способ. В некоторых компаниях, особенно больших или имеющих сложную предметную область, к этим уровням привязываются большие списки конкретных технических компетенций, но они для каждой компании свои. Мы в REG.RU на первое место ставим уровень самостоятельности и задач, которые разработчик может выполнять.

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *