Моя доповідь про розвиток Senior розробника на ThinkPHP#13 таки зачепив ком’юніті, і я вирішив закріпити «успіх» і оформити мої роздуми в даній статті. Стаття вийшла досить об’ємною і практично не прив’язана ні до PHP, ні до якої іншої технології, так що думаю буде цікава досить великої аудиторії.

Але для початку…

Хто такий сеньйор?

Ось це цікаве питання, і можливий холиварный відповідь ;)… Тільки мені не хочеться йти цією стежкою, слизько, заплюють, затопчуть, так що я свідомо залишу тільки саму суть:

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

Так, і тут, звичайно, можна посперечатися про те, що досвіду може бути і п’ять, і десять років, просто до середньо-зваженого «вісім» ми всі разом прийшли за час обговорення на ThinkPHP, це зовсім не істина в останній інстанції, скоріше навіть навпаки – у кожного своя пісочниця.

З вищеописаного твердження випливає, що можна зустріти зовсім юного Senior розробника, якому 28-м років, і це за умови, якщо він влаштувався на роботу в компанію на третьому курсі Вузу (або навіть раніше)!

Ось зараз у «двадцатитрехлетних сеньйорів» може бомбонути…

Тут і там

За стільки років розробки можна вивчити практично всі тонкощі певної мови програмування, і цілком природно задивлятися на суміжні мови програмування, і так – для Senior PHP розробника нормально знати JavaScript, добре React/Angular, відмінно NodeJS. Це природне бажання розширити свій кругозір, не стримуйте себе — перевірте свій багаж знань, є там закладочку інших мов програмування?

А ось тут питання вже для Senior PHP розробників: — А ви впевнені, що підкорили всі висоти PHP? Ви копали вглиб мови? А ось ці гарні статті про «внутрішню кухню» PHP, ви вже читали?:

  • Масиви в РНР 7: хеш-таблиці
  • Трамплін виклику магічних функцій в PHP 7
  • Ламаємо збір сміття та десеріалізацію в PHP
  • Огляд розширення OPCache для PHP

Ні, це не прихована реклама компанії MailRu, просто вони захоплюються перекладом дуже хороших статей для PHP розробників

Експерт

Прокачавши свій рівень до певних висот, ви станете помічати, що до вас будуть прислухатися все більше і більше людей, а з часом і зовсім почнуть кликати виступати на конференції і митапы — в цей момент я можу вас привітати — ви стаєте експертом в своїй області. Можливо, спектр ваших знань не буде широкий, але на своєму місці ви станете одним із тих, хто штовхає IT-індустрію вперед!

Таких дітей називають по різному: експерти, гуру, адепти, євангелісти, бути одним з них не соромно

Щоб далеко не ходити, ось вам наочні приклади для наслідування:

  • Ілля Кантор — людина і пароплав — без нього JavaScript-розробників на наших теренах було б на порядок менше
  • Олександр Макаров — розробник Yii фреймворку, вніс левову частку в популяризацію цього фреймворку в Україні та Росії
  • Махиал Боднарчук — розробник Codeception — завдяки його зусиллям якість коду у багатьох тисячах проектів на PHP відчутно зросла

Мабуть, ачивку «експерта» я можу й собі приміряти за внесок у популяризацію jQuery бібліотеки на сторінках свого блогу і за підручник «jQuery для початківців» 😉

ТехЛид

Качайте свої скіли далі і вище, і ви зможете стати техлидом у своєму проекті, команді або відділі — тут не паханное поле можливостей саморозвитку. Якщо вас цей ярлик спантеличує, то рекомендую прочитати статтю Я техлид. Що робити?.

Бути техлидом все ж в кайф, ви продовжуєте залишатися розробником, і всі ваші обов’язки будуть включати розробку, але не тільки, ось спрощений список ваших обов’язків:

  • Написання коду
  • Рев’ю коду
  • Рефакторинг
  • Налагодження ефективного процесу розробки (CI, CD, etc.)
  • Оцінка трудомісткості проектів і тасков
  • Технічні консультації

Як техлид проекту, ви будете відповідати за розподіл завдань між розробниками, налагодження технічних проблем, і можливо будете виконувати роль архітектора.

Якщо ж ви до техлида відділу доростете, то тут вам ще відповідальності і обов’язків насиплють, і на ваші плечі ляже:

  • Підвищення технічного досвіду розробників
  • Напрацювання готових рішень
  • Участь у співбесідах
  • Введення нових співробітників у відділ
  • Утилізація часу простою розробників

Начебто здається не так багато, але повірте, перший час знайти вільний час буде ой як не просто.

Архітектор

На DOU є ціла серія статей «Кар’єра в IT», і зокрема там описана роль Software Architect — з більшістю тез я погоджуся, з частиною посперечався б, але в будь-якому випадку рекомендую до прочитання 😉

Якщо ж висловлювати ІМХО, то для мене архітектор-це той чоловік, який не лізе ручками в реалізацію, а пояснює розробникам задумане так, що за підсумком заглянувши у вихідний код він буде повністю щасливий.


Кажуть, у природі існують ті, у кого на табличці кабінету значиться «Software Architect», але в Україні таких зовсім мало, та й у моєму практиці роль архітекторів доводилося виконувати техлидам….

Наставник

Тема наставництва-менторства-ітд зараз активно розвивається в IT середовищі, якщо коротко — стати вчителем для одного-двох чоловік не так складно, мало того, більшість Senior розробників вже ведуть підопічних по тернистому шляху IT 🙂 Особисто я рекомендую починати з малого — заведіть аккаунт на Stack Overflow, підключіться до gitter, потім заведіть блог і по трохи відточуйте свою майстерність на довірливих читачів.

Для техлидов/архітекторів/наставників порекомендую книгу «Чистий код» Боба Мартіна; і зовсім неважливо, що вона про Java — для мене як PHP розробника не становило праці читати лістинги коду.

ТимЛид

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

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

Якщо хтось таки вибрав цей шлях, то і для вас знайдеться книжка — Дж. Ханк Рейнвотер «Як пасти котів. Повчання для програмістів, керівних іншими програмістами».

Фрілансер

У фріланса є кілька незаперечних плюсів:

  • Свобода пересування
  • Вільний графік
  • Заробіток

Але при цьому є і ряд мінусів:

  • Свобода переміщення — часто перетворюється в роботу на дому, що не завжди грає в плюс продуктивності, як варіант багато вибирають co-working центри
  • Вільний графік планування робочого дня не найсильніша сторона розробника, а якщо говорити про тиждень, місяць, рік?
  • Заробіток — всі ризики пов’язані з грошима тепер повністю на вас, включаючи лікарняні, відпустки і т. д. і т. п.

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

Моя ачивка «фрілансер» вже давно поросла мохом, свій вибір я вже зробив.

Бізнесмен

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

Існує відповідний сюди термін — «систематична помилка вижив» — ви чуєте тільки вдалі приклади старту компаній, а про скількох ви не чули?

Піти з IT

— Ти можеш піти з IT, але з IT тебе не піде.

Чому люди йдуть з IT? Для тих кого я знаю — ай-ти був одним з можливих варіантів розвитку, і люди йшли за ним до тих пір, поки не приймали рішення щось змінювати у своєму житті і піти по іншому шляху — мистецтво, спорт, фотографія, кулінарія…

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

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

Чоловік

— Створюємо реальності і даємо смисли словами — Анонімний інтернаціонал.

Подивимося на ваші вихідні дані:

  • IQ вище середнього
  • доходи в рази вище середнього
  • можливості на порядок вище середнього

Дуже добре, на вскидку з такими даними ви можете спокійно стати депутатом місцевої ради 🙂 А якщо серйозно — почніть реалізовувати себе в соціумі, можете стартувати з суспільно-корисних робіт над Open-Source проектами, благо серед них є такі, які безпосередньо впливають на наше життя — iGov.org.ua (у них навіть є путівник для початківців).
Якщо ж відволіктися від розробки — ви багато чого зможете, головне не боятися вийти за межі своєї зони комфорту, мало того, ви зможете її розширити, і допоможете оточуючим зробити теж саме, і повірте — стане жити в такому світі набагато комфортніше.

Зовсім несподівано — пошлюся на ководство Лебедєва — § 172. Зона комфорту

Замість висновку

Уявіть себе водієм в потоці машин, ви рухаєтеся, розвиваєтеся, вивчаєте нові технології. Скоріше всього ви рухаєтеся разом з потоком – так комфортно вам і оточуючим, що оточує вас в проекті, в компанії, у вашому ком’юніті. Іноді ви бачите припарковані на узбіччі «втомлені» машини – хтось зупинився, зупинився і відстав у розвитку. А ось хто-то вас обганяє, на новенькій спортивній машинці, на новій технології яку ви вже півроку як збиралися почати вивчати, можливо ви навіть психанете, і обженете пару-трійку машин — ох не дарма ж слухали webinar, знадобилася таки технологія N у вашому проекті. Ось у сусідньому потоці, на сусідній «галері», сповільнився рух, але ви не знижуєте швидкість, ви їсте далі, і спостерігаєте в кюветі ту саму спортивну машинку — хтось поспішив впровадити неперевірену технологію в проект, ризикнув і прогорів, хоча схоже це просто брак досвіду не дозволив впоратися з керуванням. А ви продовжуєте свій шлях.

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

З усього цього запам’ятайте одне — не зупиняйтеся, постійний рух і розвиток — це і є життя.

P. S.

Переглянувши статтю, дайте відповідь на просте питання — скільки років моєму синові? 🙂