Математичний факультет — «бонус» до вивчення програмування? Усе залежить від того, скільки докладати зусиль до засвоєння предметів, які з ним пов'язані.

Це історія Романа з Харкова. Сьогодні — Senior Java Developer'а, в середині 2015-го — студента, який вступив у магістратуру з прикладної математики. Оригінал історії тут, нижче викладено найголовніше з неї.

З освітою математика в наших реаліях добре заробляти можна тільки програмістом — це Роман знав точно. А ось Java вибрав радше випадково, ніж усвідомлено. Учитися тільки за книжками не хотілося, як і на очних курсах: студент вирішив, що грошей вони коштують багато, а профіту від них мало.

А потім знайшов JavaRush. Це було в кінці серпня — на початку вересня 2015 року.

План вивчення Java

Складаючи план навчання, Роман виходив із того, що часу на розкачку в нього не було.

Він поставив собі за мету швидко отримати знання, щоб не втратити інтерес до навчання, але водночас не перевантажити мозок.

Для цього він вирішив:

  1. Навчатися п'ять днів на тиждень (з понеділка по п'ятницю).
  2. У вихідні дні займатися чим завгодно, тільки не навчанням.
  3. Відводити 4 години на кожне заняття, після кожної години — 15-хвилинна перерва: пройтися, відпочити й зробити чай.

Разом — 20 годин на тиждень. Непогано, правда? До того ж іноді доводилося ходити в університет, оскільки Роман усе ще навчався в магістратурі.

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

Перехід на новий рівень

Через три місяці від початку навчання Роман задумався, що ще потрібно знати, щоб влаштуватися на роботу. За порадою звернувся до знайомих програмістів.

І тут понеслося: якісь незнайомі слова, бази даних (о жах!) і багато іншого дали зрозуміти, що треба прискорюватися й розвивати діяльність за всіма напрямами. Ці поради напевно допоможуть і вам.

  1. Читання книжок. У випадку з Романом була корисною «Head First Java», що її рекомендують зовсім зеленим новачкам. Вона допомогла ґрунтовніше зрозуміти деякі нюанси.
  2. Нетворкінг. Усі тематичні програмістські тусовки у своєму місті (і не тільки) потрібно відвідувати. Навіть якщо багато чого буде незрозуміло — це занурення в середовище.
  3. Айтішні онлайн-ресурси. Медіа для програмістів, відеокурси на YouTube, форуми — у все це потрібно обов'язково вникнути, почитати корисні статті, щоб скласти цілісну картину розвитку Java-розробника.
    Особисто ми рекомендуємо почати з розділів «Статті», «Форум» і «Чат» на JavaRush :)
  4. Опанувати суміжні технології: MySQL, HTML і CSS і багато іншого.
  5. Створити собі крутий профіль на LinkedIn, описати всі навички, активно розширювати коло професійних зв'язків.
    Роман ділиться своїм досвідом: «Зараз у мене понад 10 000 друзів на LinkedIn. Для початку це потрібно. І це допомогло, [коли] команда андроїд-фрилансерів шукала новачка собі, і мені написали».

Перші невдачі

Звичайно, паралельно з навчанням Роман шукав інтернатуру в компаніях і одного разу потрапив на співбесіду. Він не був готовий до того, щоб переконливо розповісти про себе англійською та відповісти на всі запитання техліда. Тестове завдання, за його словами, «якось зробив, причому не весь функціонал». Згодом отримав відмову й вирішив рухатися далі.

Першу роботу Роман отримав завдяки LinkedIn, де йому запропонували взяти участь у проекті, пов'язаному з Android-розробкою. Реальні завдання, звичайно ж, були складнішими, ніж задачі на JavaRush, і доводилося багато вивчати в ході роботи. Тестовий проєкт не вдалося вивести на новий рівень, оскільки поступово почав розвалюватися колектив, і довелося шукати нову роботу.

Пошук нової роботи

Куди податися? Роман прочесав DOU, де знайшов відповідні компанії та їхні контакти у своєму місті, і взявся за масову розсилку.

Щоб усе мало гарний вигляд, він написав резюме англійською мовою. За його словами, там було багато «води», бо писати, на його думку, особливо не було чого. Обов'язковий пункт — супровідний лист (теж англійською), щоб рекрутери розуміли, на яку позицію він претендує і чому. Склав для співбесіди промову англійською на тему: "Tell me about yourself". Дуже корисна річ.

На співбесідах було складно, було соромно, було незручно, але Роман пройшов їх. У деяких компаніях просто хотіли поспілкуватися, в інших потрібно було зробити пару завдань.

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

За підсумком чотирьох співбесід у двох компаніях Роман отримав відмову, у двох — оффер: один на позицію Android-розробника, інший — на Java. Він «метався» й не знав, що робити, але в результаті став Java-розробником.

Кілька років по тому Роман — Senior Java Developer, який у вільний час активно займається open source проєктами (ось його профіль на GitHub) і часто ділиться корисним досвідом зі студентами в «Статтях» на JavaRush.