Від Shadow developer до Senior у 23. Кілька простих порад, як зростати швидше
Вітання. Мене звуть Роман, мені 23, і зараз я Senior C# Developer у Luxoft, хоча прийшов у компанію як інтерн три роки тому.
Це стаття про досягнення мети, впевненість у собі та роботу в команді. Думаю, що вона буде корисна людям, які вивчились на розробника, цікавляться різними технологіями, але ніяк не можуть працевлаштуватись.
Дитинство та перші кроки у програмуванні
Ще в дитинстві я цікавився всілякими «розумними» залізяками, розбирав принтери на моторчики, лампочки, підключав їх до батарейок, одне слово — розважався.
Потім, як став трохи старший, тато показав мені Visual Basic. Він знав, як писати цією мовою, бо теж був програмістом і колись написав інтерпретатор Basic на асемблері. Один чи два вечори ми розглядали Basic, тато написав програму, яка малювала годинник зі стрілками, я на те подивився і забув. І не дивно, мені тоді було
Спочатку я хотів стати архітектором, тим, який будинки проєктує, ходив на курси інженерної графіки в Палац дітей та юнацтва (колишній Палац піонерів), але те, що ми там робили в автокаді, видавалось мені легким і не викликало ентузіазму.
Наступного року я згадав, що мій тато програміст, і теж захотів спробувати. Пішов на курси програмування в тому самому Палаці. Там я пройшов тест, де вперше почув і розв’язав задачу про те, як за одне зважування визначити, в якому з десяти мішків монети фальшиві.
На цих курсах я провчився три роки. Потім вступив до коледжу, бо не хотів сидіти в школі ще два роки, адже вже знав, чим хочу займатись.
У коледжі я дізнався багато нового про алгоритми та структури даних, всіляку математику тощо (цікаво, що пройдені в Палаці курси з графіки мені тут знадобились, робив одногрупникам лабораторки з інженерної графіки).
Перша робота
Приблизно на другому курсі я подумав, що непогано було б почати заробляти завдяки своїм знанням. Спочатку хотів знайти роботу програмістом, але не так уже й багато компаній хочуть працевлаштовувати
Тож я пройшов співбесіду на С++, написавши консольний конвертер валют, і почав викладати 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 хвилин не можеш розібратись з чимось і немає ідей — проси про допомогу), мені доводилось самому відстежувати, кому потрібна допомога. Я дивився, у кого вираз обличчя надто серйозний, і так ненароком підходив попитати, як справи (може, це гордість не дозволяла досвідченим програмістам просити допомоги у зеленого інтерна/джуна?).
Немає нічого неможливого
Оскільки технологія була нова для деяких розробників, дуже велика спокуса була сказати, що щось неможливо (особливо якщо це стосувалось відображення). Але за
Був один програміст, який дуже довго виконував завдання. Коли тимлід тієї команди попросив мене це зробити, то задача була вирішена ледь не того ж дня. Того спеціаліста звільнили. Спочатку дали йому місяць випробувального терміну, однак багато результату це не дало, тож ми попрощались.
Минув певний час, і колеги самі стали звертатися до мене по допомогу.
Робота з профілю
Після закриття проєкту мене підвищили до мідла, і ми почали розробляти програму вже з нашої спеціальності — C#/WPF. Знову стали розбиратися, тепер уже з наявним кодом проєкту. Я писав документацію про його структуру, дивився, як воно там все пов’язано.
Не все завжди було легко. Кілька разів було так, що я не вивчив добре питання і зробив задачу неправильно. Було й кілька випадків, коли ми з тимлідом залишались до десятої вечора в офісі, щоб розібратись, і зробити все правильно. Зате після цього ми розуміли проєкт ще краще і знаходили щось нове для себе.
Як мені колись сказав тимлід: щоб зростати, треба проявляти активність, щоб замовник тебе помічав. От я і брав активну участь у грумінгах, пропонував свої варіанти реалізації, часто бувало так, що з нашого боку тільки ми з лідом говорили.
Іноді, коли задача була невеличка, я міг підготувати тестову реалізацію, щоб разом із замовником перевірити, чи саме цього він хоче.
У цього є й зворотний бік: тепер команда ще більше розраховує на мою думку, аніж розвиває власну. Або можна поглянути на це з такого погляду, що я відповідальний за визначення критеріїв задачі, тобто на мені, крім розробки, роль бізнес-аналітика, а команда мені допомагає в цьому.
Спілкування
Робота в команді — це не тільки «робота», це ще й «команда». Багато разів я помічав, що хтось когось у колективі недолюблює або комусь потрібна допомога у спілкуванні. Так виходило, що з кожним учасником команди я хоч раз залишався наодинці: чи то в офісі працювали допізна, чи то їхали додому разом.
Може, тому, що я був наймолодший, чи тому, що я багато кому допомагав під час роботи, але розмова завжди йшла просто, часто після таких «сеансів» настрій у команди поліпшувався.
Наприклад, одного з розробників бентежило те, що ми часто матюкаємось. А після наших з ним балачок він перестав на це звертати увагу і став більше спілкуватися з іншими членами команди.
Часом помічав, що комусь потрібна допомога в не дуже складних задачах, зрозумів сильні й слабкі сторони членів команди та радився з лідом, як у таких випадках натякнути людині бути більш уважною та сконцентрованою.
Після введення віддаленого формату роботи питання продуктивності в команді стало гострішим, бо тепер, крім того, що деякі розробники були замкнені вдома з малими дітьми, стало складніше зрозуміти, що хтось застопорився та не може вирішити задачу й не каже про це. Але і тут ми спромоглися більш ефективно виявляти такі моменти на ранкових зустрічах.
Підсумок
Загалом можу відзначити такі важливі пункти в історії мого розвитку:
1. Бути проактивним. Робити більше, ніж від тебе очікують. Часто поміркувати над задачею на
2. Дослідити проєкт. Знаючи проєкт на достатньому рівні, часто можна знайти вірогідні рішення, просто почувши про проблему.
3. Допомагати іншим. Якщо є вільних пів години, можна поцікавитись у колег, чи все в них вдається, або, можливо, самому запропонувати підхід у реалізації задачі.
4. Просити про допомогу. Якщо щось не виходить понад
5. Братись за роботу, яку ніхто не хоче. Це зробить вас незамінним, бо саме ви будете найбільше розумітися в задачах, від яких часто залежить дуже багато.
6. Спілкуйтесь з колегами. Порозмовляйте про життя, відвідайте бар після роботи, пройдіться разом до метро, пообідайте разом чи сходіть на турнік під час перерви. Вони відкриють те, що їх бентежить чи не подобається, і це всім піде на користь.
Для загального розвитку
1. Обов’язково треба знайти серію відео про патерни від Дядька Боба (Роберта Мартіна), цікаво, жваво та послідовно розказує про все, що вам трапиться на проєктах.
2. Для дотнетчиків-початківців буде корисно почитати книгу про C# від O`Reilly, а для подальшого розвитку — Ріхтера.
3. Для відпочинку з користю — ютуб-канал Coding Train, там багато відео про реалізацію різних алгоритмів мовами JS та Processing.
33 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів