Катерина Зоріна, full-stack розробниця у Beetroot, розповідає про те, як універсальні спеціалісти допомагають командам бути ефективнішими, та що робити тим, хто теж хоче стати багатопрофільним девелопером.

Як все починалось

Я полюбила точні науки ще у школі. У мене був крутезний викладач фізики, і здебільшого,  я завдячую своїм захопленням технічними предметами саме йому. Коли прийшов час обирати вуз, я не вагаючись подала документи до декількох технічних вишів і вступила до Харківського університету радіоелектроніки. У мене ніколи не виникало дивних відчуттів з приводу того, що я, дівчина, вивчаю автоматизацію процесів на виробництві. Але, треба зауважити, що на нашому курсі взагалі було багато дівчат — десь 30-40 % від усіх студентів. Тому ми почувались комфортно. А ось сусідній радіотехнічний факультет був зовсім інший — там на весь курс було тільки 3-4 дівчини.

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

Далі — робота

Мені пощастило з моєю першою роботою — там були дуже цікаві технології та досвідчені спеціалісти, в яких я багато чого навчилась. З того часу пройшло вже шість років. Зараз я працюю у Beetroot на проекті Zwapgrid. Це платформа для стрімінгу даних між різними системами, клієнтами чи партнерами. Я займаюсь розробкою нового функціоналу та підтримкою існуючого. Власне, в мене є визначений набір технологій, із якими я працюю вже багато років. Одними з базових технологій є ASP.NET MVC, ASP.NET Web API, ASP.NET Core, Entity Framework Аngular JS та Angular. Також я маю досвід роботи MS Sql Server та MongoDB.

Хто такі full-stack розробники та чому вони круті

Особливість full-stack розробників полягає в тому, що вони можуть працювати з будь-якою частиною проекту незалежно від того, чи пов’язана задача зі змінами на front-end або back-end. Тобто, full-stack девелопери мають володіти вкрай різноманітними знаннями. Але зазвичай, зважаючи на специфіку проекту та особисті вподобання, такі багатопрофільні спеціалісти мають більш глибокі знання, скажімо, back-end технологій, ніж розробки front-end частини, або навпаки. Тому, коли клієнти починають шукати full-stack спеціаліста на свій проект, вони мають дивитись на співвідношення досвіду, що розробники мають із front-end та back-end технологіями, та на специфіку самих задач.

Full-stack розробники можуть бути надзвичайно корисними для команд. По-перше, така багатопрофільність дозволяє нам краще розуміти код та розбиратись в архітектурі проекту. Окрім цього, ми однаково добре розуміємось на логіці як front-end, так і back-end частин проекту. Таким чином, оскільки може виникнути ситуація, що хтось з команди йде у відпустку чи бере лікарняний, робота не зупиняється, бо інші легко можуть підхопити проект на будь-якому етапі.

Тим, хто хоче стати full-stack розробниками

Щоб почати працювати зі стеком технологій, з яким працюю я, треба вивчити основи. Наприклад, можна почати з мови C#. Зараз досить просто знайти усю необхідну інформацію для самостійного вивчення, якщо вам підходить такий метод. Я можу порадити Pluralsight — це онлайн-ресурс, який агрегує в собі неймовірну кількість різних відео-уроків про мови програмування та різні фреймворки. Навчання там платне, але контент дуже якісний. Якщо ви розглядаєте безкоштовні ресурси, то зверніть увагу на Microsoft Virtual Academy.

Після того, як ви вивчите основи, оберіть напрямок, в якому бажаєте рухатись — desktop, web або mobile розробка. Потім на основі власних вподобань чи рейтингу технологій та фреймворків, можна обрати кілька для подальшого вивчення. Якщо ви вирішите працювати з Microsoft за напрямком web, то вам стануть в пригоді такі фреймворки, як ASP.NET MVC, ASP.NET Web API, ASP.NET Core. Якщо ви хочете працювати з front-end, то доведеться почати з вивчення JavaScript/TypeScript. Але не витрачайте занадто багато часу на теорію — хоч теоретична частина є необхідною, основні знання ми отримуємо під час роботи над реальними задачами.

Пряма комунікація з клієнтом надзвичайно корисна

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

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

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

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

До речі, зараз у Beetroot якраз відкрита вакансія Full-stack девелопера. Клікай на посилання, щоб дізнатись більше. Можливо, це робота якраз для тебе?