Кажуть, людям без технічної освіти в програмуванні не місце. Лякають, що після 30 років нема чого й думати про зміну професії. А якщо тільки в 30 стало зрозуміло, що весь попередній багаж знань і весь досвід завели «не туди»?

Насправді все не так страшно. Програмістом може стати хто завгодно і в будь-якому віці. Ось історія нашого студента (PielsLie) із Санкт-Петербурга, який отримав гуманітарну освіту й 10 років займався менеджментом і продажами.

На час написання цієї історії успіху йому було 32. Приблизно за 5 місяців він дійшов до 35-го рівня на JavaRush, 2–3 місяці пішло на самоосвіту й написання проєктів, ще кілька — на пошук роботи, перш ніж він отримав хорошу пропозицію та влаштувався розробником. Оригінал історії — за посиланням, а тут — найважливіше з неї.

ЕТАП 1. Навчання

До основного джерела навчання було висунуто чіткі вимоги: структурований виклад матеріалу з Java Core, багато практики й велике ком'юніті:

  • на співбесідах можуть запитати що завгодно щодо "кору": від побітного зсуву й перетворення узагальнень до IO та серіалізації;
  • практика — обов'язкова; у програмуванні можна щось запам'ятати, тільки якщо глибоко розібратися в матеріалі й закріпити його на практиці;
  • ну й ком'юніті: розв'язав задачу — похвалися в коментарях; не розв'язав — ласкаво просимо в розділ запитань, але готове розв'язання тобі, найімовірніше, ніхто не дасть.

JavaRush підійшов за всіма пунктами як головний майданчик для навчання, а підкріплювати знання випускник радить читанням книг: «той самий Шилдт найкраще заходить як "накладання" на досліджувану тему й часто розкриває деякі моменти».

Поради для тих, хто починає вивчення Java з нуля

  1. Починати з нуля важко всім. Відсоток студентів, які дійшли до кінця курсу, не такий вже й великий. Ваше завдання — потрапити до їх числа.
  2. Найбільша зацікавленість з'являється за місяць-два, коли завдання стають складнішими й цікавішими. Перетерпіть.
  3. Головне — це щотижневий прогрес. Вже після двох тижнів відпочинку повертатися складно, але й писати код щодня кілька місяців поспіль не кожен зможе.

Установіть собі норму в годинах на тиждень — скажімо, 15. Ви можете кодувати по 1,5 години по будніх днях і ще по 3–4 години на день по вихідних. Звичайно, можна відпочити один-два вечори, але тоді «норма на вихідні» збільшиться. Таким чином, графік буде гнучким, але регулярним. Звичайно, потім можна буде міряти роботу задачами й проєктами, але під час вивчення синтаксису та ядра підійде й годинник.

В цілому на проходження курсу (до моменту доступу до стажування) пішло близько 5 місяців, включно з відпустками й короткими перервами, і це в умовах стандартної п'ятиденки, яка залишала вільними тільки вихідні дні та будні вечори з 22 до 00.

Тож у разі вільнішого графіку або жорсткішого навчального режиму можна впоратися значно раніше.

ЕТАП 2. Самоосвіта

Досягнувши 35-го рівня, кілька місяців самостійно розбирався зі Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, РСУБД, опановував SQL і збирав усе це в єдине ціле. Через півроку в студента були проєкти, завдяки яким він отримав практичний досвід використання «дорослих» фреймворків, і профіль на Github, який можна було показувати за запитом потенційного роботодавця.

Як скласти індивідуальний план розвитку

  1. Пробігтися по вакансіях Junior/Middle Java Developer (або іншого цікавого напрямку) і подивитися, які саме технології та фреймворки зазначають найчастіше.
  2. Виписати їх, придумати під них тестове завдання, встановити собі терміни на реалізацію.

Або таки докласти зусиль і потрапити на онлайн-стажування JavaRush, вивчити там актуальний стек технологій і попрацювати над живим проєктом для пристойного портфоліо джуна.

ЕТАП 3. Пошук роботи

Цей етап був найдовшим і минув не так гладко, як два попередні.

Надсилання чесних резюме новачка

За 2–3 місяці після виконання домашніх проєктів студент відправив близько 30 відгуків на вакансії Junior/Trainee (через HH, LinkedIn, кадрові агентства), вказавши в резюме стек знайомих технологій, деякі софт-скіли та трохи применшивши свій досвід.

У підсумку — два дзвінки, один з яких одразу закінчився на «pre-intermediate English» (отже, вчіть англійську теж). Ще 2 компанії надіслали ТЗ, «зустріч» була одна, з результатом «ми вам зателефонуємо».

Спроба потрапити на стажування

Можливо, досвід можна отримати на неоплачуваних або умовно-оплачуваних стажуваннях і якось закріпитися у великій IT-компанії? Це хороший спосіб, але, як виявилося, не для всіх. Автор нашої історії виконав ТЗ, але не просунувся далі фінальної співбесіди.

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

Це тривало, доки він не зустрівся з одним знайомим і не поділився з ним невдачами в пошуках роботи джуном. На той момент знайомий працював мідл-розробником, але починав так само — із самостійного навчання.

Знайомий дав кілька рекомендацій (в якомусь сенсі трохи «чітерських», як вважає автор):

  1. У будь-який спосіб забезпечити собі в резюме 6+ місяців комерційного досвіду: стажування, випускні проєкти, фриланс, віддалена робота — все, що завгодно. Це дуже допоможе на етапі початкового відсіву резюме HR-ом.
  2. Прибрати з резюме слово Junior і очікувану зарплату; залишити просто Java Developer, зарплату обговорювати індивідуально з кожною компанією.
  3. Поводитися так, щоб HR повідомляли «вилку» пропонованої зарплати раніше, ніж ви повідомите про свої очікування. Якщо компанія пропонує 1–1,5 тисячі доларів, а ви зі старту готові йти на 500, частина рекрутерів ставитиметься до вас зневажливо.
  4. Відгукуватися на всі вакансії, які підходять за стеком, навіть якщо потрібен комерційний досвід 1–3 роки.

І все вийшло.

Перша пропозиція

Після того, як автор історії виконав рекомендації, ситуація з пошуком значно покращилася.

По-перше, половина з 12 нових відгуків майже відразу закінчилася або зустріччю, або інтерв'ю по Скайпу, або отриманням ТЗ.

По-друге, HR-и почали писати за власною ініціативою — в месенджери, на пошту, в LinkedIn.

По-третє, вимоги комерційного досвіду виявилися дійсно не надто суворими: багато компаній були готові спілкуватися з кандидатом, що не потрапляє в зазначений діапазон 1–3 роки корпоративної практики.

У підсумку — одна пропозиція на джуна, одна — на мідла з випробувальним терміном. Загалом пошуки тривали два місяці.

Неможливо багато-багато писати мовою Java, потім довго-довго шукати роботу й у підсумку ні до чого не дійти.

Вода камінь точить. Як пише автор історії, «якщо вже 30-річний гуманітарій витягнув, у вас теж вийде. Головне — не боятися перших дзвінків, ТЗ та інтерв'ю. Кожен «провал» може стати шансом дізнатися щось нове про себе й підтягнути знання, яких не вистачає. І з кожним разом почувати себе впевненіше».