Как стать Java разработчиком в 35+

Всем привет! Хочу написать свою первую статью о моём пути из менеджера по продажам / руководителя департамента одного из крупных банков / индивидуального предпринимателя в разработчики, который длился без немногого 2 года. Я постараюсь предоставить некоторые советы и рекомендации тем, кто в начале или середине пути в освоении разработки. Искренне надеюсь, что эта статья будет полезна тем, кто сейчас изучает Java или только планирует заняться ее изучением.

Опущу ту часть истории, что послужила волшебным пинком для начала обучения, скажу лишь, что выбор стека технологий пал на Java, даже уже не помню почему, видимо повелся на логотип, чашка ароматного кофе натолкнула меня на фантазии, что я буду программировать, попивая ароматный кофе. Но, как оказалось, в дальнейшем, кофе пил не я, а именно Java, пока я пытался ее освоить.

c16aa7d225aa7e16994d5ca32204e2ca.jpg

Тут подходит время первого совета: у человека есть всё, чтобы осуществить свою мечту. Хочешь стать разработчиком, действуй, удали с телефона инстаграм, и прочие «пожиратели времени» и ты получишь минимум 1–2 часа свободного времени в течении дня. Хочешь стать разработчиком, учи программирование. Если не сейчас, то когда?

Основой моего обучения были 2 тома Хорстмана «Java. Библиотека профессионала 11 издание», Шилдт «Java. Библиотека профессионала 10 издание», а также оплаченные видеоуроки на Udemy, и, естественно, бесчисленное множество статей на просторах интернета. Так я начал свой путь. Как уже писал выше, это оказалось сложнее, чем я ожидал. Казалось бы, по каждому вопросу связанным с Java, я находил довольно много материала и описания, где каждая тема очень широко рассматривалась, и после обзора нужной темы сразу появилось ощущение, что я в этом разобрался и тут все понятно, но проходит буквально неделя, и все понимание куда-то пропадало, а к пройденной теме приходилось возвращаться опять и опять. Каждый новый раздел давался действительно сложно, и сроки, которые я сам себе устанавливал для его освоения, постоянно сдвигались. Стало понятно, что теоретические знания, особо не усваиваются без практических навыков. И даже если сейчас кажется, что всё и так понятно, поверь, через месяц ты уже и не вспомнишь, как работает та или иная языковая конструкция, без практики.

Совет второй: Пиши код. Новые знания закреплялись только после упорного набора кода руками, и не просто повторяя за автором видеурока, или переписывая какой-то код с первоисточника, а придумывая себе отдельные простенькие задачки и решая их.

Следующей проблемой, с которой я столкнулся, так это то, что стоило 20–30 минут почитать книгу или посмотреть обзор какой-то технологии на Youtube, сразу, резко начинало клонить в сон, мозг попросту отказывался воспринимать новую информацию. И не важно, сколько времени было на часах, спать хотелось всегда и везде, стоило только подумать о Java. Если ты столкнулся с этим — это нормально, сонливость исходит из того, что ты ровным счётом ничего не понимаешь в изучаемом материале. Мозг теряет причинно-следственные связи и устает от того, что его заставляют тупо освоить то, что кажется ему абракадаброй. Это насилие над организмом, он начинает сопротивляться. Тут всё так же, как с правильным питанием у спортсменов, следует принимать пищу много раз по чуть-чуть. Твой результат будет хуже, садясь за книгу один раз в день и хоть даже на несколько часов. Бывало, даже стоя в городских пробках, я открывал на телефоне книгу и читал по чуть-чуть. Было бы желание, а возможность всегда найдётся. Конечно, я понимаю, что большая часть изучения всё же приходилась на глубокий вечер, когда в доме воцаряется тишина, но уже без инстаграма на телефоне, дополнительные свободные 15–20 минут будет найти несложно.

Совет третий: Планируй время для обучения, и обязательно делай перерывы. Мне было намного проще освоить материал, разбивая учебу на маленькие промежутки времени, есть свободные хотя бы 10 минут, удели их обучению. Если всё же такой возможности нет, и приходиться сидеть за Java ночами по несколько часов, в перерывах желательно делать какую-то физическую нагрузку, например, бег, скакалка, да и обычные приседания подойдут. Поверь, это очень помогает взбодриться. Более того, как я узнал в дальнейшем, мозг усваивает новый материал не в момент изучения, а в периоды отдыха. Так что перерывы не только полезны, а просто необходимы.

Конечно, в какой-то части пути к достижению твоей цели мотивация пропадет, этот режим выбьет из сил и захочется все бросить, это нормально. Смело делай перерыв на месяц, два, и всегда читай свою заветную записку РАДИ ЧЕГО ТЫ ЭТО ВСЁ НАЧАЛ?

Спустя где-то год, освоив все основные темы в Java Core, я начал задумываться о трудоустройстве, и тут оказалось все самое интересное. К моему большому удивлению, Java Core в чистом виде оказался абсолютно не нужен работодателям, стек технологий оказался куда шире и глубже даже на должность Java-intern, не то, что Junior. Куда не посмотри, везде необходимо МИНИМУМ знания SQL, Spring, Hibernate, Git. Выбора не было, я стал потихоньку изучать базу и основы необходимых фреймворков. В какой-то момент у меня напрочь пропало понимание собственного уровня знаний, и это проблема, я абсолютно не знал, насколько глубоко необходимо углубляться в каждый аспект в Java Core. Достаточно ли понимать, что при сортировке коллекции есть метод sort, и он как-то под капотом сортирует, или надо глубоко разобраться в алгоритмах, которые применяются в Бинарных и Красно-Черных деревьях. Стало очевидно, что мне срочно необходимы собеседования, хоть и неудачные, чтобы попросту узнать свой уровень, объективно увидеть, где есть пробелы в знаниях.

Совет четвертый: Ходи на все собеседования, которых сможешь добиться, сложно передать словами их пользу, но ты сразу увидишь свои пробелы в знаниях, и будешь более четко понимать, к какому уровню необходимо стремиться. Поверь, после каждого из них, ты ощутишь, что как будто на голову вырос в понимании тонкостей разработки.

Но даже не огромный стек технологий была главной сложностью, проблема оказалась в том, что каждому работодателю нужен сотрудник с опытом от года, но откуда должен взяться этот первый год опыта, никто внятно объяснить не мог. Осознав всю сложность ситуации, связанной с первым трудоустройством, я понял, что ради драгоценного опыта, можно и стажироваться бесплатно, лишь бы взяли. Более того, я решил пойти еще дальше, открыть ИП и стажироваться или работать под ним, чтобы снять с работодателя налоговую нагрузку и прочие риски. Но даже эта приписка в сопроводительных письмах к резюме, не изменило ситуации, в реальный проект никто не звал. И тут мне подвернулась вакансия на сайте муниципального центра занятости, я решил обратиться к ним за направлением, оно гарантировало бы мне дополнительное собеседование и очередной шаг вперед к своей цели. Счастливый, я пришел к этому работодателю и встретился с местным HR-ом:

-- «Ты Фонбет?»- первое о чем спросила она меня. Да-да, именно «ФОНБЕТ» (название букмекерской конторы).

-- «Вероятно, она хотела спросить, фронтенд ли я?» — сразу понял я, но, чтобы не нагнетать обстановку, ответил ей так же, мол нет — нет я не «Фонбет», я бекенд.

-- «Ааа, нет нам нужен только «Фонбет», давайте не будем задерживать друг друга» — ответила она. Попрощавшись, я ушел.

Печально, конечно, но я сделал выводы. Я понял, что до разработчиков, которые могли бы оценить мои знания, резюме попросту не доходит, оно отсекается сотрудниками HR, которые вообще не понимают в разработке, не знают, чем отличается String от Spring. Да, они выполняют задачи, которые перед ними ставят, но мне было от этого не легче. В конечном счете я решил, что выход только один, (знаю, что сейчас в меня полетят помидоры)- это врать в резюме. Так я и поступил, скинул себе 10 лет возраста, и добавил 1 год опыта. И вуаля, не прошло и одного дня, звонок, мол так и так, заинтересовало ваше резюме. Чтобы не спалиться, я не стал сразу плакать в трубку и шептать «спасибо», начал расспрашивать о компании. Оказалось, что Московская компания «АмТех» создала школу кадрового резерва (далее ШКАР), суть которой пройти обучение на реальном проекте в их компании, под руководством опытных разработчиков по заранее разработанной ими программе обучения, с дальнейшим трудоустройством к ним. Причем со стипендией 30к, предоставлением техники, печеньками, и прочими бесплатными прелестями. «Какая-то замануха» подумал я. Но все же от собеседования не отказался. Прихожу, и с порога заявляю,

-- «Привет, я Игорь, и я наврал в резюме!»

А мне в ответ: «Красавчик, правильно сделал! Разве можно по-другому с этими HR-ми?» Сказать, что я офигел, ничего не сказать. Видимо, сказано это было для того чтобы снять напряжение и спокойно побеседовать, так оно и получилось. Отмечу, что это оказался довольно современный подход к собеседованию, мой «мандраж» прошел, и мы смогли нормально пообщаться. Опущу детали, главное, что в конечном итоге меня взяли, даже без знаний на тот момент Spring и Hibernate, обещали помочь освоить эти технологии за 2 месяца. Так и началась моя стажировка в ШКАРе на реальном проекте. Позже я осознал насколько «глубокий этот Java-колодец», и начал ощущать так называемый «комплекс проходимца», старшие разработчики казались «мега-умными», а я понимал происходящее, как самому мне казалось, с трудом. Но это оказалось нормой, я сразу получил порцию поддержки от тимлида, который объяснил, что это нормально, и к этому надо относиться проще, т.к. всего знать всё равно никогда не будешь, и, вероятно, всегда будут рядом те, кто умнее тебя.

Совет пятый: если в процессе обучения или начале своей работы, ты многое не понимаешь и чувствуешь себя «самым бестолковым человеком на свете», это нормально, ты на правильном пути. Больше задавай вопросов, спрашивай каждый непонятный момент, все разработчики проходили этот путь. Лучше 10 минут побыть «идиотом», задавая вопросы и переспрашивая что-либо, чем остаться им на всю жизнь. И что удивительно, это все понимают и поощряют, так как каждый через это проходил и помнит насколько тяжело в начале.

В конечном итоге все закончилось лучшим образом, спустя 2 месяца я всё-таки более-менее разобрался в Spring и Hibernate, и получил свою первую работу в качестве Junior-разработчика. Чего и вам желаю.

P.S. Не совсем совет: знаю, что нехорошо, знаю, что меня сейчас раскритикуют, но боюсь, что у новичка просто нет другого выбора как «приукрашивать» свое резюме, первое трудоустройство — нелегкая «битва», а на войне все методы хороши.

© Habrahabr.ru