Ми поговорили з Антоном, щоби дізнатись, що спонукало його до кар’єри програміста і зрештою принесло йому перемогу.
Про те, як усе починалося
За словами Антона, він займається розробкою програмного забезпечення 4,5 роки, з яких 3,5 — професійно. Він розпочав із веб-програмування, HTML, CSS; розробив кілька веб-сайтів для своїх друзів. Зараз вже 5 місяців працює в компанії Lohika на позиції iOS інженера.
Войцехівський почав цікавитись розробкою програм, коли був десятикласником у Білій Церкві: «Мені та моїм однокласникам, як і будь-яким іншим дітям, було цікаво працювати із комп’ютером, тому ми вирішили взяти курс програмування С ++ під час наших літніх канікул. Курс був настільки захопливий, що ми навіть не пропустили жодного уроку». Вже у 11 класі Антон познайомився із мовою программування PASCAL, проте завдання на цій мови здавалися нудними — тож він вирішив розробляти щось цікавіше на C++. Проте на першому конкурсі юного розробника спіткала невдача:
— Моя школа навіть відправила мене взяти участь у конкурсі. Але коли я вже зареєструвався і прийшов на конкурс, виявилося, що середовище програмування було призначено для Microsoft Visual Studio, я ж писав код в Borland. Тоді я просто розчарувався і пішов. Ось так закінчився мій перший конкурс.
Войцехівський пригадує: на курсі у них була класична схема — бінарні операції, система двійкових чисел та перші додатки в консолі. «Я був просто школярем, і мені було важко обробляти інформацію, оскільки вона була академічною та насиченою. Коли ми перейшли на практику — я зміг зрозуміти, що саме ми робили. Я відчув, як моє мислення трансформувалося і стало більш алгоритмічнім», — розповідає цьогорічний переможець престижного міжнародного конкурсу про свої юні роки.
Про конкурс для розробників
Антон розповідає: про міжнародний конкурс дізнався з реклами в Facebook. У схожому конкурсі взимку 2015-го програміст досяг фіналу, але не отримав жодної медалі. Тому я подумав, що варто спробувати ще раз: «Більше того, фінал проходив в Кракові, де я ще не разу не бував».
На кваліфікаційному етапі претендентам було надано завдання із дедлайном через 2 тижні. Треба було розробити програму, яка може створити колажі для відеороликів, створених камерою телефону. Ідея була такою: людина робить відео, додаток вибирає деякі його кадри і перетворює їх на колаж, дозволяє застосувати фільтри та експортувати:
— Я не лише виконав усі вимоги до завдання, але й розробив інші варіанти. Я зробив можливим змінити порядок фотографій у колажі, застосувати фільтри лише до одного кадру, до деяких з них або до всіх. Думаю, саме такий підхід дав мені шанс пройти в змаганнях до фіналу.
Про фінальну частину змагання
Фінал проходив у Краківському технологічному парку — великій мережі бізнес-центрів із спеціальною економічною зоною, в якій представлена спрощена система оподаткування. Саме там був заснований один з популярних польських стартапів — Technology Incubator. У кожній номінації було понад 100 учасників із 11 країн. Для вирішення завдання було виділено 7 годин, включаючи перерву обід, розповідає Войцехівський.
Завдання для фіналістів було масштабнішим за відбіркове. Суть його — написати банківський мобільний додаток, в якому можна створити та редагувати профайл, подивитися список усіх транзакцій, на карті повинні відображатися всі банківські відділення та пропонуватися відділення, найближче до користувача. «Однією з особливостей завдання була відсутність будь-якого веб-сайту з відповідною інформацією, це ж мав бути онлайн-банкінг. Ми мали самі імітувати збір данних», — так змальовує умови фінальних змагань український розробник:
— Мене схвилювали такі вимоги. Вони нагадали мені про попередній конкурс в якому я брав участь, там завданням було розробити мобільний додаток для Jenkins. Деякі девелопери скаржилися на проблеми з авторизацією на цьому ресурсі. CTO Readdle заявив, що якщо б учасники зімітували збір данних з бекенда, вони б легко перемогли. Саме так можна показати свої навички в створенні архітектури додатків. Згадка про його слова була для мене дуже доречною.
Завдання, за словами Войцехівського, також оцінювали за сукупністю критеріїв. Архітектура, чистота коду мали дуже велике значенная, в той же час обсяг завдання був десь у середині списку. Зрозумівши це, українець скерував усі зусилля на Data Mocking:
— Врешті-решт, я зімітував результати, склав список транзакцій і почав розробляти профіль користувача. Тут був присутній такий нервовий момент, оскільки я до кінця не знав, чи все-таки на правильних аспектах завдання зробив акцент. І це переживання було аж до самого нагородження. Ну а під час нагородження вже полегшено зітхнув, отримав сертифікат переможця та ліцензійні ключі JetBrains. Мені було приємно, що я зміг вдало взяти реванш для себе. Оскільки колись я вже брав участь у подібному конкурсі, але тоді я став фіналістом без будь-яких призових місць.
Наступного дня переможцям запропонували цікаву сесію зворотного зв’язку суддів та можливість поспілкуватися з іншими учасниками. Войцехівський розповідає:
— Я був присутній і на фідбек-сесіях інших номінацій, оскільки хотів отримати побільше інформації. Наприклад, для Android-номінації було те ж саме завдання, тому поради за такими аспектами, як архітектура, організація бази даних, були загальними. За моєю тематикою поради стосувалися специфіки саме банківського напрямку — як програмно краще організовувати збереження/відображення валютних даних, оскільки в цьому є своя специфіка. В мене не було досвіду роботи на проектах цієї сфери, така інформація стала для мене новою.
Про передумови перемоги на загальноєвропейському конкурсі
Як стверджує український програміст, для перемоги ключовою запорукою стали можливість застосувати всі надбання з власного досвіду та досвід роботи в Lohika: «Тут завжди приділяють увагу якості коду. А те, що код буде переглядати твій коллега, стимулює писати одразу чистий, структурований код. Саме ця звичка допомогла мені здобути перше місце». Також корисним був і попередній досвід безпосереднього спілкування з клієнтами: «Таким чином я краще розумію їх бізнес-процеси, розвиваю свої менеджерскі та особисті якості, ну і просто спілкуюся з людьми із інших країн — це цікаво і корисно».
Поради тим, хто хоче стати фахівцем у розробці та теж перемагати на міжнародному рівні
— Людині, яка вважає програмування роботою і планує будувати в цій сфері свою кар’єру, я рекомендую без вагань вивчати новітні технології (для iOS — SwiftКод у кожен клас — як Кремнієва Долина поширює програмування, для Android — KotlinGoogle зобов’язалася підтримувати нову мову програмування Kotlin). Це безумовно полегшить вхід в сферу.
Інженерам з певним досвідом я би рекомендував ніколи не припиняти читання різних тематичних блогів, А також слід стежити за розвитком сфери, оскільки підходи постійно змінюються. Слід ставати учасниками у подібних конкурсах. Це допоможе розвинути свої навички та отримати нові знання та корисні контакти.