JavaRush /Java блог /Random UA /Перекваліфікація на стероїдах
Alex Yedamenko
23 рівень

Перекваліфікація на стероїдах

Стаття з групи Random UA
Два роки і три місяці минуло з того часу, як я зареєструвався на JavaRush і написав HelloWorld. Давно треба було віддати шану чудовому ресурсу і написати цю статтю, але стрімкий перебіг життя якось не дозволяв. Але тепер "завдяки" відомому вірусу є час. Перекваліфікація на стероїдах - 1 Мені було 33. Я був соціальним працівником у Латвії, і жодного відношення до IT не мав. Останній досвід спілкування з кодом був 15 років тому. Проте, маленька зарплата та кар'єрна безперспективність змушували мене шукати альтернативу. Тут, якраз, багато моїх знайомих спробували себе в IT сфері. Причому ні в кого не було академічної айтішної освіти. Хтось улаштувався, хтось не дуже. Але вдалі приклади мене дуже надихнули, і я нарешті наважився. У Ризі одна всім відома консалтингова компанія раз на півроку організовувала серію безкоштовних буткампів (інтенсивних тренувальних курсів) з наступною можливістю (для тих, хто успішно закінчив) отримати практику і контракт. Якийсь час я витратив на роздуми щодо того, який курс вибрати. У результаті вибрав Java, оскільки саме цей буткамп надавав найбільшу кількість можливостей після закінчення. Мені вдалося провести розвідку та поговорити з учасниками буткампів, включаючи тих, хто вже отримав роботу у компанії. Розвіддані були такі: курс дуже інтенсивний, приходити туди з нульовими знаннями немає сенсу, краще взагалі все самому вивчити ще перед буткампом. Тому я звільнився з роботи (у листопаді 2017-го) за чотири місяці перед буткампом, засів удома на посібнику та нечисленних заощадженнях, і почав інтенсивно вчитися. Якою була програма навчання? Ну, по-перше, ясна річ, JavaRush — він був практичним крилом мого навчання. Теоретичним крилом був Head First Java (російський переклад, Java 5). І треба сказати, JavaRush та Head First Java чудово доповнювали один одного. Книга давала чудовий огляд базових можливостей мови. Причому подавався матеріал за допомогою легко засвоюваної візуалізації та асоціацій (склянка з пультом — це чудово). Знаю, що матір'я технарі цю книгу недолюблюють саме за подібну форму подачі, але якщо ви прийшли з гуманітарної сфери — це те, що треба. Таким чином, мій навчальний розклад виглядав так: з ранку 3 години теорії з Head First Java, після обіду - 3 години практичних завдань з JavaRush. 6 годин кожен день, включаючи суботу-неділю та всі свята. Дуже інтенсивно, навіть, можливо, занадто інтенсивно, я собі таким режимом заробив певні проблеми зі здоров'ям. Якщо у вас є час та фінансовий резерв, такий інтенсив не рекомендував би. Але в мене цього не було, і я не міг провалити буткамп. Так я займався 4 місяці до початку буткампа, дійшов до 23 рівня JavaRush з чесним вирішенням всіх завдань (а деякі з них змушували дуже попітніти) і закінчив книгу з виконанням всіх завдань. Було ще кілька тижнів до буткампа, можна було й далі за рівнями йти, але я вирішив освоїти всякі суміжні навички, як git. На початку березня 2018 року розпочався буткамп. Інтенсивність курсів теж була висока, але виявилося, що з усіх тем я не мав справу лише з двома: написанням юніт-тестів та JavaFX. Ставка на тверде самонавчання виправдалася. Виявилося, що я начебто і не найгірший у групі. Крім того, я вирішив проявити ініціативу та кинути пітч для фінального проекту. Зібралася маленька, але чудова команда, завдяки якій було створено додаток для роботи медсестер (бекграунд соціального працівника давав взнаки). Загалом, буткамп закінчився добре, і я отримав практику і навіть мав змогу вибирати спеціалізацію. Тут я зробив мерзенну зраду і замість хардкорної Java вибрав Salesforce. Salesforce починалася як хмарна CRM (Customer Relationship Management) система, яка давала досить широкі можливості для кастомізації. Але через багато років — це вже потужна повноцінна платформа, на якій можна робити майже все, що завгодно, я бачив безліч проектів, які ніякого відношення до CRM не мали. По суті, Salesforce зараз - це хмарна БД, до якої безліч способів можна прикрутити майже все, що завгодно. Для бекенда в Salesforce використовується Apex - свого роду "Java для пенсіонерів". Синтаксис Java нечутливий до регістру, немає керованої багатопоточності, відносно невелика кількість вбудованих класів, практично весь код крутиться навколо запису та вилучення з бази даних Salesforce. Але є й свої складнощі. Запуск Apex-коду відбувається за сервера, де теоретично кожен користувач Saleforce може претендувати всю потужність хмари, і щоб запобігти монополізацію ресурсів, існує безліч лімітів (governor limits). Ці ліміти накладають відбиток на всі кастомізації Salesforce, включаючи Apex. Це призводить до того, що часом Apex-код з точки зору Java-розробника виглядає дивним. Крім Apex, в SF існує три своїх фронтенд-фреймворку: Visualforce, Aura Components і зовсім новий Lightning Web Components. Перші мої завдання після отримання контракту на початку липня були пов'язані з другим із них. Це було моє перше знайомство з JavaScript: мовою, яку я важко, але поступово полюбив. Втім, я активно працював і з JavaScript, і Apex, т.к. перше, що я дізнався про Salesforce, це - every marine is a riflemanу Salesforce ми всі Full Stack. Крім того, як я вже згадував, Salesforce — це цілий світ: не просто якась окрема мова. Крім коду є безліч декларативних тулів - Process Builder, Flow Builder, Workflow Rules, Validation Rules та інші. Мені це дуже подобається, т.к. означає, що одне завдання має безліч рішень, і зазвичай оптимальне їх пов'язане з можливістю уникнути коду. Були випадки, коли деякі розробники не замислюючись писали стіну коду, щоб виконати завдання, яке вирішувалося позначкою двох чекбоксів у конфігураціях. Загалом перші два місяці я інтенсивно освоював платформу, а потім отримав контракт. Працювати відразу довелося тільки англійською, але з цим проблем не виникло, і я зовсім не пошкодував, що навчався російською. Освоювати досить складні поняття мені було легше рідною мовою. Перші три місяці контракту я психовав, але згодом втягнувся. Здав пару Salesforce сертифікацій - App Builder і Platform Developer 1. Далі все увійшло до колії: я рівно відпрацював півтора роки в моїй першій компанії (дякую їй величезне за це), потім через LinkedIn отримав запрошення з Лондона, звідки я зараз і пишу цю статтю у наглухо замкненій кімнаті, обклавшись продуктами, дезінфекторами і найціннішим у наш час папером — туалетним. Моя нова компанія працює з Vlocity, що встановлюється на Salesforce керованим пакетом: по суті, платформою на платформі. Vlocity дає безліч додаткових тулів для кастомізації та створення інтерфейсів користувача. На даний момент у мене всього 20-30 відсотків роботи пов'язано з кодом, решта - з цими самими тулами. Але я, в принципі, дуже задоволений. JavaRush я рекомендував усім друзям, які цікавабось можливістю перекваліфікації. Це абсолютно незамінний інструмент (у російськомовному сегменті точно). Деякі завдання провокують пару з вух, витрачав на них 2-3 дні. Це дуже гарний наруб експи. До речі, у роботі зустріч із подібними завданнями була досить рідкісною подією. У цілому нині перекваліфікація на розробника із соціального працівника зажадала інтенсивних зусиль, але чимось на кшталт сходження на Еверест це таки був. Моя порада: вчитеся старанно, але не варто перенапружуватися (можете мати проблем зі здоров'ям). 1-2 години на день недостатньо, 6 багато, 3-4, напевно, якраз. Якщо є можливість піти з роботи, йдіть. Поєднувати роботу з навчанням для мене виявилося не варіантом після перших спроб. Сім'я моя звільненню не була рада, але в моєму випадку ризик виправдав себе. Якщо є заощадження, їх використання у такій ситуації можна розцінювати як інвестицію у себе. Вивчіть усі доступні великі консалтингові компанії. У некризові часи вони мають багато проектів, їм потрібно багато розробників, вони готові дати шанс новачкам, часто самі організують навчання. І головне: їм важлива не твоя освіта, а твій скилл. Якщо ви capable, з консалтингу вас ніхто не вижене. Ну ось, власне, і все: бажаю вам удачі у ваших перших кроках у світі IT. Гризить всі JavaRash завдання підряд, не філоньте, пересякуючи в наступні теми. Практика тут поставить вам мислення у потрібне русло. Якщо це станеться, то повірте: ви не пропадете не тільки в Java, а й у будь-якій іншій мові чи технології.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ