JavaRush /Java блог /Random UA /Народження програміста: за 9 місяців із нуля до Java Deve...
hermanurikh
20 рівень
Санкт-Петербург

Народження програміста: за 9 місяців із нуля до Java Developer

Стаття з групи Random UA
Всім привіт! Ось і закінчився мій випробувальний термін на новому робочому місці, і тепер я можу нарешті поділитися своєю історією працевлаштування. Мені 22 роки, маю економічну освіту. Ще рік тому (у лютому – березні) я не мав жодних навичок програмування, і з Java стикався тільки в іграх на старих Siemens (у вигляді вітального вікна "powered by Java" при запуску гри). Народження програміста: за 9 місяців з нуля до Java Developer.Рік тому я працював у відділі технічної підтримки. Робота не сказати, щоб погана чи не подобалася, але не дуже цікава. І склалося так, що в один момент задумався — добре було б мати роботу, на яку ти не йшов би з відчуттям "млинець, знову працювати", а щоб вона приносила задоволення. Подумав — а що б я робив, якби я мав, умовно, рік, протягом якого мені не треба було б обов'язково заробляти гроші, а я міг би займатися чим хочу? Відповідь якось прийшла сама собою — сидів би вдома і вчився програмувати. Тоді я вирішив, що справа за мною. Я розумів, що буде складно вивчати програмування з нуля, що це тимчасовий відкат у кар'єрі (я не сумнівався, що Junior Developer отримував менше, ніж я на тому робочому місці), але сприйняв це як крок назад заради того, щоб зробити два кроки вперед . Окей. Сказано зроблено. Так як я не розбирався в мовах програмування абсолютно, першою ідеєю було вивчати мову, про яку був чути найбільше (нею розробляли софт в компанії, де я працював) - PHP. Гаразд, дівчина відмовила. Підказала, що у них у компанії (що розробляє мобільні додатки) андроїдири пишуть на Java + зарплата у них начебто хороша. Я погугл-погугл, подумав і вирішив вивчати Java. Моїм першим кроком були традиційні спроби вивчення чогось нового – озбройуєшся книгами, освоюєш теорію, і вперед! Так у мене з'явилася книга Хорстманна та Корнела - Java. Основи. То був березень 2014 року. Взагалі кажучи, все життя вивчати щось за книгами мені виходило відчайдушно погано. Ймовірно, це з тим, який спосіб сприйняття переважає в людини. Я завжди дійсно засвоював матеріал лише після того, як фактично його пропрацював, закріпив, погрався з ним. Тому мої перші спробивчити Javaза книгою були приречені на провал. Хоча книга гарна. Десь у квітні я натрапив на групу JavaRush вконтакті. Далі все помчало як по рейках. Вирішувати завдання, багато завдань, які супроводжуються невеликою кількістю теорії, — явно оптимальний спосіб вивчення матеріалу (принаймні для мене). Я сидів удома, я сидів на роботі та вирішував, вирішував, вирішував) Саме тоді я додатково переконався, що програмування мені цікаве. Я не міг пригадати, щоб над чимось так зависав. Пройшло три місяці, за які я дійшов до 20 рівня. Мені здавалося, що подальше вивчення мови йтиме набагато швидше, якщо вже отримати роботу програміста — тоді ти будеш у цьому середовищі по 8 годин на добу 5 днів на тиждень і дуже швидко розвиватимешся. Таким чином, у серпні я почав розсилати резюме. З кількох місць мені надіслали тестові завдання, за результатами яких пропозицій про роботу я не отримав - оглядаючись назад, я не здивований жодного разу - завдання то поставлене я, можливо, і вирішив, але який же поганий у мене був стиль написання коду) У цьому, до речі, невеликий мінус JavaRush - доки завдання вирішена і тести пройдені, завдання зараховується, хоча твій код може залишати бажати сильно кращого. Достатньо встановити в Intellij IDEA той самий плагін Checkstyle, і ситуація буде іншою - він підкреслюватиме "сумнівні" моменти в коді, що дозволить писати не тільки робочий, а й красивий, правильний код. Як би там не було, у вересні мене покликали на першу співбесіду. Вакансія містила приблизно таке – розробник будь-якого рівня, ми запропонуємо зарплату, що відповідає навичкам. У цьому співбесіді завдання були приблизно такі — дано фрагмент коду. Чи правильно він написаний і які можуть бути проблеми? Не пам'ятаю, скільки я правильно вирішив. Взагалі потрібно було пам'ятати про Null, майже всі питання були про нього - що не варто звертатися до параметра методу, не перевіривши його раніше (if param! = null). За результатами мені запропонували перший місяць працювати безкоштовно (як стажування), потім зарплату, яка є нижчою (хоч і не сильно), ніж на тому місці роботи, де я був. Я добре розумів, що мені й не варто очікувати чудових пропозицій, бо теорії знав мало, практика тільки з JavaRush, нуль досвіду і так далі. Тому я домовився, що вийду за 2 тижні (потрібний час для звільнення на старому місці). Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне: Взагалі потрібно було пам'ятати про Null, майже всі питання були про нього - що не варто звертатися до параметра методу, не перевіривши його раніше (if param! = null). За результатами мені запропонували перший місяць працювати безкоштовно (як стажування), потім зарплату, яка є нижчою (хоч і не сильно), ніж на тому місці роботи, де я був. Я добре розумів, що мені й не варто очікувати чудових пропозицій, бо теорії знав мало, практика тільки з JavaRush, нуль досвіду і так далі. Тому я домовився, що вийду за 2 тижні (потрібний час для звільнення на старому місці). Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне: Взагалі потрібно було пам'ятати про Null, майже всі питання були про нього - що не варто звертатися до параметра методу, не перевіривши його раніше (if param! = null). За результатами мені запропонували перший місяць працювати безкоштовно (як стажування), потім зарплату, яка є нижчою (хоч і не сильно), ніж на тому місці роботи, де я був. Я добре розумів, що мені й не варто очікувати чудових пропозицій, бо теорії знав мало, практика тільки з JavaRush, нуль досвіду і так далі. Тому я домовився, що вийду за 2 тижні (потрібний час для звільнення на старому місці). Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне: За результатами мені запропонували перший місяць працювати безкоштовно (як стажування), потім зарплату, яка є нижчою (хоч і не сильно), ніж на тому місці роботи, де я був. Я добре розумів, що мені й не варто очікувати чудових пропозицій, бо теорії знав мало, практика тільки з JavaRush, нуль досвіду і так далі. Тому я домовився, що вийду за 2 тижні (потрібний час для звільнення на старому місці). Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне: За результатами мені запропонували перший місяць працювати безкоштовно (як стажування), потім зарплату, яка є нижчою (хоч і не сильно), ніж на тому місці роботи, де я був. Я добре розумів, що мені й не варто очікувати чудових пропозицій, бо теорії знав мало, практика тільки з JavaRush, нуль досвіду і так далі. Тому я домовився, що вийду за 2 тижні (потрібний час для звільнення на старому місці). Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне: Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне: Паралельно з цим я подав резюме до іншої компанії. Ця компанія пропонувала наступне:
  • 2 місяці навчання Java EE (2 рази на тиждень по 4 години)
  • якщо результати показуєш добрі (захищаєш свій проект успішно, який пишеш ці два місяці), то тобі пропонують працевлаштування.
Компанія дуже хороша, іноземна, відома, та й умови роботи відмінні – словом, хотів я туди значно більше, ніж туди, де мені вже зробабо пропозицію. Відбір навчання у неї передбачав 3 етапи:
  1. Виконує практичні завдання вдома.
  2. У разі успіху тебе запрошують на комп'ютерне тестування в офісі.
  3. У разі успішного тестування цього ж дня з тобою проводять співбесіду.
З практичними завданнями я впорався без особливих проблем - тут величезне спасибі JavaRush та їхнім завданням, після яких ці завдання видалися досить простими. Завдань було 3: на RegExp (гугл допоміг, бо сам я їх терпіти не міг і не пам'ятав), на алгоритми (досить проста, на міркування швидше) і на запис читання з файлу (таких в курсі JavaRush дуже багато). Мене запитабо на комп'ютерне тестування. До тестування я готувався по сайту quizful . Ці тести дуже допомогли, деякі питання навіть перетиналися. Зробив тест успішно, мене почали співбесідувати. Цю співбесіду я, мабуть, ніколи не забуду в житті. Все, що хотів почути від мене людина, що співбесідує мене, - основи теорії Java, як то:
  • чим відрізняються checked exceptions від unchecked;
  • які методи є у класу Object і для чого вони потрібні;
  • які бувають колекції та навіщо вони;
  • і трохи про багатопоточність.
JavaRush - відмінний курс, він навчить вас вирішувати завдання та програмувати, але теорію (для співбесід) потрібно навчати окремо, в чому я і переконався, плаваючи в цих питаннях, як риба в акваріумі. Мене хотіли завернути. Я його розумію - я не міг виразно майже ні на що відповісти, все намагався розповідати з погляду написання коду, а його цікавила теорія. Але я твердо знав, що я дуже хочу потрапити на це стажування, і я знав, що якщо мені дадуть час, я все це надолужу і вивчу нещасну теорію. Все це я йому так і сказав, і він пішов мені назустріч - запропонував за тиждень зустрітися ще раз, а поки що дав список тем (приблизно, як я описав зверху) і сказав, де їх можна вивчити - просто туторіал оракла, в ньому є все: http://docs.oracle.com/javase/tutorial/ За тиждень я вивчив цей туторіал і пішов на повторну співбесіду напередодні дня, коли мене чекали на новій роботі. Судячи з усього, людину, яка співбесідувала мене, найбільше зачепила саме моя цілеспрямованість (я знав, що якщо я вчиню на це стажування, подальше залежить тільки від мене - за два місяці я б розібрався з усім, чим треба). Як би там не було, я вступив на це стажування і відмовився від виходу на роботу на тому місці, куди мені пропонували раніше. За 2 місяці нас познайомабо з багатьма темами з Java EE, як-от: Servlets, JSP, Hibernate JSF, Spring і багато іншого - за підсумками стажування ми були знайомі (приблизне уявлення мали точно) про основний стеку технологій Java EE. Також упродовж стажування ми писали свій проект, який на виході треба було успішно уявити для працевлаштування. Я просто пам'ятаю свої перші відчуття коли був на першій лекції. Я дивився на завдання цього проекту (його видали відразу на першій лекції) і не розумів навіть близько, з чого тут починати і як це робити. Також я пам'ятаю, чого мені варто було його успішно зробити. Ці два місяці майже всі думки в моїй голові були про те, що успішне працевлаштування та здійснення мрії — у моїх руках і тільки. Більше ні від кого не залежало, чи я зможу його зробити. Лише від мене. Я вже звільнився з роботи, сидів майже без грошей, і це було справді важко. Сидів із ранку, сидів удень, сидів увечері, проте не втомлювався радіти — я не пам'ятаю, коли ще я з такою одержимістю присвячував себе чомусь. Цей час ще раз допоміг мені усвідомити, наскільки мені подобається програмувати і наскільки я хотів би працювати в цій галузі. На випуску я презентував свій проект. Захистив його дійсно добре, зважаючи на все, значно краще, ніж очікувалося, і як виняток мене взяли не на початкову посаду, а відразу на позицію Middle Java Developer. Це було 9 грудня 2014 року. Я не міг повірити цьому, але пропозиція про роботу була переді мною на моєму моніторі. Інженер-програміст. Це сталося. Із 15 грудня я вийшов на роботу. Ще жодного разу не виникала в мене думка "млинець, не хочу йти на роботу". Щодня, виходячи з ранку з дому, я знаю, навіщо я йду працювати, що робитиму, і наскільки я цього хочу. Це шалено радує. Це вартувало й коштувало тієї ціни, яку довелося заплатити за досягнення своєї мрії. Я бажаю всім, хто дійсно хоче бути програмістом, йти вперед у досягненні своєї мети. Вона більш ніж реальна, вона поряд, але за неї треба заплатити. Заплатити своїм витраченим часом, нервами, адже вивчати щось з нуля – справді не найлегший крок. JavaRush допоміг мені зробити ці перші кроки з легкістю, і не я відвернувся від програмування на самому початку через уявну складність і розмаїття теорії. Таким чином я зміг довести свою досить шалену ідею щодо кардинальної зміни галузі професійної діяльності (ще й за відсутності технічної освіти) до кінця. І ви обов'язково зможете. Таким чином я зміг довести свою досить шалену ідею щодо кардинальної зміни галузі професійної діяльності (ще й за відсутності технічної освіти) до кінця. І ви обов'язково зможете. Таким чином я зміг довести свою досить шалену ідею щодо кардинальної зміни галузі професійної діяльності (ще й за відсутності технічної освіти) до кінця. І ви обов'язково зможете.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ