Вот и дошли мои руки к написанию сего поста. В свое время такие статьи меня очень сильно мотивировали, и я был искренне рад за каждого кто здесь отписывался. Я надеюсь эта статья послужит мотиватором еще кому-то. Много воды утекло с тех пор как я штудировал JavaRush, но я не забыл. Я считаю этот ресурс одним из лучших. Дальше много букв о моей истории успеха.
Где-то в далеком 2014 году я жил в Киеве и работал юристом. Надо упомянуть, что у меня на самом деле всю жизнь все шло в сторону точных наук: физ-мат лицей, факульет компютерных наук и математики и тд. Но после универа мне любезно предложили поработать юристом (я еще учился на юридическом заочно). И я не отказался.
Так вот работал я юристом уже 3 год и стало это очень скучно и тупо. Все те же договора, те же суды, те же фразы. Плюс ко всему много моих друзей, сокурсников работали в ИТ и давно мне говорили подтягиваться туда.
Вначале попытки мои начать учить Java, были неудачными. Каждый раз начиная читать книгу или статью - меня тормозило, усыпляло или вырубало))) Я уже начинал думать что это не мое. Хотя до этого в лицее учили Pascal и он мне нравился.
И все так бы и было, если бы не один мой хороший знакомый который посоветовал попробовать Javarush.
Первые 10 уровней у меня прошли на одном дыхании - после работы прилетал домой ради этого. За первый месяц вечерами прошел первые 10 уровней. Купил месячную подписку и взял отпуск: за тот месяц прошел до 20. Настолько увлекся что не замечал как время идет. В конце концов таки купил полную подписку за 100 баксов и радовался как слон. Не помню точно до какого уровня дошел, наверное 23 или 24.
В это время я начал посматривать на вакансии и понял, что, к сожалению, я незнаю еще очень много для того чтоб успешно устроиться на свою первую работу джуном. И все это совсем разные технологии.
Пришлось оставить Javarush и посмотреть, подтянуть SQL, Spring, Hibernate, JDBC, HTML, CSS, алгоритмы(!) и другое.
Самый правильный вариант после 20 уровня - это начинать паралельно рассылать резюме и ходить по собеседованиям. Во-первых, вы точно будете знать свои пробелы, во-вторых вы по немногу будете привыкать к ним и терять страх :)
Разослав наверное 100 резюме, попутно постоянно ее модифицируя, я на протяжении полу года ходил по собеседованиям. Подтягивал все, что на них не знал. Главное запоминать все на что вы не смогли или смогли плохо ответить и потом придя домой выучить это. Именно так я и готовился. Было много компаний где меня почти взяли. Проходил 2-3 этапа и на последнем либо мне отказывали по знаниям либо (что еще хуже) говорили что они уже взяли кандидата, и что он просто раньше прошел последний этап, хотя я им тоже подходил :) После таких собеседований, меня как ни странно не депрессия накрывала, а злость, я еще больше хотел доказать себе самому что таки добюсь своего.
Продолжая учится в рабочее время, я все рассылал резюме и ходил по собеседованиям. В какой-то момент попивая чаек на работе меня осенило. Такое ощущение, что я был слеп и прозрел. Пазл перед глазами сложился. Я понял, что текущая работа занимает слишком много времени которые могут быть потрачены на учебу и поиск работы. Это было решение уволится.
Стоит упомянуть, что я женат и жена у меня тогда была на 5 месяце беременности. Мое решение уходить с работы и оставаться ни с чем в такой момент ее сильно испугало. Все кто знал о ее положении и моем решении смотрели на меня искоса, коллеги, друзья. И это понятно) Ведь выйди она в декрет и не найди я работы - было бы очень тяжело. А времени до декрета было всего пара месяцев.
Меня отпустили но пришлось 2 недели отработать до увольнения.
Еще стоит упомянуть что в городе откуда мы с женой родом(небольшой обласной центр на западной Украине) открылся офис одной ИТ компании. Несмотря на то, что я не искал работу нигде кроме Киева, и на то что они не набирали джавистов, я еще за 2 месяца до увольнения отправил им резюме и подписал что был бы рад работать у них если они решат собирать Java команду. Отправил и забыл.
Подходим к самому интересному. На следующий же день после решения уволится мне позвонила девушка. с той самой компании, через 2(!) месяца после отправки резюме, и предложила попробовать пройти тест на JavaScript интерна.
На тот момент я считал JavaScript и фронт енд девлоперов кем-то типа формошлпепщиков которые только и делают что двигают кнопочки на пару пикселей. Как оказалось я ошибался.
У меня была одна неделя до крайнего срока прохождения онлайн теста. До этого момента JavaScript я даже в глаза не видел. Скажу вам вот что - если вы знаете Джаву, то выучить JavaScript вам не составит особого труда. Мне далось легко и было довольно увлекательно.
Пройдя тест меня пригласили на скайп интервью. Оно длилось полтора часа. Меня спрашивали по JavaScript, а потом и по Java, алгоритмам, математике. Мне наверное повезло потому, что парень который меня собеседовал сам знал Java и когда я по джаве ответил на 10 из 10 он пригласил меня на еще одно, очное интервью и дал тестовое. Тестовое я сделал без проблем.
Отработав две недели я уволился. Это был четверг. Мы с женой поехали на выходные в свой родной город к родителям праздновать Пасху. Во вторник после Пасхи я пришел на третье собеседование.
На интервью было еще пол часа разных не особо технических вопросов и мне предложили интернатуру на 2 месяца с ЗП выше той что у меня было на прошлой работе. Сказать что я был счастлив - это ничего не сказать. Тяжело описать такое словами. Получилось так, что я вышел на работу ровно через неделю после увольнения с предыдущей.
Из плюсов - мы с женой вернулись в свой родной город, родился ребенок, родители были рядом и помогали с ребенком на первых порах и я наконец-то нашел работу мечты. Это даже нельзя назвать работой, мне так нравилось(и нравится) делать то что я и сейчас делаю, что я готов был и бесплатно это делать.
Досрочно, за месяц, закончив интернатуру, мне предложили позицию Junior JavaScript Developer и + 50% к ЗП на следующие пол года. Еще через пол года + 100% к ЗП. И это при всем при том, что работа идет в кайф. Отличное чувство.
Прошло еще немного и я решил идти дальше. Причина банальна: используемые технологии были устаревшими и безперспективными, и амбиции выросли)) В общем и целом за 2 недели пока мой профиль висел на джинне мне предложили оффер от которого я не смог отказаться. Это переезд обратно в Киев, небольшая компания-стартап, выбор технологий за мной + ЗП в 3 раза больше (твердого миддла).
Работая здесь два месяца я могу сказать, что ни о чем не жалею. Особенно я благодарен создателям и комьюнити в JavaRush. Именно он дал мне тот первый толчек, и те важные практические навыки.
Казалось бы причем тут Java, я же работаю совсем с другим языком? Да, неважно с чего ты начинаешь, важно начать. Еще через Х лет я возможно буду писать вообще на неведомом сейчас языке. Главное не язык, а понимание основ. Кстати в этом мне очень помог курс по Алгоритмам на Coursera.
Всем спасибо за внимание и помните, главная черта для достижения любой цели - это настойчивость.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Про технологии был в курсе, но вот про алгоритмы не знал. Добавлю в свой список «для изучения»
это мне кажется не рационально. Чтобы описать принцип работы двусвязного списка достаточно одного предложения, одного ввода в поиск, одного взгляда на src.zip. Алгоритмы сортировки уместились в одну статью на хабре, деревья мы решаем на 20-ом уровне, если не изменяет память. Неужели вы потратили недели на изучение алгоритмов? читали книги по 800 страниц? и это такой принципиальный момент? многие кто уже работает, пишут в комментах о том что алгоритмы им ни разу не понадобились, и вообще их требуют чтобы хоть как-то оправдать потерянное свое личное врем во время учебы в универе. Нужны еще мнения по алгоритмам, давайте решать эту проблему. Нужен концентрат информации по ним, а не книги по 800 страниц
На счет того нужны ли они вообще. Впервые меня незнание оных подкосило при пробе устроится на интерна в EPAM. После этого я начал их учить.
На финальном собеседовании туда куда меня взяли на первую работу я как-раз показывал как реализовать несколько простых структур данных на Java(списки, деревься, хешмап и другие). Я к тому, что в том числе благодаря знаниям простейших алгоритмов я прошел на место где(как потом рассказывала мне HR) до этого прособеседовали 40-50 человек.
В той статье на Хабре есть только описание, но нет реализации. Надо не только абстрактно понимать их, но и уметь их реализовать самому без сторонней помощи на собеседовании.
Повторюсь: минимум — это простейшие алгоритмы. Курс на Coursera я так и не закончил — нашел работу, и ушел в нее с головой. Но я надеюсь в ближайшем будущем закончить)
Я специально поднял свой аккаунт на Coursera чтоб посмотреть на чем закончил. Вот плюс-минус то, что я знал по алгоритмам на момент поиска работы:
1. Анализ алгоритмов, сложность алгоритмов.
2. Union−Find
3. Stacks and Queues
4. Elementary Sorts
5. Mergesort
6. Quicksort
7. Priority Queues
8. Binary search, binary search tree
На этом я закончил. Это 4 недели курсов. Еще 2 оставалось до конца но я не закончил. Каждую неделю было 5-7 видеоуроков + практические задания. Каждый рабочий день я тратил около 2 часов на изучение алгоритмов. То есть 2 часа в день * 5 дней в неделе * 4 недели = 40. Около 40-50 часов я потратил на алгоритмы. Это насколько я помню. Дальше думайте сами.
1) Уметь самому реализовать структуры данных, такие как ArrayList, LinkedList, HashMap, Set? кстати по коллекциям есть подходящий линк1 и линк2 с хабры.
2) Проработать алгоритмы сортировки, понять и уметь в 3 часа ночи разбуженным написать на листке туалетной бумаги сортировку пузыркем.
3) Сложность алгоритмов
4) Бинарный поиск
5) Деревья
1) Помимо Java предъявлялись ли требования к знанию сисадминстра — инсталляции и поддержки серверов, развертыванию и сопровождению приложений (особенно в небольшой компании)?
2) Какой требуется уровень английского:
— Чтение и разбор технической литературы
— Умение вести переписку
— Умение вести аудио/видеопереговоры
3) Практикуется ли замануха (в больших компаниях) — обучение на первых сроках оформляется в контракте, согласно которому работник при увольнении в течении первых 1-2 лет обязан вернуть сумму обычно равную 3-6 его окладам.
Спасибо заранее.
2. Везде по разному. Обычно просят рассказать про себя несколько предложений на английском. В моем случае, в обе компании куда я прошел, английский не проверяли. Точнее в первой забыли и проверили после оффера. Во второй поверили на слово. Даже не проверяли.
3. Да я слышал о таком. Точно знаю что такое есть в Люксофте, сам пытался попасть туда на практику по такой схеме. Еще у меня есть знакомые которые по такой схеме подписали контракт на 5 лет с ноунейм конторами и сильно пожалели. Я думаю год-два — это допустимый срок, особенно в больших компаниях которые дорожат своей репутацией. С небольшимы я бы не рискнул подписывать контракт.
ru.coursera.org/learn/java-data-structures-algorithms-2
Могу сказать что в том числе благодаря этому прошел. Знать основные структуры данных — очень важно.
У меня по сути ушел год с того момента как начал обучатся до момента устройства. Первые пол года тупо учил Java (JavaRush + youtube + книги), вторые пол года учил JavaEE + все остальное что требовалось в вакансиях + паралельно ходил по всем собеседованиям куда приглашали, даже туда где бы не хотел работать.
Хотелось бы узнать, если не секрет, какое тестовое задание вам дали?
Традиционная пара вопросов из зала:
1. Когда рассылал резюме, размещал в нем какие-то куски своего кода и просили ли их показать на собеседованиях?
2. Помнишь свое самое провальное собеседование?)
1. Никаких кусков кода не показывал. На некоторых собеседованиях просили показать github аккаунт. Но это не показатель. У меня даже сейчас мой гит аккаунт почти пустой. Там только мелочи всякие и тестовые проекты которые я не показывал бы никому.
Но резюме постоянно обновлял, доделывал. Под каждую компанию делал новое резюме в соответствии с их ожиданиями от кандидата)
2. Самое провальное… Пригласили меня после тестового в одну контору на второе тестовое. У них тестовое нужно было делать в офисе и времени давался один день, с утра и до ночи. Там задание распечатано на 8 страницах А4. В общем просидел я там часов 8 без обеда и вроде как сделал. Когда позвал проверять парня то оказалось что я не обратил внимание на одну маленькую деталь и потому сделал совсем не то. Мне предложили еще до ночи посидеть но я вежливо отказался и свалил, голодный и злой под дождем шел домой и клял свою внимательность)))
Но это меня не сильно расстроило) Такое бывает, просто ловиш тормоз и сказать ничего не можешь. После первых 5 собеседований так больше не происходит) Я себя так настроил: ходить по собеседованиям не ради работы, а ради опыта хождения по собеседованиям))) Это дало уверенность в себе. Приходил, отвечал все что знал, мило общался и прощался) В какой-то момент мне даже по приколу было) Жаль больше не хожу по ним))