Мій шлях до Java-розробника
«Коли я сідаю за навчання або виконання практичних завдань, то не помічаю як минає час. Тож це неодмінний плюс роботи в IT для мене! Бо інакше — чекай на швидке вигоряння.»
Всім привіт! Мене звати Юрій Гордієнко. Нещодавно я закінчив онлайн-курс з Java та зараз знаходжуся на етапі пошуку моєї першої роботи за новим фахом.
Наразі вивчаю вакансії та аналізую їх, готуюся до співбесід та покращую своє резюме. Тож, впевнений, що зовсім скоро зможу отримати бажаний офер.
Але попри те, що я ще не маю комерційного досвіду роботи в IT-компанії, хочу поділитися з вами власним досвідом з пошуку свого покликання.
Чому я вирішив змінити професію та податися в IT
До прийняття рішення кардинальної зміни свого життя, я працював у сфері продажів на керівній посаді. Робота була дуже цікава: постійний рух, зустрічі, переговори, укладання угод; розвиток команди, навчання, контроль; тренінги у горах на згуртованість і взаємоповагу. Я навіть ніколи не замислювався, що таке ІТ. Але початок війни обрубив все одним махом: філіали закрили, команду було розпущено, на жаль (а може й на щастя), я втратив роботу.
Ринок праці у сфері продажів сильно обвалився. Компанії втратили ринки збуту на сході країни та намагалися оптимізувати персонал — тому знайти нову роботу у своїй галузі мені не вдавалося.
Ось тоді я й замислився про зміну професії. Проаналізував всі наявні напрямки на ринку праці, а під час вивчення вакансій найбільшу увагу я звертав на функціональні обов’язки, перспективи розвитку та рівень заробітної плати. Виявилося, що професії, які існують на ринку, або мені не цікаві, або безперспективні, і тільки одна ніша була для мене загадкою, про яку я нічого не знав... Це була ніша ІТ.
Якщо ти не зовсім задоволений тим, як закінчив школу, універ тощо і при цьому поставиш собі ціль успішно закінчити доволі непрості курси ІТ та виконаєш її — це буде як доказ самому собі, що ти реально на багато чого здатний і побавиш свою самооцінку.
Тут великі можливості для кар’єрного зростання, цікаві проєкти та кайф від готового продукту, в якому є частка тебе. До того ж ти постійно в навчанні й твій мозок у постійному розвитку, вивчення такого наразі важливого і необхідного тренду як англійська мова, котра має дуже вагоме значення при працевлаштуванні.
А для тих, хто світчер — це ще й новий непізнаний світ, нове «життя». Але не все так просто, треба бути готовим до тяжкої праці. Якщо ти новачок, не маєш вищої технічної освіти, пішов вчитися на розробника і думаєш, що чотири години на день достатньо, то навряд чи станеш успішним випускником.
Забігаючи наперед, можу сказати, що я вчився по
Такий темп сприяв тому, що я + три однокурсники з 15 осіб нашої групи (а це лише 20%) були допущені до захисту фінального проєкту, а успішно захистили та отримали сертифікати троє людей.
Тому ця стаття може зацікавити початківців, котрі вирішили спробувати себе в цій галузі.
Перші кроки в галузі IT
Мій шлях почався з перегляду освітнього серіалу на платформі «ДІЯ. Цифрова освіта». Там якраз йшлося про зміну професії та різні ІТ-напрямки для початківців.
Потім я почав дивитися різноманітні оглядові лекції та вебінари в інтернеті про різні напрямки в IT, які мене зацікавили: Java, Android та iOS-розробка, Front-end Javascript, Full-stack, Python, C#, C++, PHP, DevOps, QA, Product Manager. І що ж роблять спеціалісти цих професій, які переваги та недоліки?
Java
- Доволі популярна мова, виникла на початку розвитку програмування (багато програм нею написано і відповідно треба усе це підтримувати, тож спеціалісти будуть ще довго потрібні);
- зрозумілий синтаксис написання, чистота коду, що полегшує підтримку; інтегрована у сучасні фреймворки, що дозволяє програмувати декларативно;
- «Написав код один раз, працює скрізь» — JVM дозволяє писати універсальний код і запускати програми на будь-яких операційних системах Windows, MacOS, Linux не думаючи про правила і підгонку коду під конкретну ОС, на відміну від інших мов програмування;
- JVM інтегрована і з іншими мовами, наприклад Kotlin, Scala;
- на Java пишуть проги для майже всього великого бізнесу (великі вебзастосунки/сайти зі складною логікою, фінансової системи (банки, біржі, платіжні системи, крипта), космічних технологій, транспортної логістики, програмне забезпечення, соцмережі, чат-боти.
У сфері Big Data Machine Learning впевнено реалізує напрямок Big data engineering (BDI), наприклад, «Вумний будинок» — програма збирає дані щодо дій за певний проміжок часу, це ваші звички: коли вмикається будильник, світло, кавоварка, телевізор, пилосмок, далі обробляє цю інформацію і потім все це підлаштовується під вас та працює автоматично.
Рівень зарплати — високий.
З недоліків: застаріла, має менше фішок у порівнянні з новішими мовами програмування, доволі складна для новачків без техосвіти.
Python
- Доволі декларативна мова програмування, простий синтаксис (начебто просто пишеш інструкцію англійською мовою);
- відмінно підходить для наукових та числових обчислень;
- веброзробка, сайти, чат-боти, CRM-системи, програми для роботи з документами, корпоративної звітності, аналітика, управління роботою станків ЧПУ.
Використовується у Data Science (але це дуже складна тема — треба добре знати вищу математику, матаналіз), робота зі штучним інтелектом, використовуються складні математичні концепції, структури даних і алгоритми. У сфері Big Data Machine Learning впевнено реалізує напрямок Big data analysis (BDA), наприклад — графіки, статистика, машинне навчання, нейромережа.
Рівень зарплати — високий.
З недоліків: простий синтаксис написання коду без зайвої пунктуації та спецсимволів може перетворити код у «філософський твір», який буде складно зрозуміти сторонньому розробнику для його підтримки; з деяких напрямів цю мову витіснили інші, наразі домінує у DevOps і BigData.
C# або .NET
- Мова від компанії Microsoft, нею пишуть застосунки для візуалізації геологічних даних, облікові та аналітичні системи;
- збір, зберігання та аналіз даних, складні математичні алгоритми, обслуговування серверів, тестування, фінансове та корпоративне програмне забезпечення, штучний інтелект, десктопні застосунки.
Наразі міцно зайняла нішу у розробці ігор. Популярна як мова бекенд-частини у вакансіях на Full-stack розробників.
Рівень зарплати — високий.
З недоліків: не дуже розповсюджена мова програмування, не багато вакансій; складна мова, більш підходить для випускників техвишів або розробникам (наприклад Java, Python, PHP) з досвідом роботи
C++
- Ідеальна мова для написання операційних систем.
Використовується у великих технологічних компаніях, медичних та автомобільних системах, електронній торгівлі, мікроконтролерах; пишуть на С++ ігри, геймрушії, програмне забезпечення, драйвери.
Рівень зарплати — високий.
З недоліків: не дуже розповсюджена мова програмування, не багато вакансій; складна мова, потребує відмінне знання математики, більш підходить для випускників техвишів або розробникам (наприклад Java, Python, PHP) з досвідом роботи
PHP
- Не складна, в більшості застосовується у розробці бекенд частини невеличких вебсайтів.
Написано на ній було не мало програм, тому все ще багато де використовується. Також, є й багато вакансій на позицію Full-stack розробника, якщо у доповнення до PHP будеш знати JavaScript, WordPress або React як технології для фронтенд-частини.
Рівень зарплати — вище середнього.
З недоліків: застаріла мова програмування, наразі не актуальна для нових технологічних програм; можливості реалізації серйозних складних задач не дуже великі, найбільш вразлива для хакерських атак.
Full-stack
Напрямок програмування, як бекенд серверної частини (більш популярні мови PHP, Node.js, JavaScript, .Net або це ж той самий C#) так і фронтенд-частини користувацького інтерфейсу (найбільш популярні фреймворки в застосуванні React — займає 75% ринку і Angular — 25%). Обирати мови для використання можна на смак, за трендами, за попитом. Можна самостійно зробити повноцінний класний сайт з нуля.
Рівень зарплати — високий. Ти один спеціаліст замість двох.
DevOps
- Деплоїть (розгортає) програми, обслуговує бази даних (БД) і працює з серверами: налаштовує залізо, конфігурує залізо;
- підбирає базу даних, налаштовує БД;
- робить реплікації БД, клонування БД, копіювання БД, налаштовує додаткові місця зберігання даних, виправляє помилки у БД тощо.
Високоякісні спеціалісти мають дуже великий попит.
Рівень зарплати — високий.
З недоліків: доволі таки скрупульозний технічний напрямок, легше буде адаптуватись випускникам з тех. освітою.
Front-end розробник
З впевненістю можна назвати, мабуть, найцікавішим напрямом серед технічних спеціальностей — «Написав код — побачив результат». Тут ти будеш писати код мовою JavaScript (до речі, якій немає конкурентів у розробці фронтенд-частини), що відповідає за функціональний інтерфейс (UX), котрий несе логіку взаємодії з користувачем програми.
Також водночас ти будеш відповідати за те, як виглядає твій сайт для користувача (UI) — розташування тексту, підбір шрифтів, наповнення контентом і картинками, розташування кнопок, посилань, підбір кольорів для різних блоків та сторінки в цілому з використанням стилів CSS і розміткою HTML за допомогою популярних фреймворків, як-от React або Angular.
Після написання блоку коду потрібно лише зберегти зміни, оновити сторінку і ти побачиш, як все змінюється просто на очах. Такий собі інженер-художник, дуже захоплива справа. Для навчання та освоєння цієї професії спеціальних знань та освіти не потрібно, тому цей напрямок такий популярний.
Рівень зарплати — вище середнього.
З недоліків: наразі багато спеціалістів на ринку, важко працевлаштуватись.
Android та iOS-розробка
Розробка мобільних застосунків, використання мов програмування Kotlin і Swift відповідно. Спеціалісти мають попит на ринку.
Рівень зарплати — вище середнього.
QA
Тестування вже написаних програм. Через користувацький інтерфейс (UI-дизайн) тестувальники перевіряють зручність роботи із застосунком і його використання (UX-дизайн), коректність роботи програми, виявляють помилки (баги) і надають цю інформацію розробникам для виправлення коду та вдосконалення програм.
Навчання не складне, не потребує спеціальної освіти, під силу усім, хто має інтерес і бажання.
Рівень зарплати — середній.
З недоліків: наразі дуже багато таких спеціалістів на ринку праці, дуже велика конкуренція при працевлаштуванні.
Product Manager
Комунікатор між замовником і твоєю компанією-виконавцем.
Ти будеш: збирати та структурувати вимоги щодо проєкту, розробляти план реалізації цього проєкту, формувати задачі і писати технічне завдання (ТЗ) команді розробників, збирати команду для реалізації проєкту (а це програмісти бекенд частини, фронтенд-частини, дизайнери), контролювати своєчасне виконання задач, забезпечувати зворотний зв’язок між командою і замовником, коригувати процес, вирішувати суперечні моменти, управляти бюджетом, вести документацію, презентувати готовий продукт.
Позиція Product Manager більш гуманітарна, аніж технічна, то не потребує спеціальної освіти. Конкуренція на ринку праці не така велика, як серед розробників. Важливими і просто необхідними скілами є гарні комунікативні навички, емпатія, чітке планування і відмінне знання англійської мови (рівень Upper-intermediate і вище).
Рівень зарплати — середній.
Як почати навчання
Наступним кроком було ознайомлення з умовами навчання за цими напрямками на сайтах спеціалізованих онлайн-шкіл. Там же також читав відгуки у коментарях, блогах, форумах про досвід спеціалістів рівня Senior, які довго працюють у сфері IT.
Мені було цікаво: чим вони займаються, які плюси та мінуси для себе відмічають в роботі, що радять початківцям тощо. Поради були у всіх схожі та зводилися до одного: «Якщо ти йдеш в IT тільки заради грошей, нічого в тебе не вийде! Ця тема не для всіх, тобі треба зрозуміти, що ти від цього кайфуєш і не „Треба“, а „Хочеться“ цим займатися — коли ти сідаєш за комп, ти повністю занурюєшся туди з головою, ти нібито потрапляєш до іншої реальності, ти не помічаєш часу. І якщо у тебе є такі відчуття, то успіх тобі гарантовано».
Найважчим для мене стало — зрозуміти глибинну суть конкретної професії та обрати саме той напрямок, який мене дійсно дуже зацікавить, та згодом це відчуття не мине. Бо я ще не мав жодного розуміння, що мені підійде. І цей етап був вкрай важливим, бо визначав мою подальшу діяльність.
Ще до повномасштабного вторгнення я проходив марафон з Front-end-розробки, бо вже тоді в мене з’являлась допитливість до IT-сфери. Проте, цього разу після проведеного дослідження я обрав для себе напрям Java, хоча ця мова не є найпопулярнішою у рейтингу популярності мов.
В цілому, на мій вибір вплинуло все ж таки доволі висока її популярність, затребуваність спеціалістів, значно менша конкуренція під час працевлаштування, ніж у сферах Design, Front-end, QА; синтаксис написання коду, сфери застосування, перспективи кар’єрного зростання та висока зарплата.
Після цього постало питання, який комп’ютер потрібен для комфортної роботи, чи потягне моя стара машина? Мене бентежило, або я прямо зараз обираю школу, сплачую курси та починаю навчання, або треба відкласти навчання та купити новий комп для початку, щоб була змога почати навчання 🙂.
Думаю, це питання хвилює не одного початківця. Звичайно, все залежить від напрямку, який ви оберете, від задач, з якими машина буде працювати. На моєму прикладі можу сказати — ноуту 12 років (Intel i5, процесор 1.60GHz, ОЗУ 4,00 GB, SSD 256) і для напрямків програмування та тестування його буде цілком достатньо, саме від цих параметрів і рекомендую відштовхуватися. Можливо, підійдуть і старші машини.
А якщо ви обрали для себе нетехнічний напрямок, наприклад, Project management, Business Analysis, Sales, HR/recruiting, Marketing і тому подібне, то достатньо буде, щоб офісні програми працювали, та інтернет.
Вибір школи для навчання
Тож я проаналізував умови навчання вісімнадцяти шкіл, відгуки випускників та студентів — і зробив вибір.
Для полегшення аналізу я зробив для себе табличку з критеріями відбору, обдзвонював школи та вносив туди інформацію за колонками для подальшого аналізу:
- назва школи;
- направлення навчання;
- початок навчання;
- період навчання;
- вартість курсу;
- графік за днями та за часом початку-закінчення онлайн лекцій;
- який документ видають по закінченню курсів;
- на яку тему і який саме буде фінальний проєкт, чи то буде командна робота або індивідуальна;
- чи є гарантоване працевлаштування за успішного закінчення та випуску з курсу.
Що мене переконало? Напевно, головними перевагами для мене стали:
- Програма та наповненість курсу. У підборі програми курсу дивився на технології та аспекти, що потрібні для роботи з Java. А під час аналізу ринку праці, виписав собі актуальний стек, який вказують у розміщених вакансіях і цінують роботодавці, а саме: JDBC, Hibernate, JPA, Spring Boot, AOP, Spring Security, Postman, MySQL, HTML, CSS, TypeScript, Angular, JSON, REST API, AWS;
- Вартість навчання;
- Бонусні заняття з англійської мови;
- Відгуки про школу від інших студентів та випускників.
Після завершення навчання, найголовніше, що я хочу відзначити — це отриманий досвід з написання та захисту особистого проєкту. Наразі я вважаю цей проєкт своїм найбільшим досягненням в IT! І саме він є основою мого резюме для пошуку роботи.
Мій досвід в IT на сьогодні
Зараз я періодично повторюю пройдений курс, щоб не забути отримані знання та скіли в процесі пошуку оферу. А паралельно з цим — займаюся додатковим самонавчанням, щоб отримати нові навички та стати більш універсальним та конкурентоспроможним кандидатом. Бо за піврічний період курсу неможливо опанувати все, навіть на рівні Junior.
Як я писав вище, курс дає основу, загальне розуміння і необхідний стек. Але коли починаєш шукати роботу, то бачиш, що у кожної компанії є свій спеціалізований напрямок обслуговування. Наприклад, це може бути фінансова сфера (банки, біржі), медицина (програми для взаємодії поліклініки з пацієнтами), машинобудування (програмне забезпечення для керування автомобілем — водій натискає одну кнопку і машина сама перелаштовується в інший ряд, тримає смугу руху, підтримує швидкість, паркується, автопілот), будівництво (міст в Баварії щосекунди вимірює коливання, вологість та тиск на асфальт), станкобудуваня (ЧПУ), вебсайти, торгові майданчики тощо.
Уявіть, що програма курсу це стовбур дерева, необхідний стек для конкретного роботодавця це гілочки, а відділи компанії це листя. Яка саме вакансія з’явиться на сайті роботи, ніхто не знає, якщо ти, наприклад, підтягнеш технології для машинобудування, а таких вакансій може довго не бути, то ти таким чином сам себе обмежуєш.
Тому рекомендую подивитися додаткові освітні відео на такі теми: AOP, Spring Security, Tutorial for Spring Data and SQL, Concurrency, Logger, Git, Deploing, Tomcat, Docker, Kubernetes, MongoDb, PostgresQL, Jira, Azure, Jenkins, Kafka, Agile and Scrum. Коли вже будеш мати базові знання, освоїти цей стек не буде складно.
А щоб закріпити їх та гідно презентувати потенційному роботодавцю — розробляю власні пет-проєкти. Після завершення курсу, поки шукаю роботу, на основі отриманих знань самостійно зробив Internet-shop for selling laptops (інтернет-магазин з продажу ноутбуків — стек Java, Spring Boot), на головній сторінці можна обрати ноут, клацнути по ньому і перейти до більш детального опису (стек Angular), обрати параметри та характеристики відповідно до яких буде сформована конкретна товарна позиція, додати товар у кошик (Cart), пагінація (Datatable), взаємодія з сайтом має розподіл по ролях при авторизації для адміна і простого користувача (Spring Security); ще вебсайт з продажу турів, Web-app для грошових переказів.
Під час самонавчання брав участь у тижневих онлайн-марафонах від відомих шкіл і освоїв нові навички, так я навчився розробляти телеграм-ботів (вивчення часів англійської мови, квест-гра, збір актуальних вакансій з сайтів-роботи за заданими критеріями та демонстрація користувачеві, також після марафону з фронтенд-розробки створив Landing pages (односторінкові сайти для презентації та продажу продукту).
Цей досвід дуже важливий для підняття твоєї кандидатури в очах рекрутера, його треба обов’язково додавати до CV.
Плюси та мінуси сфери розробки
Коли я сідаю за навчання або виконання практичних завдань, то не помічаю, як минає час. Тож це неодмінний плюс роботи в IT для мене! Бо інакше — чекай на швидке вигоряння.
Але є й мінуси в цій галузі, сподіваюсь, вони тимчасові. Наразі ринок перевантажений початківцями, тож знайти роботу з нуля складнувато. Найголовніша та мабуть, основна причина — це відсутність комерційного досвіду: робота над реальними проєктами, зіткнення з непередбаченими обставинами, швидке виправлення помилок, розбиратись у чужому коді, робота в команді за певними методологіями.
Роботодавці просто не хочуть чомусь навчати, відривати для цього зайнятих співробітників, їм простіше взяти готового спеціаліста. Тому буде перевагою, якщо школа активно допомагає в працевлаштуванні, а ще крутіше, якщо гарантує працевлаштування.
Мабуть, ця фраза стала вже крилатою: «Не можу знайти роботу, тому що не маю комерційного досвіду, а не маю комерційного досвіду тому, що не можу знайти роботу» 🙂
Тому рекомендую підіймати свої шанси завдяки вивченню додаткових технологій, напрацьовувати нові скіли, брати участь у різних марафонах і додавати нові навички. А от найголовніше, щоб хоч якось нівелювати відсутність комерційного досвіду, це здобуття не комерційного досвіду, який відрізняється лише тим, що ти не працюєш за офером на конкретну компанію, а робиш теж саме, але безкоштовно і для себе.
Для цього шукай на сайтах роботи або сайтах ІТ компаній вакансії у «Волонтерський проєкт», тобто ти будеш з командою і ментором працювати над реальним проєктом і... хмм, ну ніяк рука не підіймається написати «безкоштовно», буде коректним висловитися без грошової винагороди, але з неоціненним досвідом, який не за які гроші не купиш.
Також значним фактором буде, якщо вдасться потрапити у команду на платформі Team challenge, де новачки утворюють команду і під керівництвом Project manager створюють реальний бізнес-проєкт. Ще можна пошукати на Freelance-платформах розробників, яким потрібні помічники для тривіальних завдань, та перейняти у них досвід. У весь цей комплекс активностей додасть тобі таких важливих балів у резюме.
З такою ситуацією на ринку праці, ще дуже важливо мати підтримку рекрутерів від школи, які допоможуть і резюме правильно скласти, і своєчасно оновити під тенденції ринку, і підкидають нові вакансії, і хвалять, а якщо бачать, що ти відповідально ставишся до їх рекомендацій, то ще й рекламують тебе та рекомендують роботодавцям по своїм каналам. Все це дуже морально підтримує і надихає не опускати руки!
Плани на майбутній розвиток
Я прагну постійно вдосконалюватися та розвиватися як особистісно, так і професійно, маю палке бажання почати працювати. В моїх планах розвиватися с компанією, з якою ми станемо не просто партнерами, а ще й сім’єю, брати на себе нові відповідальні корпоративні завдання та гідно виконувати їх, досягти успіху та кар’єрно вирости, а у вільний час подорожувати з сім’єю.
Поради початківцям
Тож, якщо плануєте чи обрали ІТ, зі свого досвіду можу майбутнім учням порадити:
- Дивіться вебінари, лекції, відгуки про різноманітні напрямки, щоб обрати саме той, куди хочеться поринути з головою. Бо буде складно опанувати нову професію з нуля, якщо ви там не обмірковано, якщо основним критерієм вибору була зарплатня.
- Під час навчання, шукайте нову інформацію навіть поза матеріалу, що викладається, щоб глибше і ширше розуміти топіки. У моєму випадку це було глибше вивчення Java keywords, String methods, RegEx, Math methods, Inner Classes, Concurrency, Lambda, Stream.
- Після навчання, опановуйте нові технології, бо ІТ на місці не стоїть.
- Повторюйте пройдений матеріал, щоб бути у формі та бути готовим до бажаної співбесіди, яка може виникнути раптово.
- Напишіть власні пет-проєкти.
- Спілкуйтесь з однодумцями, додавайтесь у LinkedIn до людей, чий досвід вас зацікавив, не соромтесь писати. Читайте форуми та ІТ-спільноти. Відвідуйте офлайн події, де можна розбудувати свій нетворк у невимушеній атмосфері, бо наше оточення — це ми.
Бажаю вам внутрішнього стимулу до навчання та успіху на вашому шляху! Можливо, скоро ми з вами зустрінемось в одній IT-команді 🙂
P.S. А ось важливий додатковий матеріал для успішного навчання:
- Безкоштовне навчання за різними напрямами (інтернатури, стажування): training.epam.ua, career.softserveinc.com, gl-basecamp.
- Книга «Вивчаємо Java (Head First Java, Java.
8-е видання)», автор Герберт Шилдт. - Книга «Код. Таємна мова інформатики, 2019», для початківців від А до Я, автор C.Petsold.
- Книга «Основи Java», автор М. Прохоренок.
- Книга «Java. Ефективне програмування 3.0», автор J.Bloch.
- Книга про всі нюанси в Java — «Філософія Java», автор Брюс Екель.
- Заняття з англійської та складання резюме: www.engvid.com
- Складання резюме англійською на основі заповнення форми: coverquick.co, canva.
- Професійна перевірка рівня англійської від Oxford: www.oxfordonlineenglish.com/...ish-level-test/vocabulary
- Професійна перевірка рівня англійської з видачею сертифіката: www.efset.org/add-to-profile/?lang=en
- Перевірити свій рівень програмування.
- Експрес-курс з Angular.
- Питання на співбесідах для Java Developer.
- Найпопулярніші сайти з пошуку роботи: jobs.dou.ua, djinni.co, jooble, work.ua, robota.ua.
19 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів