JavaRush /Java блог /Random UA /Java Middle за 2.5 місяці

Java Middle за 2.5 місяці

Стаття з групи Random UA

Досьє

  • Хто: Толеген Ізбасар
  • Місце проживання: Астана
  • Вік на момент старту навчання Java: 23
  • Перша робота програмістом: 2 місяці після старту навчання
  • Оригінал історії успіху
Java Middle за 2.5 місяці - 1
Чи можна дуже швидко проскочити стадію Junior і одразу стати Middle-програмістом? В принципі, можна, але не так це просто. "Не знаннями єдиними", - вважає герой цієї історії успіху, але знань у нього, треба сказати, дуже чимало. Нестандартна історія успіху, в якій автор розповідає, яку роль у швидкому підвищенні можуть відіграти уважність, цигарки та стратегічне планування. Вітаю всіх читачів, які подумали, що за 2.5 місяці з нуля справді можна стати Middle . Поспішаю вас засмутити: це можливо тільки за дуже старанної роботи над собою, а я знаю, як усім хочеться всього й одразу причому — прямо зараз і ніяк інакше. Та й фраза з нуля до мене застосовна лише умовно. Так, мова програмування Java у мене дійсно була абсолютно нульовою. Але дещо я все-таки вже знав і вмів ще до знайомства з Java Rush і, мабуть, мені хотілося б почати свою розповідь саме з цього, тому що моє кар'єрне зростання — досить дивне поєднання знань, умінь і успіху до певної міри.

Перед JavaRush

Отже, дозвольте навести список, завдяки якому я і набув конкурентної переваги перед іншими, а також дозволив пройти Java Rush ( до 34 рівня ) досить швидко і без особливих складнощів ( принаймні вони мене не здивували ). Список складається зі знань, які я отримав в університеті, а також з того, що мені самому було цікаво. Не розділятиму, де що лежить, і називати університет теж не буду. За бажання можна засвоїти ці знання самостійно. Алгоритми та структури даних : мій шлях у цьому напрямі розпочався з вивчення принципів побудови алгоритмів, читання класичних книг ( Кнут ) та вивчення мови програмування Pascal . Продовжився він мовою C , реалізацією всіх структур даних та розбором переваг та недоліків кожного з них. Не буду говорити, що також вмію працювати з Машиною Тьюринга та Алгоритмами Маркова… вже сказав, але ви можете пропустити це повз вуха. Хоча на мою скромну думку, поняття про нескінченну стрічку пам'яті і рух покажчика по ньому, дає найбільш правильне уявлення про те, як все-таки працює комп'ютер зсередини. Архітектура комп'ютера та Assembler : коли ви вирішите, що повністю розібралися з принципом роботи комп'ютера, спробуйте писати програми на дуже низькому рівні ( інакше як ви оціните всі принади Java ? ). Я розглядав усі навчальні варіанти з одним, двома, трьома регістрами і зрозумів, як доводиться викручуватися, коли регістр лише один, а програма працює (дивно, правда?). Дискретна математика : варто взятися ще й за цей предмет, тому що він дає повне уявлення про логічне мислення, а теорія кінцевих автоматів розповість вам, як влаштовані «начинки» процесора, як вони організовані в інтегральних схемах. Також у рамках цього предмета вивчають Теорію графів, яка 100% зайвою не буде. Вища математика : вирішив виділити всі інші математичні предмети в один пункт, щоб не надто забивати голову. Тут лежать: математичний аналіз, теорія ймовірностей та статистика, лінійна алгебра. Остання, до речі, дуже важлива, якщо ви плануєте займатись тривимірною графікою. Знаю, у всіх мрія — писати ігри, щоправда, для цього доведеться ще й курс диференціальних рівнянь з чисельними методами пройти. Архітектура Linux : після того, як освоїтеся тут, багатопоточність у Java викличе набагато менше питань, та й виявиться, що казку про філософів ви десь чули. ООП, мова C++ :ну ось, майже дісталися вершини харчового ланцюга. Не буду тут докладно писати, чому реалізацію ООП саме на C++ дивитися набагато цікавіше. Додатково ще пара дрібниць, яку я вже знав, були: комп'ютерна графіка ( OpenGL , Unity 3D ) і C # ( Core ).

До чого тут JavaRush?

Ну ось, разом із усім цим барахлом знань, ще у вересні минулого року я натрапив на Java Rush , перегорнув пару рівнів і забив, бо досить просто знайшов роботу після університету ( не програміста, але в IT… Може, хто здогадається, що це могло бути? ). Але невдовзі виявив, що мені це стало зовсім не цікаво, за пару місяців я майже досяг стелі і зрозумів, що розвиватися тут немає сенсу, хоча керівництво компанії пропонувало майже цікаві варіанти (серед яких був DevOps ) . Їх я відкинув. Паралельно я займався підготовкою школярів до олімпіад з інформатики ( забув згадати — мені дуже подобалося спортивне програмування ), та й після виходу з основної роботи пішов туди з головою. Приблизно 4-5 місяців мене все влаштовувало, доки і ця справа мені не набридла. Питання повторювалися, всі теми були пройдені і ось тут-то я згадав про Java Rush .
«Будучи раціоналістом (жадіною), я спочатку від кірки до кірки пройшов 10 початкових рівнів, потім заглянув подалі (вистачило рівня до 15 на кшталт), зрозумів, що це досить цікаво і у властивій мені манері займався цим просто у будь-який вільний момент. Чи є зайві 5 хвабон? Відмінно, допишу логіку методу.
Отже: я купив дві місячні підписки. За перший місяць пройшов від 10 рівня до 28 , за другий неповний ( приблизно 15 днів ) пройшов від 28 до 34 рівня . По хронології - це був квітень-середина травня, тобто витрачено 1.5 місяці ( у рублях самі порахуйте ). Не говоритиму, як варто займатися, а як не варто — про це вже багато сказано.

Працевлаштування

Десь на 30 рівні я переглянув вакансії у своєму місті і вирішив не поспішати, розсилаючи резюме всім підряд, а точково вибрати бажану компанію, підготуватися до неї і лише після цього відправляти свої каракулі до HR- відділу . Каракулі я теж дуже старанно вивів, і вийшло дуже нічого. Мене досить швидко запитабо на співбесіду. Я пройшов його дуже впевнено (принаймні те, що стосується Java Core ). Не розписуватиму, які були питання. Проблеми почалися, коли в мене запитали, як працює Spring, і чи я знаю хоч якісь Enterpriseтехнології . Власне, я сказав, що не знаю, а з таким рівнем — Junior гарантований (вище не стрибнете), але я все ж таки стрибнув і ось тут, напевно, починається найцікавіша частина. Загалом, коли мені пояснабо умови ( 2 місяці – випробувальний термін, позиція – Junior та вилка зарплат ), я зрозумів, що мені вони не дуже подобаються, але погодився. Тільки запитав, чи можу я приступити до роботи пізніше, мотивувавши тим, що мені необхідно було закінчити справи на поточній роботі, перш ніж приходити до нової компанії. Таким чином, я вибив майже місяць для підготовки. На співбесіді я був на початку травня, а працював 23 числа. Звичайно, я ще раз вивчив вимоги, дізнався, які використовуються технології (Java EE 6) і готувався до роботи.

Middle чи Middle?

Приступивши до роботи, я виявив, що вони набрали близько 5 Junior-ів , серед яких я виділявся, але не надто.
«Перш за все, я познайомився з безпосереднім керівником, помітив, що він курить і почав виходити курити разом з ним (а так взагалі я не курю)».
Також з нами ходив ще один програміст, про нього розповім трохи згодом. Загалом, за курінням ( 3-4 рази за робочий день ) я спілкувався з керівником, докладніше розповідав про свої успіхи, ненароком згадував свої знання ( мають же вони знадобитися ) і взагалі, входив у довіру, як тільки міг. Організований мною наприкінці першого тижня шашлик із пивом дозволив встановити більш приятельські стосунки.
«В офісі я залишався працювати до 11-ї вечора (робочий день до 18:30), поки мене не виганяв охоронець. Зі мною в офісі іноді залишалися генеральний директор компанії та CTO, з якими я теж спілкувався. Ми разом вечеряли та разом виходабо з офісу (мені CTO навіть пропонував підвезти до дому, але я чемно відмовлявся).»
Таким чином, я, по-перше, встановив добрі стосунки з безпосереднім керівником, по-друге, показав вищому керівництву, що дороблю завдання, а потім піду додому. Звичайно, все це ще не робить мене Middle . То що зробило? Нагадую, що я не знав до співбесіди жодного фреймворку ( крім JUnit ). Ось тут саме варто повернутися до програміста, якого я згадав вище. Це був дуже потужний програміст з 20-річним досвідом, який пропрацював 5 років у Москві, близько 7 років в Америці (як головний архітектор проектів) і багато де ще, включаючи урядові проекти особливої ​​важливості (все це я дізнався, поки курив разом з ним). Так от цьому програмісту дали дуже серйозне завдання, і він вирішив взяти мене в помічники. Після того, як йому дали це завдання, виявилося, що йому треба терміново виїжджати з країни і працювати він не зможе. Він написав каркас програми і залишив мене за головного, сказавши, що стежитиме здалеку. Саме цей момент допоміг мені стати Middle і закінчити випробувальний термін не за 2 місяці, а за один і претендувати на більш серйозну зарплату. Тому що стежити здалеку цього програміста не виходило і проект повністю залишився на мені. За місяць я успішно його завершив, за що й отримав свою посаду та можливість претендувати на більш високу зарплату.

У чому мораль?

Ви можете сказати, що мені пощастило вчитися там, де дали всі ці знання ( зауважте, я використав їх просто для згадки перед начальством ), що обставини склалися так, що випав такий проект на мої плечі, та й до чого тут, здавалося б, Java Rush ? Ще раз нагадаю, до Java Rush рівень володінь Java у мене був 0 це раз. По-друге, коли вирішуєш завдання від 52 спроби, щось та запам'ятовується. У мене була набита рука на винятках, перевірках та інше, що теж було конкурентною перевагою, та й загалом — Java Core починаєш розуміти дуже ґрунтовно (що підтверджує сертифікат OCA, який я здав за рахунок компанії та набрав 94% ), а без цього далі рухатися особливого сенсу не бачу. Наступного тижня мене призначають на новий проект з нуля, який я вестиму сам (включаючи проектування бази даних, вибір технологій, а також набір команди). Також, я вестиму співбесіди, і розглядатиму прогрес Junior-ів для визначення: варто, не варто. Хочу сказати, що у цих питаннях мені допомогли не лише фактичні знання, а й уміння налагоджувати спілкування з командою, добре показувати себе перед керівництвом, уміння справити враження та доказ того, що я доведу все до кінця. Дякую за увагу, бажаю всім побільше завзятості та уваги до деталей.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ