Закончился испытательный срок и пришло время рассказать “как я стал программистом”.
В ноябре 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 месяца коммерческого прадакшна, конечно же, пришло очень много нового опыта и новых знаний и все, что было до этого, кажется уже вовсе не сложным, но от этого нисколько не менее важным.
0
Комментарии (49)
популярные
новые
старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Спасибо автору, уже раза 3 перечитал сей действительно полезный пост, искренне рад! У сложилась такое мнение которое переросло в небольшое фобия, а заключается в том, что на работе многие вещи надо знать очень хорошо и если дадут задание его надо решить в достаточно короткие сроки дабы показать «скилл», как оно на самом деле? Дают время на раскачку?
Рад, что пригодился пост. Конечно дают время, но весь вопрос лишь в том, на какую роль Вы идете? Мне кажется, что я медленно все делаю и чувствую себя деревянным порой :-) Когда таски были сложные, приходил в 9 утра на работу уходил в 22 вечера. Сейчас полегче — провожу на работе не более 8-9 часов в день… Ваш скилл распознают по наивным предположениям и дебаггу. :-)
По 15 часов занятий + учить английский — вы откуда такие вундеркинды? Тут три часа посидишь — все символы по экрану разбегаются, а вы пишите, что за полгода до 20 уровня проходите — так это галопом по европам получается… но не мне судить конечно.
Ну если не работать, то тогда да. А если я работаю с 8 до 5, потом плюсом вечером ещё выполнять какую-нибудь подработку, потом плюсом домашние дела, которые никто за тебя не сделает, то пол года, по-моему, вполне нормальный срок.
При таких условиях, наверное, даже быстро. Вопрос лишь в эффективности, т.к. задачи это очень хорошо, но в Java много еще чего надо параллельно изучать. Вряд-ли остается время у тебя.
Ну пока я отношусь к этому как к хобби — не на диване же в дебилоскоп пялиться. Надеюсь, что потом свободного времени будет больше, чтобы потратить его на обучение, просто сейчас период такой.
Не знаю как у кого, но у меня вся учеба идет с утра, т.е. надо лучше проснуться по раньше, ничего не делать и сразу читать книгу какую нибудь. Пока лишними мыслями голова не занята, т.к. материал не легкий может быть и по раз 5 перечитываешь, а все равно не понял что там или вроде понял, а через неделю забыл. А само эффективно еще и вечером повторить перед сном. А задачи уже как получится. Днем, вечером, на работе, всегда когда есть свободное время.
Ну 15 часов это общего времени, как я понимаю… У меня в продуктивные дни выходит в лучшем случае 75% чисто учебного времени от общего, причем после 5-6 часов эффективность падает. Так что 15 часов это скорее 7-8 чистого времени в лучшем случае. Ну может и есть сумасшедшие гении которые реально кодят по 15 часов не отрываясь, но я таких пока не встречал)
Если (хоть в прошлом веке школьником) программировали (bat-файлы, скрипты, Basic, C, Фокал, Pascal, JS, программируемый калькулятор МК :) ...) — то первые 10 уровней можно за пару дней пройти, так как базовые конструкции (массивы, строки, ветвления, циклы) есть во всех языках программирования, отличаются только небольшими нюансами.
Дальше до 22-го (я пока дальше не продвинулся) — тоже часто встречаются немного знакомые куски (регулярные выражения, битовая арифметика, порядок операндов и т.п.). Так что, думаю вполне реально для любителей и т.п. в около-IT кругах (не обязательно программистов) 20 уровней за 3 месяца. Это не главное. Главное при решении задач убедиться — что все понятно, откуда, как и почему. А со временем должно стать понятно, что ранее решенные задачи можно сделать «красивее».
Не обязательно при этом по 15 часов. Для меня и 5 часов чистого времени — unreal.
Говорить буду за себя (у каждого свои вещи подразумеваются): 15 часов включают в себя кодинг, чтение документаций и непонятных моментов в гугле, например. Еще есть осмысление, которое тоже время занимает. Смотришь в окно и думаешь… На работе у вас может выходить целую неделю по 50-100 строчек кода в день, которые можно написать за пол-часа — час, если знаешь тему, но это не значит, что вы работаете по часу в день.
15 часов в день — это надо не только не работать, но и не есть, не прибираться в доме, не выносить мусор, не мыть посуду, не стирать шмотки, не ходить в магазин, не отдыхать, не читать художественную литературу, не кататься на велике, не заниматься спортом...
Ну или на жену все спихнуть, в том числе чтобы она тебя из ложечки кормила, пока ты кодишь )))
то, что Вы перечислили, можно распределить на дни, когда за компом 8 часов проводишь. ;-) Художественной литературы нет места в этот период. Остальное все успевалось не спихивая на родных. Все зависит от самоорганизации и мотивации — мне нужна была эта цель и я шел любой ценой. У всех свои приоритеты.
Не знаю, насчет «нередко» и не очень долго: пишу код на работе, прихожу домой и пишу еще код, ложусь в кровать с какой-нибудь докой/книгой близкой к Java — перед сном почитать. Каждому свое.
Впечатляет! Потому что у меня точно такой же план, но неемного амбициознее) я начал заниматься в январе второго числа, в планах было дойти до 30 уровня до конца марта, но увы сейчас я только на 21 уровне, осталось две недели :( по 15 часов в день кодить для меня анриал) по крайней мере на данном этапе. Сколько тебе лет если не секрет?)
не встречались на мой уровень. Иногда hr попадались, которые думали, что у меня уровень Senior и предлагали. Отваливались как только узнавали реальный уровень.
как есть и отвечал: много лет опыта фриланса на html, 1 opensource проект на java + учебный проект. Плюс прошел техническую часть собеседования часа на 2…
вот блин, а я работаю и думал, что, совмещая, смогу за полгода дойти до 20 уровня, и ещё за 2 месяца до 30-го. Теперь понимаю, что мои планы нереальны.
Такая же беда ( волевым усилием встаю рано утром, выделяю часок на занятия и часок вечером, помимо того что весь день за компом на работе сидеть приходиться…
Как говориться не можешь идти — ползи, главное регулярно ) В любом случае ты будешь знать что сделал все что мог, а это немаловажно.
Не мучительно)) А 5 месяцев или 2 — зависит еще от степени освоения. Можно быстро пройди, но много упустить. И смысл из этого, тут не соревнования и никто никого не подгоняет.
Это к тому, что не стоит зацикливаться на затраченном времени и пытаться за кем-то угнаться.
ну если как ты проходить, когда задачи сразу решаются методом списывания готового решения на форуме джавараш, то за 5 месяцев можно и все 40 уровней пройти
таже история, только у меня пол года ушло на 20 уровней. да медленно. да можно быстрее. но я наверно по 50 раз перечитал все то что было на первых уровнях 15… и каждый раз находил для себя что-то новое.
Та и валидатор не всегда способствовал быстрому прохождению, думаю все прочувствовали то неловкое чувство когда не понимаешь чего он от тебя хочет))
Ну и работа тоже не способствует обучению. Эхх, если бы я знал об JavaRush в студенческие годы, я бы в два или три раза быстрее двигался, все равно тратил время на бесполезные вещи(
Да, реально по 15 часов нередко выходило.
Дальше до 22-го (я пока дальше не продвинулся) — тоже часто встречаются немного знакомые куски (регулярные выражения, битовая арифметика, порядок операндов и т.п.). Так что, думаю вполне реально для любителей и т.п. в около-IT кругах (не обязательно программистов) 20 уровней за 3 месяца. Это не главное. Главное при решении задач убедиться — что все понятно, откуда, как и почему. А со временем должно стать понятно, что ранее решенные задачи можно сделать «красивее».
Не обязательно при этом по 15 часов. Для меня и 5 часов чистого времени — unreal.
Ну или на жену все спихнуть, в том числе чтобы она тебя из ложечки кормила, пока ты кодишь )))
только не очень долго, ибо перегоришь
Если только кучку opensource проектов найти для участия в них.
Вы еще и курс TopJava проходили? Он у вас в тексте упоминается.
но почти каждый день
Как говориться не можешь идти — ползи, главное регулярно ) В любом случае ты будешь знать что сделал все что мог, а это немаловажно.
Это к тому, что не стоит зацикливаться на затраченном времени и пытаться за кем-то угнаться.
Та и валидатор не всегда способствовал быстрому прохождению, думаю все прочувствовали то неловкое чувство когда не понимаешь чего он от тебя хочет))
Ну и работа тоже не способствует обучению. Эхх, если бы я знал об JavaRush в студенческие годы, я бы в два или три раза быстрее двигался, все равно тратил время на бесполезные вещи(