Від Shadow developer до Senior у 23. Кілька простих порад, як зростати швидше

Вітання. Мене звуть Роман, мені 23, і зараз я Senior C# Developer у Luxoft, хоча прийшов у компанію як інтерн три роки тому.

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

Дитинство та перші кроки у програмуванні

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

Потім, як став трохи старший, тато показав мені Visual Basic. Він знав, як писати цією мовою, бо теж був програмістом і колись написав інтерпретатор Basic на асемблері. Один чи два вечори ми розглядали Basic, тато написав програму, яка малювала годинник зі стрілками, я на те подивився і забув. І не дивно, мені тоді було 9–10 років.

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

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

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

У коледжі я дізнався багато нового про алгоритми та структури даних, всіляку математику тощо (цікаво, що пройдені в Палаці курси з графіки мені тут знадобились, робив одногрупникам лабораторки з інженерної графіки).

Перша робота

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

Тож я пройшов співбесіду на С++, написавши консольний конвертер валют, і почав викладати Python, фактично не знаючи ні першого, ні другого. З Python я розібрався за два тижні й почав розказувати дітям про програмування. Пропрацював там три місяці.

Трохи важко працювати, коли ти подобаєшся дітям, а повинен подобатись їхнім батькам.

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

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

Досвід роботи у великій компанії

У той час у мене не було навіть сторінки в LinkedIn, але одного разу в Skype мені постукали рекрутери з Luxoft.

Я був такий радий, що мені запропонували спробувати пройти співбесіду, що я про всяк випадок попросився не джуном, а інтерном, щоб уже точно потрапити в компанію і працювати з професіоналами. Ще й вакансія була якраз на те, що мені найбільш до вподоби — C#/WPF, тобто розробка десктопних застосунків, а не веб, як усюди мені пропонували.

От я прийшов інтерном, майже нічого не знаючи в WPF, тільки приблизно розуміючи, як ним користуватись, почав розвиватись. Дали мені ментора, який ставив завдання. Аж раптом надійшли новини від замовника: будете писати на Angular/TypeScript, тобто веб.

Веб так веб, ми ж Agile

«Веб так веб» — подумали ми й почали вивчати, що то за Angular такий. Тут і знадобилось те, що я вивчав усе підряд, бо був невпевнений у собі. В той час як досвідчені мідли й сеньйори вперше бачили CSS і вдруге HTML, про TypeScript взагалі тільки чули, я вже знав, як писати на JavaScript, у який трансформується TypeScript, тож у мене була фора. Залишилося розібратися із синтаксисом нової мови програмування та засобами фреймворку Angular, поки всі інші читали про HTML/CSS/JavaScript. Я пояснював колегам особливості та скидав навчальні відео.

Так і почалися мої робочі будні, я здав інтернський проєкт на C#/WPF, і ми почали опановувати нову для нас технологію. Те, як її налаштовувати, тестувати, як на ній розробляти та інше.

Потім стали розробляти проєкт. Я, як інтерн, займався тим, що ніхто не хотів робити, оформлював документацію про те, як налаштувати середовище, тест-ранер, створення компонентів. Коли діло дійшло до коду, мене «переконали» зайнятися CSS-стилями, бо теж ніхто не хотів цим займатися.

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

Далі з однієї команди зробили дві, набрали ще людей, тут знадобилась документація, яку я писав (вона була потрібна ще неодноразово, коли в компанії інші проєкти переходили на Angular).

Helping anyone who needs my help

Через те що я був інтерном, а потім джуном, у мене був статус «Shadow developer», тобто розробник на підстрахуванні, якого залучають, коли хтось хворіє чи команда не встигає. Але оскільки команди було дві, то я був такою собі ланкою між ними, бо працював, по суті, на обидві. Брав участь у грумінгах обох команд, тому завжди знав, що в них діється, і за потреби міг допомогти. Це було зручно, бо ми майже всі сиділи в одній кімнаті.

Саме тоді за мною закріпилася фраза «Helping anyone who needs my help», і трохи пізніше, як би це не звучало «Рома 15 хвилин». Фраза про 15 хвилин з’явилася через те, що більшість задач були для мене дуже простими, я вже знав, що там робити, або в мене були готові напрацювання. Тому часто мої задачі були вже готові в перший день спринту.

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

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

Немає нічого неможливого

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

Був один програміст, який дуже довго виконував завдання. Коли тимлід тієї команди попросив мене це зробити, то задача була вирішена ледь не того ж дня. Того спеціаліста звільнили. Спочатку дали йому місяць випробувального терміну, однак багато результату це не дало, тож ми попрощались.

Минув певний час, і колеги самі стали звертатися до мене по допомогу.

Робота з профілю

Після закриття проєкту мене підвищили до мідла, і ми почали розробляти програму вже з нашої спеціальності — C#/WPF. Знову стали розбиратися, тепер уже з наявним кодом проєкту. Я писав документацію про його структуру, дивився, як воно там все пов’язано.

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

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

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

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

Спілкування

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

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

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

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

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

Підсумок

Загалом можу відзначити такі важливі пункти в історії мого розвитку:

1. Бути проактивним. Робити більше, ніж від тебе очікують. Часто поміркувати над задачею на 5–10 хвилин більше — вже достатньо.

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

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

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

5. Братись за роботу, яку ніхто не хоче. Це зробить вас незамінним, бо саме ви будете найбільше розумітися в задачах, від яких часто залежить дуже багато.

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

Для загального розвитку

1. Обов’язково треба знайти серію відео про патерни від Дядька Боба (Роберта Мартіна), цікаво, жваво та послідовно розказує про все, що вам трапиться на проєктах.

2. Для дотнетчиків-початківців буде корисно почитати книгу про C# від O`Reilly, а для подальшого розвитку — Ріхтера.

3. Для відпочинку з користю — ютуб-канал Coding Train, там багато відео про реалізацію різних алгоритмів мовами JS та Processing.

👍НравитсяПонравилось4
В избранноеВ избранном2
LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Лучше скажи сколько денег, синьор?

Лайк, якщо ви теж прочитали заголовок і одразу перейшли до коментарів :D

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

Я чото взоржал.

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

Незаменимый джун! Ору просто.

Через те що я був інтерном, а потім джуном, у мене був статус «Shadow developer», тобто розробник на підстрахуванні, якого залучають, коли хтось хворіє чи команда не встигає.

Нет. Шедоу — это когда на собесы и митинги с кастомером выходит один, а работает другой, более дешевый. Бич аутстаффа. На аутсорсе такой фигни нет.

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

Саме тоді за мною закріпилася фраза «Helping anyone who needs my help», і трохи пізніше, як би це не звучало «Рома 15 хвилин»

А ПМ на проекте еще тем чудаком был. Я бы такому за такую организацию воркфлоу прописал бы в щи с вертушки сразу.

Загалом можу відзначити такі важливі пункти в історії мого розвитку

Тут настолько общие фразы, что аж тошнит.

помню в 23 я тоже был сеньором и верил в то что я сеньор.

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

Я через 20 ще не зрозумів...

У каждого свой путь. Вообще как по мне вырасти до настоящего сеньора крайне сложно. В чисто галерных условиях это точно не получится (ну может есть какие-то исключения). Мне помогло несколько лет совмещений работы над продуктом + несколько серьезных проектов на фрилансе в параллели. Почему так? Заставило смотреть на подобные проблемы в разном контексте одновременно. Думаю есть пути попроще, но правда в том что не каждый станет сеньором.

тобто розробка десктопних застосунків, а не веб

как что-то хорошее.

і це зробило мене незамінним.

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

це гордість не дозволяла досвідченим програмістам просити допомоги

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

вже з нашої спеціальності — C#/WPF

Я думал ТС с его продвинутой системой типов и вполне неплохими возможностями в тайп-левел программировании будет конфеткой по сравнению С# который застрял глубоко в 2000-х (особенно тот что в ВПФ), логику ТСа не понимаю.

Наприклад, одного з розробників бентежило те, що ми часто матюкаємось

Но все же чего он хотел от разработки на решетке на этой лигаси штуке. Улыбающихся лиц и вай как всё красиво?

Це зробить вас незамінним,

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

а які наслідки переходу після незамінності на попередньому місці?

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

Чим докажеш що ти синьйор? На бейджику написано інакше

Прошел в ЕРАМчике от трейни до синьёра за 2.5 года не занимаясь всей этой фигней. Для мидла было достаточно через 6 месяцев придти с оффером и выбить промоушен как часть контр-оффера (на мидла ресурсный сам может повысить, никакой ассесмент не нужен). На синьёра тоже пришел с оффером и пинал РМа чтобы на ассесмент попасть. Ну а на ассесменте уже всё от тебя зависит. В моё случае вообще изи прошел, без особых замечаний.

Так что я бы все советы свёл к 3 пунктам, в приоритете:
1. Гоняй английский. На топовых галерах есть очень крутые программы, если заниматься то можно очень хорошо прокачаться.
2. Качай скиллы. Большинство ассесментов это точно такая же игра в опросник как и обычный галерный собес.
3. Приходи с офферами и обсуждай контр-офферы. Хотя многие и не любят принимать контр-офферы, типа ты можешь в какие-то там списки попасть и первым под увольнение в случаи проблем. Но это фигня, сейчас чтобы вылететь с галеры нужно очень сильно постараться, так что нужно пользоваться.

Прошел в «Рога и копыта» от трейни до синьёра за 2.5 месяца.🤦‍♂️🤦‍♂️🤦‍♂️
Это примерно так звучит.
Невозможно стать синьйором за 2.5 года.
Это ты через лет 5 поймёшь.

Прошел в «Рога и копыта» от трейни до синьёра за 2.5 месяца.

Самая большая галера Украины по определению не может быть рога и копыта. Слышал звон да не знаю где он.

Единственная существенная разница для гребца между лычками — зп. Так что вообще пофиг.

галера по определению рога и копыта.

Самая большая галера Украины по определению не может быть рога и копыта

По какому определению?

Может МММ не считаться аферой, если он такой глобальный?

Что-то в люксофте в лычки дешевые, даже если подымали в год по 1000, он имеет сейчас с лычкой сеньора не более 3500, это же днище.
Хотя известно, что сеньорам сейчас меньше 5000 не платят, т.е. если платят, то это не сеньор.

. Бути проактивним. Робити більше, ніж від тебе очікують.

Нарушение пп YAGNI никогда не приводило ни к чему хорошему.

Просити про допомогу. Якщо щось не виходить понад 15–20 хвилин і ідей більше нема — обов’язково штурхайте колегу.

Собирают новую команду — 1 тим лид, 1 сеньор, 2 мидла и 2 джуна. Сейчас тебе 23 и ты сеньор, все будут дергать тебя, осилишь?

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

ну стронг джун наверно есть.

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

Ничего себе у вас определения)
Вы менеджер джун?)

мені 23, і зараз я Senior C# Developer у Luxoft, хоча прийшов у компанію як інтерн три роки тому.

Десь через 5 років ви зрозумієте, що були в кращому випадку мідлом. А може й не зрозумієте.

у мене був статус «Shadow developer», тобто розробник на підстрахуванні, якого залучають, коли хтось хворіє чи команда не встигає

Зазвичай під «Shadow developer» розуміють трохи інше:
людину за яку замовник не платить і часто не знає про існування. Часто робиться це для того щоб замінити досвідченішу людину на __дешевшу__. Власне часто це обман замовника і в нормальних конторах рідко практикується. Але тут треба не плутати «шедов» і джуна на костах аутсорсера, якого дають замовнику як приємний бонус (по програмі лояльності :) )

З вашим визначення є проблема:
онбординг нової людини на проект займає час, особливо у випадку з джунами, і простіше дочекатись людину з лікарняного або зсунути дедлайн (бо якщо у вас все горить, то звідки час на онбординг джуга? :) )

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

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

Братись за роботу, яку ніхто не хоче. Це зробить вас незамінним, бо саме ви будете найбільше розумітися в задачах, від яких часто залежить дуже багато.

knowledge hoarding

Шо?

UPD.
А, сьогодні ж п’ятниця...

Вот и умничка автор. Підсумок — замечательный, таких людей мало. Можно только пожелать дальнейших успехов

В той час як досвідчені мідли й сеньйори вперше бачили CSS і вдруге HTML, про TypeScript взагалі тільки чули, я вже знав, як писати на JavaScript,

А что так бывает? Я то думал в люксофт более профессиональных девов набирают...

Досвідчені бекенд сеньйори знають, що CSS, HTML та JavaScript виглядають, як прийнятний оффер від іншої копанії.

тікай звідти

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

Геніально )

Его мамка знает об этом?

да вот же они 23летние синьеры :)

Подписаться на комментарии