Перейти к содержимому

Как делятся программисты по категориям

  • автор:

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

Классификация программистов по их ценности для бизнеса главное изображение

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

  • junior — знает, что есть;
  • middle — знает, что можно;
  • senior — знает, что нужно.

Расшифровка на примере ситуации — когда вы сказали программисту что нужно сделать:

  • junior — возьмется делать, по ходу будет задавать вопросы, как это сделать, и если ему внятно объяснять как нужно — сделает;
  • middle — поисследует и предложит варианты, как это можно сделать, возможно порекомендует оптимальные, получив ваше одобрение — сделает;
  • senior — спросит — а зачем это делать, чего вы хотите добиться? Вы расскажете ему о своих целях. Он исследует вопрос, потом возможно поправит вас, скажет, что вот этого хотеть не надо, а вот другого — надо, приведет аргументы. Когда согласие насчет целей достигнуто, он найдет что и как для этих целей лучше сделать (вполне может оказаться, что это будет совсем не то, что вы предлагали изначально), и сделает в оптимальном виде.

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

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

Итак, как быстрее расти:

  • во-первых, старайтесь никогда не делать такой работы, смысла которой вы не понимаете. Если вам поставили очень конкретную задачу (типа, «добавить столбец в таблицу») и не объяснили как это будет использоваться — постарайтесь это узнать. Где именно будет место этой работы в общей картине проекта, для чего это нужно делать, и почему выбрано именно такое решение;
  • во-вторых, привыкайте к работе с неопределенностью. Если вы попадаете в ситуацию, в которой вам непонятно что делать, то не спешите сразу идти к начальнику или к заказчику с вопросом «что делать». Постарайтесь сначала найти варианты решений самостоятельно. Подумайте, в чем цели работы, какие есть варианты, какие у них плюсы и минусы. Вы все равно можете потом пойти к начальнику с вопросом «что делать», но вы уже придете к нему с готовыми вариантами решений, с их анализом, и возможно с вашей рекомендацией — давайте сделаем вот это;
  • в-третьих, привыкайте брать на себя ответственность. Не во всех компаниях есть для этого подходящие условия (в нашей — есть :), но постарайтесь их найти. Постарайтесь добиться того, чтобы под вашу ответственность был выделен какой-то участок проекта, и вы могли в рамках него принимать решения сами. Пойти к начальнику спросить «что делать» — это проще, но это будет означать, что решение примет он. А вам надо учиться делать это самостоятельно.

На этом пока все 🙂 Если у вас есть комментарии или вопросы к написанному — буду рад обсудить, здесь в комментариях или в чате Хекслета, можно в Твиттере .

Junior, Mid- и Senior-ы – в чем разница?

В мире IT-специалистов принято делить уровень подготовки и профессионализма разработчиков на три уровня: Junior-разработчик (младшего уровня), Middle-разработчик (среднего уровня) и Senior-разработчик (старший разработчик). На первый взгляд, эти термины очевидны, но на практике оказывается, что все понимают их по-разному. Порой сами разработчики не всегда уверены, как определить свой уровень или уровень коллег из команды. Но если провести аналогию, все становится сразу понятнее. Давайте попробуем сравнить разработчиков с… водителями! Ведь каждый день многие из нас садятся за руль и хорошо понимают эту «кухню» и правила игры на дороге.

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

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

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

На следующий уровень выйдет Junior, который:

  • Стремится к саморазвитию
  • Энергичен и целеустремлен
  • Умеет с холодной головой воспринимать критику

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

Важные качества Middle-разработчика:

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

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

Как понять, каким уровнем навыков обладает разработчик? Существуют ли какие-либо формальные критерии?

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

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

Например, не может быть старшего разработчика с 2-летним опытом работы. С другой стороны, есть много младших разработчиков с опытом работы более 5 лет. Стоит отталкиваться от Soft и Hard Skills разработчика. Но сухие теоретические знания — это не ключевое отличие, а лишь один из факторов. Программировать — это не общаться с компьютером. Программировать — общаться с людьми и отдавать указания компьютерам.

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

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

Заключение

Разница между Junior, Middle- и Senior-специалистом основывается не только на годах опыта. Да, Senior-разработчики знают значительно больше остальных, но также важно обладать несколькими другими умениями.

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

Junior-разработчику нужно учиться писать «легкий» для восприятия код. Важно вырваться из рутины и творить код, словно художник. Junior должен не бояться брать сложные задачи на себя и совершать ошибки (это неотъемлемая часть карьеры). Для поднятия до уровня Middle следует полностью овладеть своим техническим стеком и развивать Soft Skills. Также опытные разработчики стараются помогать своим коллегам стать более грамотными и тоже набираться опыта. Ведь суть команды — это помощь, поддержка, общение и, конечно, создание первоклассного продукта!

Какие бывают виды программистов ? Главные отличия

Какие бывают программисты? Описание видов программистов, их главные отличия. По каким категориям делятся IT-специалисты? Про frontend, backend и fullstack в нашем обзоре.

Найти сотрудника
Заказать звонок

Какие виды программистов бывают? Главные отличия

В широком смысле виды программистов делятся на системных, прикладных и тестировщиков. Основные отличия видов программистов в их функционале:

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

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

Отдельные специализации различаются по главным функциям, применяемым технологиям. Большую группу востребованных специалистов составляют веб-разработчики. Условно их делят на три большие подгруппы: frontend, backend, fullstack. Давая описание этих видов программистов, достаточно сказать:

  • frontend отвечает за все то, что видит конечный пользователь: интерфейс, интерактив;
  • backend разрабатывает серверную «начинку», его работу не видно конечному пользователю;
  • fullstack занимается одновременно клиентской и серверной частью.

Разобравшись, какие виды программистов бывают, необходимо дать краткую характеристику их функций.

  1. Фронтенд-разработчик совмещает функционал кодировщика и верстальщика. Он приводит внешний вид страниц, приложений в соответствие с дизайн-проектом. Его компетенции включают: HTML, интерактив, CSS стили страниц, Java.
  2. Бэкенд-разработчик ответственен за взаимодействие сервера, приложения, баз данных. Основными рабочими инструментами являются языки Python, Java, PHP, а также MySQL.
  3. Фуллстек-разработчики совмещают навыки фронтенда и бэкенда. Они обеспечивают подключение посредством терминалов к серверам, управляют хостингом, создают бэкенды, базы данных, занимаются версткой, проектированием макета в редакторах.

Создание игр

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

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

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

Помимо перечисленных, также выделяются по виду деятельности:

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

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

Системный разработчик

Сфера программного обеспечения требует от IT-работника определенного уровня владения языками, кросснаучными знаниями на стыке математики, информатики, физики. Системные разработчики — одни из наиболее востребованных в мире. Их знания требуются практически во всех сферах IT, спрос на них не падает десятилетиями. Они отвечают за сложное программное обеспечение, а чтобы вырасти до системного работника, требуются годы обучения, практики.

DevOps-инженер

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

Junior, middle, senior

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

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

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

#

Найдем ИТ-специалистов любого уровня и направлений

  • Работаем без предоплаты
  • Первый кандидат через 3 дня
  • Финансовая гарантия в течение 3 месяцев

Программист: типы профессии, зарплаты, как стать и где учиться

Программист: типы профессии, зарплаты, как стать и где учиться

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

Кто такой программист

Программист — это разработчик алгоритмов и компьютерных программ. Он пишет их на специальных языках. Во всём мире программисты очень востребованы, их работа хорошо оплачивается: зарплата программиста в России в диапазоне 80 000–220 000 рублей, тимлиды — TeamLead и техлиды — TechLead (специалисты высшей квалификации) получают больше: 250–400 тысяч рублей. Пройдите короткий бесплатный тест, чтобы понять, можете ли вы быть программистом.

Как узнать, подходит ли вам профессия «Программист»?

Тест на профориентацию

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

  • Черная пятница в Skillbox: месяц инвестиций в себя!

Черная пятница в Skillbox: месяц инвестиций в себя!
Получи скидку, курс в подарок и гарантию трудоустройства, чтобы стать востребованным специалистом.

Мечтаешь создать свою игру?

Мечтаешь создать свою игру?
Воплоти мечту в реальность вместе с XYZ School!
Читайте также

Профессия «Программист PHP»

Специализации программистов

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

  • НОВОГОДНЯЯ РАСПРОДАЖА SKILLBOX

НОВОГОДНЯЯ РАСПРОДАЖА SKILLBOX
При покупке курса со скидкой до 60% выберите второй курс в подарок.

Яндекс.Практикум, скидки 20%

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

Скидки 70% и подарки на сумму до 260 000 ₽

Скидки 70% и подарки на сумму до 260 000 ₽
Покупаете один курс — получаете два. Год английского от Skyeng +1 профессия в подарок.

Прикладные программисты

Разрабатывают программное обеспечение прикладного характера — игры‚ бухгалтерские программы‚ редакторы‚ мессенджеры и т. п. К области их работы относится создание программного обеспечения для ERP и CRM системы вроде 1С, систем видео- и аудионаблюдения‚ пожаротушения или пожарной сигнализации и т. п. Также они адаптируют уже существующие программы под нужды конкретной организации или пользователя.

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

  • Web-программист;
  • 1С-программист;
  • Android-разработчик;
  • Разработчик игр (GameDev).

Системные программисты

Разрабатывают операционные системы, роботов, работают с сетями, пишут интерфейсы к различным распределенным базам данных. Они пишут код для «железа». Системные программисты относятся к числу самых редких и высокооплачиваемых. Их задача состоит в том‚ чтобы разработать системы программного обеспечения (сервисы)‚ которые‚ в свою очередь‚ управляют вычислительной системой (куда входит процессор‚ коммуникационные и периферийные устройства). Также они поддерживают работу созданных ими систем (драйвера устройств‚ загрузчики и т. д.).

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

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

Со стороны профессия выглядит творческой, высокооплачиваемой и интересной. Однако в современном мире программист становится элементом конвейера. Его задача – создавать программные продукты для бизнеса и не только: в срок, без сбоев и лишней лирики. И место сотрудника на конвейере ПО зависит от его квалификации.

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

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

Можно ли оставаться творцом, работая на конвейере? Мой ответ – да. Программист создает и сразу наблюдает плоды своих творений. Это важно для любой профессии, и программирование не исключение. Это похоже на строительство дома, но виртуального — программист легко сносит этажи, только что им построенные. А ещё через несколько минут результатами твоей работы будут пользоваться реальные люди.

Денис Горбачев

Денис Горбачев
Руководитель группы разработки финтех-сервиса «Выберу.ру»

Зарплата программиста

Даже не самый продвинутый специалист может найти работу в соответствии со своим уровнем знаний, а затем постепенно учиться и набираться опыта. Зарплата стажера — около 50 000–80 000 рублей. Штатный программист в компании среднего уровня (не IT) получает от 120 000 до 200 000 рублей. Зарплата ведущего программиста — 180 000–300000 рублей.

Зарплата руководителя IT-отдела колеблется в диапазоне от 150 000 до 350 000 рублей – в зависимости от компании. Хороший программист может стать руководителем крупного проекта по разработке ПО, в этом случае уровень доходов достигает 500 000 рублей и выше.

Зарплата программиста на январь 2024

Информации о зарплатах предоставлена порталом hh.ru.

Россия 30000—130000₽
Москва 30000—100000₽

Где работают программисты

У программистов широкая сфера приложения профессиональных знаний:

  • IT-компании;
  • банки;
  • заводы;
  • транспортные компании;
  • коммерческие предприятия;
  • государственные структуры;
  • ФСБ, МВД, ФСО;
  • web-студии;
  • игровые студии;
  • научно-исследовательские центры, университеты.

Примеры компаний с вакансиями программиста

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

Профессия «Веб-программист»

Требования к программистам

Список требований к программисту:

  • знание английского языка upper-intermediate (выше среднего);
  • умение работать в команде;
  • грамотная устная речь, умение доносить мысль до собеседника;
  • умение мыслить абстрактно;
  • знание математики (зависит от сферы, например, Gamedev);
  • ответственность, умение определять и укладываться в сроки;
  • готовность к постоянному самообучению;
  • желательно высшее техническое образование.

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

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

Почему молодому поколению куда проще «войти в айти»? Сегодня дети вырастают в насыщенной информационной среде и, как правило, знакомы с высокими технологиями «с пеленок».

Денис Горбачев

Денис Горбачев
Руководитель группы разработки финтех-сервиса «Выберу.ру»

Как стать программистом

  • Пройти курсы или обучиться самостоятельно.
  • Пройти практику – пет-проект или практика при курсах.
  • Найти постоянную работу в статусе junior.
  • Продолжать учиться самостоятельно и в коллективе.
  • Бесстрашно браться за новые задачи.

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

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

Отлично, если начинающий программист получил базовые знания вуза. Речь не только о мехмате МГУ – в стране много университетов, которые готовят кадры для будущей профессии. Они есть не только в столицах, но и в Томске, Новосибирске, Казани, Самаре. Знаю, что сильные выпускники выходят из Петербургского ИТМО и Бауманского университета.

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

Денис Горбачев

Денис Горбачев
руководитель группы разработки финтех-сервиса «Выберу.ру»

Советуем ознакомиться с мнением экспертов о том, как стать программистом с нуля.

Карьера программиста: джун, мидл, сеньор

Карьера программиста имеет три ступени: Junior («джун»), Middle («мидл»), Senior («сеньор»).

Джун, джуниор (Junior), начинающий программист

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

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

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

Чтобы чувствовать себя увереннее на собеседовании, нужно приобрести кое-какой опыт работы. Прекрасным примером такой работы может быть собственный pet-проект (например, свой сайт или самописная консольная утилита). К собеседованию нужно готовиться тщательно, потому что много и глубоко спрашивают, в том числе могут дать логическую задачу. Старайтесь не быть поверхностным. Это нормально, если пройдёте много собеседований прежде, чем вас возьмут на работу джуном. Начинающих очень много.

Мидл (Middle), программист среднего уровня

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

  • в языке программирования – его особенностях, недостатках, предельных возможностях;
  • одном или нескольких фреймворках;
  • всех основных методологиях разработки (SOLID, DRY, KISS, YAGNI, DIE, DDD, TD).

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

Сеньор (Senior)

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

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

Сеньор может стать руководителем группы программистов (тимлидом), менеджером IT-проекта, IT-директором предприятия и т. п.

Обучение на программиста

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

Программирование можно изучать на разных направлениях подготовки:

  • вузы:
    • «Прикладная математика и информатика» 01.03.02;
    • «Математика и компьютерные науки» 02.03.01;
    • «Информатика и вычислительная техника» 09.03.01;
    • «Программная инженерия» 09.03.04 и другие направления, связанные с ИТ и разработкой ПО.
    • «Информационные системы и программирование» 09.02.07;
    • «Программирование в компьютерных системах» 09.02.03;
    • «Прикладная информатика (по отраслям)» 09.02.05.

    За качественным образованием программиста необязательно ехать в столицы. В регионах тоже есть вузы с сильными ИТ-направлениями.

    Ассоциация компаний – разработчиков ПО РУССОФТ составила рейтинг российских вузов по подготовке ИТ-специалистов. Уровень обучения программистов в университетах оценивали директора отечественных софтверных компаний. В топ-50 по мнению работодателей вошли более трех десятков региональных вузов.

    Топ-10 вузов для программистов по версии РУССОФТ:

    1– 2. МГТУ им. Баумана, ИТМО (вузы делят первое-второе место с одинаковым количеством рейтинговых баллов).

    1. СПбГУ.
    2. МФТИ.
    3. МГУ.
    4. СПбПУ (Политех Петра Великого).
    5. МИФИ.
    6. НГУ (Новосибирск).
    7. ЮФУ (Ростов-на-Дону, Таганрог).
    8. НГТУ (НЭТИ), Новосибирск.

    Еще один рейтинг вузов, выпускающих программистов, сформировал Superjob по уровню зарплат молодых ИТ-специалистов.

    Топ-10 ИТ-вузов по версии Superjob:

    1. МФТИ.
    2. МГТУ им. Баумана, ИТМО, МИФИ (выпускники этих вузов получают одинаковые зарплаты).
    3. МГУ.
    4. НИУ ВШЭ (Московский институт электроники и математики им. Тихонова), СПбГУ.
    5. НГУ (Новосибирск).
    6. МЭИ.
    7. МАИ.
    8. МИСиС.
    9. ННГУ им. Лобачевского.
    10. СПбПУ (Политех Петра Великого).

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

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

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