Закончился испытательный срок и пришло время рассказать “как я стал программистом”.
В ноябре 2014 года я прекратил свою полуторадесятилетнюю деятельность никак не связанную с IT и начал искать себя. В наличии были умение и интерес работать с данными. К этому моменту, уже несколько лет я делал бесплатно и за деньги, небольшие, несложные сайты собранные на СMS Modx и это было скорее хобби. При этом, не угасало желание писать код, которое появилось еще в школе, но не реализовавшееся в силу многих причин. К наступающему Новому Году я точно определился, что хочу работать программистом и оставалось дело за малым: выбрать язык. Я уже видел до этого такие языки как Java и C++, а в далекие 90е писал на Pascal'е и Basic'е. В итоге, взглянув на круг интересуемых задач, конечный выбор пал на Java. И пошел процесс обучения…
Первый заход
Основы программирования были понятны, синтаксис простых программ тоже был давно изучен - за спиной была пара простейших Android приложений, собранных по урокам и несколько классов Java, которые решали мои бытовые вопросы (один из них пересчитывал параметры покрышек для разных размеров дисков).
В первую очередь была подобрана книга и пошел процесс обучения... Через 3 недели у меня не стало сил вообще читать про программирование - это было уныло и скучно. Я слишком переоценил свои таланты и усердие. Еще около месяца я пытался читать мануалы Oracle, что тоже никак не внушало оптимизма. К концу февраля я начал понимать, что мне нужен компьютер... (:
Т.к. я уже несколько месяцев не работал, выбор пал на старый лэптоп претендующий на звание ультрабука, имеющий на своем борту SSD, i5 первого поколения и 3Gb оперативки. К началу марта у меня все было готово к обучению и я встретил сайт JavaRush.ru... Сейчас мне кажется, что это было 7 марта. С этого момента меня нельзя было оторвать от компьютера. Первые очень простые задачи, Intellij Idea, большие задачи, внешние библиотеки и… ...30й уровень. К нему я подошел к началу августа. За спиной были сотни часов кодинга и много тысяч строк кода. Подошел этап реального проекта, который входил в стоимость пакета приобретенного на JR. К этому моменту я уже объективно понимал требования к программисту Java и иллюзий не питал.
Проект
Тестовое задание сразу обозначило мой уровень программирования на уровень чуть выше нуля и я с нетерпением ожидал первых лекций и заданий. Не стану углубляться в стек технологий и описание курса - все именно то, что сейчас требуют от соискателей и правдивый обзор самого курса предлагает сам автор. Это ценнейший набор знаний, который превращает Java в Enterprise инструмент. Уже больше 3х месяцев прошло с окончания курса, а я до сих пор осознаю что именно показывал этот, и вправду, мастер. Самое главное, что Вы получите от стажировки - это заряд интереса и умение учиться новым технологиям в программировании. Проект, который Вы получите по итогу - это уж и не самое главное, но очень даже полезное.
Дополнительные знания
Не могу не дополнить представление о моем обучении. Помимо того, что я сидел от 8 до 15 часов в день за компьютером и решал задачи, я глядел вокруг и вот перечень того, что надо хотя бы потрогать: mysql, postgresql, mongo, js, html, css, linux (debian, mint, ubuntu - выбирай любой), spring boot, freemarker. И, конечно же, за базу надо принимать Java Core и все технологии проекта. В интернете огромный список вопросов для подготовки к собеседованиям. Очень частые темы: коллекции, исключения, многототочность. Учите английский язык - начните прямо сейчас. Например попробуйте читать документацию. В хорошей компании, где пишут на Java - иностранные заказчики. Возможно вам придется с ними общаться - я был на общем митинге через полтора месяца. В международных компаниях в багтрекерах вся информация тоже на английском языке. Читайте книги. На любом языке, но лучше в оригинале.
Собеседования
Для меня самый познавательный этап. Тут я узнал что конкретно хотят получить от соискателя, подтянул знания в соответствии с требованиями. Старался попадать на собеседования Middle разработчиков и избегал Junior, но и они случались. На Senior не был ни разу. Первое, что обозначилось в мозгу: независимо от позиции на которую ты претендуешь, вопросы на собеседованиях разных уровней одинаковые и отличаются лишь глубиной. Коллекциями интересуются везде. Иногда задают каверзные вопросы. В этапе хождения по собеседованиям надо отдавать себе отчет в том, что их должно пройти немало, прежде чем ты найдешь ту работу, которая устроит тебя и где устроишь ты. Все собеседования до этого ключевого - твой путь, который надо пройти, пережить разочарования, сделать выводы и пойти дальше. На этом этапе важно не забывать об этом ни на минуту.
Сейчас
На данный момент закончился третий, заключительный месяц испытательного срока в крупной компании-аутсорсере и я много раз вспомнил добрым словом проект. У меня нет градации, но, как мне кажется, у меня уровень Middle. Вопросов я не задаю - сказывается опыт участия в реальном проекте, задачи получаю большие и решение о реализации принимаю сам. За время работы применил все знания технологий изученных ранее и еще больше для меня новых. Мой испытательный срок закончился ровно через год, день в день, с началом обучения на JavaRush. За 3 месяца коммерческого прадакшна, конечно же, пришло очень много нового опыта и новых знаний и все, что было до этого, кажется уже вовсе не сложным, но от этого нисколько не менее важным.
Спасибо автору, уже раза 3 перечитал сей действительно полезный пост, искренне рад! У сложилась такое мнение которое переросло в небольшое фобия, а заключается в том, что на работе многие вещи надо знать очень хорошо и если дадут задание его надо решить в достаточно короткие сроки дабы показать «скилл», как оно на самом деле? Дают время на раскачку?
По 15 часов занятий + учить английский — вы откуда такие вундеркинды? Тут три часа посидишь — все символы по экрану разбегаются, а вы пишите, что за полгода до 20 уровня проходите — так это галопом по европам получается… но не мне судить конечно.
Впечатляет! Потому что у меня точно такой же план, но неемного амбициознее) я начал заниматься в январе второго числа, в планах было дойти до 30 уровня до конца марта, но увы сейчас я только на 21 уровне, осталось две недели :( по 15 часов в день кодить для меня анриал) по крайней мере на данном этапе. Сколько тебе лет если не секрет?)
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Вы еще и курс TopJava проходили? Он у вас в тексте упоминается.