Що має знати junior, middle, senior розробник: відмінності рівнів та як зростати

Ким ти бачиш себе через 5 років? Рекрутери та HR-менеджери не втомлюються ставити це питання, а кандидати продовжують стримано відповідати: middle, senior, team lead.

Але який шлях до цих професійних рівнів? Що потрібно зробити, щоб вирватись із позиції junior та з гордістю написати в LinkedIn middle? І як виглядає подальший карʼєрний розвиток? Чим middle принципово відрізняється від senior? Відповідаємо на ці запитання в статті та розбираємо ключові скіли розробника на кожному етапі.

Як стати junior розробником?

Для початку розберемось у термінах. У загальному розумінні junior — це новачок із мінімально необхідним багажем знань для самостійного виконання завдань. Для кращого розуміння поділимо junior-спеціалістів на 4 категорії:

  1. Стажер (trainee) – Це людина, яка знаходиться за крок до того, щоб стати junior-розробником. Trainee вже знають основи мови програмування, однак застосовувати її для розв’язання реальних задач ще не вміють. Кожна задача має бути розписана покроково від А до Я. Здебільшого, це стажування. Тобто trainee працює на досвід, але про фіксовану зарплату поки не йдеться.
  2. Junior-новачок. Це стадія, на якій junior отримує перший офер на фултайм, а разом із тим свої перші реальні задачі. Такий розробник має достатньо знань, щоб виконувати прості задачі без детального опису. Новачок вміє працювати з документацією та знаходити в ній потрібну інформацію. Головні задачі на цьому етапі — «набивати власні шишки», вчитися в досвідчених колег і ставити багато запитань.
  3. Middle junior developer. На цьому етапі вже можна купувати футболки з айтішними приколами. Випробувальний термін за плечима, а всі процеси командної розробки вже зрозумілі. Тепер цьому спеціалісту можна давати задачу та не контролювати її виконання протягом дня. Самостійно декомпозувати задачі такий junior ще не вміє, але вже ставить більш глибокі та конкретні запитання.
  4. Strong junior. Це категорія, на якій спеціаліст за технічними скілами вже middle або дуже близький до нього. Останнє, чого не вистачає, — це суттєвий досвід у вирішенні бізнес-задач.

Як стати middle developer?

Middle — це програміст, який, на відміну від junior-спеціаліста, уже вміє розв’язувати свої проблеми самостійно. Але старші колеги можуть допомогти, якщо виникли труднощі, з якими middle не може до кінця розібратися без допомоги.

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

Hard skills

  • Розуміння технологій, які використовуються в роботі. Middle має глибоко розбиратись у програмі, яку пише. Важливо розуміти, як працюють певні конструкції мови, і вміти пояснювати це іншій людині простими словами.
  • Проведення code-review. Вміння розібратись у чужому коді — чудовий спосіб поділитися власним досвідом. Крім того, це дозволяє зрозуміти загальну структуру програми та побачити місця, які можна покращити.
  • Вміння декомпозувати задачі. Зазвичай middle програміст пише код довше, ніж junior. Це повʼязано з тим, що досвідчений спеціаліст спочатку має розбити свою задачу на декілька послідовних етапів і відповісти собі на запитання, чому план виглядає саме так. Надалі це допоможе аргументувати свої рішення. Також це тренує вміння розбиратись у чужому коді.
  • Надивленість. Для того, щоб приймати правильні рішення, необхідно побачити безліч поганих і хороших рішень інших розробників. Middle (власне, як і спеціаліст будь-якого рівня) має бути в контексті всього, що відбувається в індустрії: технології, практики, успіхи та провали.
  • Розуміння алгоритмів і того, де їх можна застосовувати. Світ програмування змінюється дуже швидко, але стабільними залишаються алгоритми. Важливо розуміти причинно-наслідкові звʼязки роботи певних речей, а також застосовувати алгоритми на практиці, замість того, щоб мучити себе сухим зазубренням.
  • Вміння писати зрозумілий код. Досвідчений розробник завжди пише простий код, який буде зрозумілий колегам.

Soft skills

  • Самостійність
  • Вміння бачити вимоги бізнесу
  • Розуміння кінцевої мети проєкту
  • Класні комунікативні навички
  • Рівень англійської Upper-Intermediate та вище
  • Вміння ясно доносити свої думки
  • Прагнення до подальшого карʼєрного розвитку

Як стати senior розробником?

Senior developer — це сильний фахівець, який володіє знаннями не тільки з програмування, а й із суміжних галузей. Починаючи з цього рівня, програміст може не лише самостійно працювати, а й вести проєкти.

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

Шлях до цієї позиції довгий та складний. Досвід — це не те, що завжди можна виміряти в роках, але в середньому до рівня senior можна дійти за 5-7 років інтенсивної роботи.

То що ж потрібно мати/знати/вміти перед тим, як подаватись на performance review на цей професійний рівень?

  • Досвід. Головний показник досвідченості — успішно запущені IT-продукти, які працюють та розв’язують певну задачу бізнесу.
  • Технічні скіли. Senior створює та продумує архітектуру проєкту, пише інструменти для вирішення завдань у розробці та фреймворки, якими користуються джуніори та middle-спеціалісти. Від senior-розробника вимагають не лише знайти рішення, а й переконати в його правильності замовника та команду.
  • Розуміння всієї картини проєкту. Для однієї задачі існує безліч рішень, але саме senior-розробник здатний визначити, яке є оптимальним у конкретному випадку.
  • Комунікативні навички. Senior програміст часто веде проєкти самостійно, тому дуже важливо вміти опрацьовувати ТЗ (технічне завдання) замовника, ставити правильні запитання, встановлювати терміни виконання та вибудовувати план робіт. Крім того, робота в команді все ще залишається надважливою складовою. Senior вміє організувати робочий процес та не лякається таких термінів, як Agile, Scrum та Kanban.
  • Навички ментора та інтервʼюера. Підбір персоналу та навчання новачків часто лягає на плечі senior-розробника. Досвід дозволяє визначити, які запитання ставити, щоб виділити сильні та слабкі сторони кандидата, а також як організувати робочий процес для тих, хто вже пройшов співбесіду.

А що далі? Куди зростати senior?

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

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

Куди може розвиватись senior-розробник?

Техлід (Tech Lead)

Також CTO (Chief Technical/Technology Officer) або CIO (Chief Information Officer). Це спеціаліст, який будує архітектуру для всієї команди та є найсильнішим розробником у команді. Саме техлід обирає технічне вирішення завдання: пропонує використовувати певні фреймворки, технології та бібліотеки. До обовʼязків також входить перевірка коду та вирішення найскладніших чи найвідповідальніших технічних завдань.

Тімлід (Team Lead)

Це досвідчений програміст і хороший менеджер одночасно. Основне завдання — комбінувати технічно грамотні рішення з управлінням командою.

Проджект-менеджер (Project Manager)

Спеціаліст, який координує проєкт, організовує взаємодію між відділами, керівниками та замовниками. У невеликій компанії один спеціаліст може поєднувати в собі роль тімліда та проджекта.

ІТ-архітектор

Розробник із великим досвідом реалізації комерційних проєктів, який вміє закладати архітектуру (каркас) складної ІТ-системи. Головне завдання IT-архітектора — знайти оптимальне рішення між потребами замовника та можливостями команди.

Можна довго дискутувати щодо того, скільки часу потрібно, щоб дістатися карʼєрних вершин. Але в кожного свій темп і свої цілі. Незмінним залишається одне — в ІТ майже неможливо вичерпати себе та досягти стелі. Постійний розвиток, прагнення до крутих проєктів, драйвова команда, амбітні цілі та чітке розуміння їх втілення — це і є план реалізації власного професійного потенціалу.

Якщо тобі подобається IT сфера та ти тільки думаєш про карʼєру в айті, пройди наш профорієнтаційний тест. Дізнайся, яка спеціальність підходить саме тобі. Або ж обирай один з наших it курсів та успішно зростай від Junior до Senior і вище 😉

Хто може стати програмістом?

Senior Research Scientist у Industrial Metagenomics, Викладач Комп’ютерної школи Hillel.

Привіт всім! Мене звуть Костянтин Ботнар. Вже майже 8 років викладаю програмування. А почалося все, коли я був аспірантом і читав лекції своїм ровесникам в одному з одеських ВНЗ. Тепер викладаю в Комп’ютерній школі Hillel, веду курс Introduction: введення у програмування. Хочу трохи розвіяти міфи навколо самої затребуваної професії 21 століття і розповісти, хто такі програмісти і чим вони займаються.

Випускники виходять у вільне плавання

Тижпрограмміст, або Що таке особливий склад розуму

Мабуть, це найпоширеніший міф. Кажуть різне: що у програмістів якось по-іншому влаштований мозок, що вони — відчужені і замкнуті. І без цього успішним професіоналом не стати.

Чи це правда? Частково. Але успішний програміст не завжди зобов’язаний бути снобом. Набагато важливіше:

  • Вміти працювати у команді. Незалежно від того, з чого починати: веб-програмування, створення мобільних додатків, верстка і багато іншого — це командна робота. Тому без цього — нікуди.
  • Розуміти, що таке пріоритет і як правильно його розставляти. Навіть в найпрестижнішій компанії програмістам часто падають завдання в стилі «Зроби зараз, а це ще вчора треба було, а ось тут — швидко і тільки підправити». Структурування задач — одна з найважливіших навичок крутого проггера.
  • Володіти феноменальною старанністю. Ні, в офісі від дзвінка і до дзвінка сидіти не доведеться, а от проводити багато часу за ноутбуком або комп’ютером — точно. Саме тому айтішників і вважають нелюдимими: просто поки всі відпочивають, більшість з них вважає за краще попрацювати.
  • Не боятися вдосконалюватися і вчитися новому. Мови програмування застарівають, потрібно вчити нові, мобільні додатки створюються на нових платформах, кожен день з’являються десятки сервісів. Якщо хочеться стати хорошим програмістом — потрібно бути гнучким і готовим прокачувати свої навички.
  • Любити свій комп’ютер. Тут і додати більше нічого. Ваша машина — це основний робочий інструмент.

Уже ці навички можуть принести стабільний і непоганий дохід. А що якщо додати сюди ще професійні навички і освіту?

Що потрібно знати програмісту

Дивно, але роль математики в житті проггера сильно переоцінена. Так, ця наука — базова, і знання вишмата може стати хорошим фундаментом для побудови успішної кар’єри. Але це далеко не головне, з чого потрібно почати вивчення програмування. Навіть без математичних знань і технічної бази можна побудувати кар’єру крутого програміста. У процесі навчання у комп’ютерній школі можна отримати абсолютно всі знання, реально необхідні хорошому фахівцю.

Рекомендуємо курс по темі

В деталях — істина

Кар’єра в IT — це велика праця, з якою можна впоратися лише володіючи високою уважністю. Є безліч сфер, де посидючість також важлива — це хірургія, ювелірна справа, різні виміри. Але в програмуванні цей навик практично базовий.

Самодисципліна, уважність і працьовитість — ось три кити, на яких стоїть кар’єра успішного програміста у всесвітньо відомій компанії. Просто так сидіти за ноутбуком не вийде, як і скролить стрічку в соціальних мережах, ставити лайки і дивитися відео.

До чого потрібно бути готовим, починаючи працювати програмістом:

  • Навіть прості завдання іноді вимагають величезної кількості часу. Звичайно, потім їх можна буде вирішувати набагато швидше, але спочатку доведеться дуже напружуватися для пошуку вирішення проблеми.
  • Як програмувати — це не не впасти, а зуміти піднятися. Будь-яка невдача на шляху, злетів код, пропуск змінної — це просто сходинка до успішного майбутнього. І навіть якщо сайт ліг, то не можна його кинути і просто піти. Потрібно підняти свій багаж знань і досвіду і знайти ту саму змінну.
  • З чого почати програмування: пам’ятати, що з першого разу навряд чи вийде. Ні хороший сайт, ні зручний мобільний додаток, ні навіть чат-бот. Помилки в програмуванні — це абсолютно нормально, і я б навіть сказав, що корисно. Мої найкращі випускники витрачали на пошуки рішення і реалізацію своїх проектів по кілька сотень годин. І писали правильний код. Зате потім для них це завдання було чимось порівняно з ребусом в дитячих книжках.

Алгоритми — це важливо

Все в програмуванні ґрунтується на алгоритмах. Якщо в цілому, тобто поняття декомпозиції. Це розбивка великих і складних цілей на маленькі підціли. Або максимальне спрощення поставленого завдання. В результаті дроблення проблема вже не здається такою складною, а її рішення як ніби лежить на поверхні.

Ось таке ставлення до речей називається алгоритмічним мисленням. Впізнали себе? Вітаємо! Тоді шлях програміста — якраз для вас! Залишилося тільки додати необхідних знань і досвіду.

Але часто значення алгоритмів і вміння їх правильно скласти просто недооцінюють. Як приклад, спробуйте скласти алгоритм для прибирання в квартирі або приготування кави. А тепер уявіть, що в програмуванні абсолютно для будь-якого завдання потрібно готувати десятки команд і умов, інакше вони просто не будуть виконуватися.

Далеко не всі мислять ось такими алгоритмами. Хтось візуалізує образи, інші представляють абстрактні моделі. Вони, звичайно, можуть скласти алгоритм, але це буде плодом довгої і наполегливої ​​роботи, але ніяк не таланту і природної роботи їх мозку. В такому випадку, може, є сенс знайти себе в професії, пов’язаної з творчістю або комунікаціями?

Програміст: очікування і реальність

Як стати програмістом — стати командним гравцем. Часто айтішникам потрібні помічники, однодумці, підтримка. У робочому середовищі він постійно знаходиться в контакті з замовником, готує тестові завдання, стверджує їх.

У сфері IT одиночці вижити не так-то просто. Пам’ятайте, чим раніше зможете вийти зі своєї кімнати і продати свій проект, тим швидше піднімітеся по кар’єрних сходах.

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

  • Ніхто не встав і не написав сайт за один день.
  • Немає тих, хто зараз заробляє мільйони, використовуючи старі знання.
  • Для самовдосконалення потрібно небагато: бути собою і вдосконалюватися.

Кожен проект — нове середовище, невивчені завдання, оновлена ​​команда. Можна, звичайно, відступити. Але тоді не можна стати IT-гуру. Пориньте в цей досвід, зачерпніть з нього щось нове для себе, наберіться досвіду і знань.

У програмуванні не вийде виїжджати на знаннях, отриманих 10 років тому. Занадто рухливе середовище. І дуже великий попит на динамічних і гнучких професіоналів. Тому бажаю завжди тримати руку на пульсі і відповідати часу, в якому бажаєте працювати.

Займайтеся улюбленою справою

Банально, але без цього ніяк. Програмування — це те, що повинно викликати у вас тремтіння в колінах і бажання закінчити вихідні і приступити до роботи. Адже якщо ви не будете захоплюватися своєю працею, то як тоді створите шедевр? Хороший програміст залишає в проекті частинку себе. Не тільки час або знання, а й трохи любові до спільної справи.

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

Senior Research Scientist у Industrial Metagenomics, Викладач Комп’ютерної школи Hillel.

Як стати програмістом: самонавчання, курси чи університет?

Однією з найперспективніших професій в сучасному світі є – програмування. Ми не можемо уявити своє життя без багатьох технологій, що полегшують роботу людини. А програміст – це один з тих людей, що забезпечує нам ці технології, догляд за ними та постійне їх оновлення.

Всіх програмістів поділяють на такі види: прикладні, що займаються створенням загальної моделі, системні, що розробляють саме ядро проекту і драйвери, і веб-програмісти, що створюють сайти і роблять їх верстку.

Що ж краще обрати для того, щоб стати програмістом?

1. Університет
Що потрібно, щоб поступити на програміста? Якщо ви любили в школі англійську та математику, багато часу проводили за комп’ютером, то цілком можете подавати документи на програміста в університет. Там ви зможете отримати основи програмування та алгоритмів. Це дасть вам загальне розуміння цієї професії. Мінусом стане лиш те, що весь курс триватиме 5-6 років (магістратура) чи 4 роки (бакалаврат).

2. Самоосвіта
Якими б хорошими не були викладачі в університеті, вам все одно доведеться самому братися до підручників та практики. Тому більшість студентів поєднують університетську освіту та самостійне засвоєння матеріалу.

Це буде також ідеальним варіантом для тих, то в університеті отримував іншу спеціальність, а вже потім знайшов себе в сфері інформаційних технологій. Всі книжки, відеоуроки та посібники можна знайти в інтернет-ресурсах доволі просто. Рекомендуємо читати вам мовою оригіналу, а це здебільшого – англійська. Тут вам важче буде вже розібратись у всьому на практиці. Добре було б, якби ви мали досвідченішого програміста, який би вказував на ваші помилки. Таких людей називають менторами.