Як стати  Software Engineer: моя історія

Python Software Engineer
Python Software Engineer

Для кого ця стаття?

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

Досвід

Я — Сергій Купрієнко, зараз працюю Junior Software Engineer у великій аутсорсінговій компанії. До цього мав досвід у різних сферах: займався продажами, видавничою діяльністю, робив переклади, був редактором енциклопедії, науковцем-істориком, екскурсоводом, ученим секретарем музею. Захистив кандидатську дисертацію по історії інків та отримав науковий ступень PhD. Часто все це було паралельно, оскільки одночасно навчався та працював на 2-3 роботах. 

Хобі

Хотів би згадати про свої хобі: історія, література (художня, нон-фікшн, наукова), переклади з іспанської мови, ведення блогу. На ентузіазмі я видав більше 10 книжок із перекладами джерел по історії Доколумбової Америки, а це, гадаю, більше, ніж було зроблено за 100 років до того. Маючи якесь хобі, як правило, згодом я отримував роботу, пов’язану з ним.   

Я мало був пов’язаний з IT-сферою напряму, аж поки не увійшов до команди Великої української енциклопедії, яка розробляла першу універсальну українську енциклопедію. Я був куратором розробки її онлайн-порталу, тобто, фактично, Project-Manager’ом, і разом із командою ми запустили у 2019 році. 

Switch

А тепер розкажу про те, як я здійснив свій switch із науковця-історика в Software Engineer. В цілому, весь процес зайняв 1 рік 😊. 

Рішення про зміну професії я прийняв, порадившись із дружиною, в січні 2020 року, оскільки побачив перспективи розвитку та попит на IT-спеціалістів. Вона сказала, що варто спробувати. Це звучало фантастично, бо я не знав достеменно, що вивчати, скільки це займе часу і через що доведеться проходити. На той момент я працював у музеї на адміністративній посаді. 

Чому я думав, що це реально? Бо на той час я опанував кілька корисних методик, які суттєво прискорювали процес самонавчання плюс інтерес до навчання, складних задач, віра, що все можливе, та інтерес до комп’ютерної сфери. 

Методики

Перша методика — швидкочитання за допомогою технології Text-to-Speech. Для того, щоб нею скористатися, потрібно лише мати смартфон з Android, додаток PocketBook. В додатку треба включити аудіо режим Text-to-Speech, але на швидкості 2Х, тобто в два рази швидше звичайної вимови. І тоді будь-яку книгу можна прочитати дуже швидко. Ось моя публікація з цього приводу. Загалом, за 2018-2019 роки я прочитав більше 700 книг найрізноманітнішої тематики.  

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

Python

Коли задумався, яку мову програмування вивчати, то я вирішив обрати Python, як найпростішу для розуміння і найпоширенішу у викладанні. В березні 2020 побачив знижку на курси Data Science/Data Analytics від Datacamp, а підписка за $100 на рік – це крута інвестиція, то не вагаючись її купив. Далі подумав, як спланувати навчання і тут натрапив на сайт від компанії Epam, де можна було детально прописати всі можливі цілі, яких потрібно досягнути для рівня Junior. У мене було бажання стати Data Analyst. Під це і сформував свій план розвитку. Хоча в подальшому я і змінив своє ставлення до цієї цілі. Тож не варто цементувати в бетоні речі, доцільно бути гнучким до вимог ринку, роботодавця або клієнтів. 

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

Закладки

Також я мав за гарну звичку додавати будь-який цікавий сайт в закладки свого браузера Chrome. Пізніше з цих закладок я зробив репозиторій на GitHub, де розподілив посилання на сайти по категоріях. Паралельно я перечитав сотні статей про Python на Medium.com — і, скажу, що це один із найкращих ресурсів для розробників. Загалом за рік я переглянув чи перечитав більше 1500 статей по Python

Поради: зберігайте важливі сайти в закладках; структуруйте за темами. 

Paternity leave

Звідки у мене було стільки вільного часу на все це? Доволі просто — я перебував у paternity leave зі своїм малятком. І скажу, що це був найкращий час у моєму житті, сповнений барвистими емоціями і новими враженнями. Власне, необтяжений якоюсь іншою роботою, я зміг себе присвятити батьківству та навчанню. 

Резюме та тестові завдання

Поки тривало навчання, я робив мало  своїх проектів. І це було найбільшою помилкою. Усвідомив я це лише в літку 2020 року. Тоді я почав надсилати свої перші резюме й отримувати перші відгуки. А це було неабияким випробуванням, адже майже усюди для новачків обов’язкова умова — виконати тестове завдання. Більшість тестових завдань були міні-проектами, частина – алгоритмічні задачки. Іноді ламав голову по три-чотири дні. Часто не міг вирішити одне чи два завдання з переліку в три-п’ять пунктів. На тиждень міг опустити руки. Але потім почав розуміти поразки як стимул поліпшити свої знання та навички. І все це давало змогу вивчити невідомі раніше теми. 

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

Перші проекти на Python

В основному підтягував знання по напрямку Software Engineer на LinkedIn Learning, де зібрано чудові високоякісні курси по будь-якій мові програмування (підписка на перший рік коштувала 27 Євро). Я, мабуть, переглянув та протестував сотні цих курсів на різні теми по Python, Data Science, Machine Learning, NLP, Django та Flask. 

Саме веб-фреймворки Django і Flask мене зацікавили найбільше. І коли почав ними займатися, то відчув, що це і є ті речі, з яких можна зробити реальні пет-проекти, які можна вказувати в резюме. 

Прокачайте свій Github-профіль

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

Вважаю, що чим більше ви як Software Engineer урізноманітните свій GitHub-профіль та резюме, тим більше шансів у вас буде отримати першу роботу в IT. Ось який профіль я зробив собі.  

До речі, на замітку рекрутерам, саме через такий тематичний пошук мене знайшла рекрутерка і запропонувала тему, яка цікавила мене і яка потрібна була замовнику. Тобто win-win ситуація. 

Поради: розміщуйте власні пет-проекти на github, вказуйте їх у резюме. 

Прокачайте свій LinkedIn-профіль

Паралельно, раджу прокачати свій профіль в LinkedIn, бо саме звідти часто надходять пропозиції від рекрутерів. Для цього я скористався особистими порадами Юлії Шишенко та її статтею.   А також додав у друзі більше 2000 людей (HR, рекрутерів, Python-розробників, Data Scientist’ів і т.п.). Також створіть профіль на Djinni (https://djinni.co/), але новачкам отримати офер там може бути тривалим випробуванням, хоча як не дивно, саме там я отримав перший дивний офер. 

Поради: оптимізуйте профіль у LinkedIn, адже саме там вас будуть шукати рекрутери. 

Перший офер

Найцікавіше почалося, коли мені запропонували перший офер у листопаді 2020 року… 

Але трохи передісторії 😊 

Перша спроба потрапити в IT-компанію була доволі дивна. В листопаді 2020 року після інтерв’ю та тестового завдання на логіку я отримав офер на посаду Technical Customer Support від продуктової компанії. Мені здавалося, що так я зможу потрапити в IT, але не з парадного входу. Тим більше ризиковано для мене було, тому що основний стек у компанії був PHP. Домовилися, що я вийду на роботу 1 грудня. Коли я прийшов, то мені виділили комп’ютер з усіма налаштуваннями та доступом до HelpDesk. Я почав читати документацію. Та вже в перший день мені дали опрацьовувати перші запити від клієнтів. Оскільки не все було зрозуміло, то я почав радитись у свого менеджера, але на всі мої запитання була одна відповідь (усно або в чатах): “Ти маєш сам все вирішити та зрозуміти”. Це було дивно чути. На наступний день було те саме, але ще й комп’ютер почав самовільно перезавантажуватися разів чотири чи п’ять, після чого постійно доводилося наново все запускати і це нервувало. Та вже по обіді стало зрозуміло, що ніякої підтримки я не отримаю, мов, “розбирайся сам”, і я вирішив, що не хочу тут працювати. Сказав, що мене це не влаштовує, і роботодавець та я зрозуміли, що на тому і бути, ми розійшлися. Пропрацював я лише півтора дні, і це була моя найкоротша робота в житті. Я й досі не можу зрозуміти такого підходу роботодавця, коли новачок має розбиратися сам без будь-якої підтримки, і  його залишають сам на сам із невирішеною проблемою та неробочою технікою.  

Коучинг-сесія

Далі почалися “темні” дні пошуку роботи. І вже коли я був на самому емоційному дні, бо я ж хотів самостійно знайти роботу, без чиєїсь допомоги,  моя дружина Любов Купрієнко, психолог та психотерапевт, запропонувала провести для мене коучинг-сесію. Це було 15 січня 2021 року. Я не уявляв, для чого воно треба. Але коучинг був крутий і збувся в усіх деталях, змінивши мій стан відчаю від довгого пошуку роботи на стан натхнення від бажаного результату. Ми поставили ряд цілей та конкретних формулювань, які  я б хотів почути від майбутнього роботодавця: 
1) роботу мають запропонувати до 1 лютого 2021 (тобто протягом двох тижнів!), 
2) я маю почути фразу, якої чекав: “Ми раді запропонувати вам офер…” 
3) я хотів, щоб мені також сказали, що у мене буде ментор. 

І тут почалося! Стали надходити пропозиції одна за одною. 

Офер та контр-офер

Спочатку рекрутерка однієї з найбільших аутсорсінгових IT-компаній України пропонує мені пройти кільки етапів інтерв’ю на позицію Software Engineer та виконати непросте, але цікаве тестове завдання. І вже коли ми були на останньому етапі, на мене вийшла рекрутерка іншої — продуктової компанії. Теж запропонувала провести одне (замість традиційних 2-3) інтерв’ю з їхньою командою розробників.  Я спочатку не знав, що відповісти, а потім подумав, що це найкращий шанс дізнатися про свій рівень та оцінити самого себе, тому я погодився. 

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

Дилема

І почалася дилема. 

Вибрати першу, але велику компанію, з меншим рейтом, хоча і з ментором, або другу компанію, з більшим рейтом та одразу на позицію Junior. 

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

Від Trainee до Junior Software Engineer

І отримав джоб-офер своєї мрії, саме такий, як я описував у коучінгу, і саме в ті терміни, тобто протягом двох тижнів! 

За три місяці випробувального строку у якості Trainee Software Enginee, я вивчаю також Bash, основи C language, ознайомився з компіляторами. 

По завершенні випробувального терміну, отримав промоушен до рівня Junior Software Engineer. 

Продовжую вивчати все нові і нові речі – CI/CD, pipelines, Docker, можливо, Cloud-платформи або щось інше. Як то кажуть “нєсть їм числа”. 

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

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

Джерело: Highload

Автор Serhii Kupriienko

I have a multifaceted experience, accomplished several successful projects, including national-scale, modernized a museum, engaged in online commerce, wholesale and retail sales, was an entrepreneur, publisher, and editor. I headed the development department. I gave lectures and training. I organized events and press conferences. I was the secretary of the collegial boards. And I also did the planning and reporting in an organization. My Ph.D. thesis was “The social and economic system of the Inca Empire Tawantinsuyu“.

KUPRIENKO