JavaRush /Java блог /Архив info.javarush /Мой путь Java-дая
Spoloborota
22 уровень
Казань

Мой путь Java-дая

Статья из группы Архив info.javarush
Как и многие тут, давно хотел написать историю своего вступления на путь Java-разработчика. И вот, смог-таки это реализовать. Я начну издалека. Все началось 23 января 2003 года. Вечером в этот день я пришел домой после школы и театрального кружка, зашел в комнату и увидел на полу коробки. Одну очень большую. И несколько других, поменьше. Да, это был он - мой первый компьютер: AMD Athlon XP 1800+, 256 Mb оперативки, NVidia GeForce 2 64 Mb и HDD на 40Gb. С этого важного дня начинается новая история моей жизни. Тогда я учился в 9ом классе. Что ж я стал делать, как только его установил и включил? Конечно же играть!!! Примерно на 4 года я выпал из жизни. Квейк, дум, варкрафт, старкрафт, дьябло, командэндконкер дженералз, цивилизация, сайлент хилл, дэус экс, гта, фаркрай и др. Много было конфликтов с мамой, которая не разрешала мне долго играть и говорила делать уроки. Да, было нелегко переключаться на учебу в школе, а потом и в институте. Ведь там был такой чудесный виртуальный мир, где для достижения определенных успехов там, в играх, нужно было выполнять заранее определенные действия, всегда можно было запустить предыдущее сохранение и добиться желаемого. То ли дело в реальной жизни... Короче, много жизни я потратил на игры. Но! Был очень важный для меня плюс во всем этом. Периодически, игры то не запускались, то тормозили, то просто не устанавливались. И вот в эти моменты появлялось огромное желание разобраться в проблеме. И тогда я устанавливал, переустанавливал, настраивал, и оптимизировал все, что мог. Начиная от переделки разделов жесткого диска и сменой файловой системы с переустановкой винды, заканчивая тюнингом реестра и кофигурационных файлов играх. Благодаря полученным таким образом знаниям, я стал славиться среди друзей как "программист". Помогал с их компами, переустановкой винды, удалением вирусов и прочее. Притом, у меня тогда еще не было доступа в интернет, а диски с ПО я приобретал в соответствующих ларьках. И вот однажды, летом, после с трудом завершенного первого курса технического своего вуза, я решил начать продавать свои навыки. Набросал в ворде объявление с заголовком "Скорая Компьютерная Помощь" и ходил расклеивал их по поселку, в котором живу. На "пиво и жвачки" хватало. Дальше, на 5ом курсе, вместо того, чтобы усердно писать дипломную работу, устроился по знакомству админить в небольшую загибающуюся конторку. Впервые узнал о домене виндовс, работе в сетях, керио винрут фаерволл. Когда я получил диплом по специальности "Вычислительные машины, комплексы, системы и сети" в 2010, то я видел для себя 2 пути - программерский или админский. Опыт в программировании был ограничен лабораторными, курсовыми и дипломной работой. Я уже тогда понимал, что такое массивы, циклы, условные операторы и классы. Но никогда особо не тяготел к кодингу. Бывали попытки учиться кодить еще в школе. Но ГТА успешно перебивала это желание. Хотя, стоит отметить, что кодил я с немалым удовольствием. Помогал с лабами одногруппникам. Но так как опыта дел админских у меня было больше, я выбрал именно этот путь. На одной из следующих работ, когда я разрулил накопившиеся проблемы, решил, что пора взяться за линукс. Просиживал вечерами на работе, экспериментировал. Результатом была настройка шлюза в инет с файрволлом, перенаправлением портов, подключением в инет по вай-фай, подключением к впн. Да, не сильно круто, согласен. Но для начала было неплохо. Благодаря этим знаниям, я смог устроиться в 2011 на должность руководителя отдела внедрения и сопровождения. У меня было в подчинении 4 человека. Мы занимались внедрением толстого клиента на Java Swing в магазинах и складах одной ювелирной компании. Сейчас я понимаю, какую интересную штуку мы внедряли! Но тогда меня мало интересовали тонкости реализации этого ПО. Жил я в Казани. И давно хотел попробовать себя в самостоятельной жизни. Очень хотел поехать в Нерезиновую для этого. И вот, через некоторое время, оставаясь работать в той же организации, в конце 2012 я перебрался в Москву. Оооо, это метро! Эти гигантские улицы с быстрым потоком дорогих автомобилей! Эти огромные потоки людей повсюду! Меня это все безумно привлекало. Я был горд тем, что смог добиться этого переезда. После сворачивания проекта, в середине 2013 я решил, что пора отходить от настройки компов, техподдержки и админства. Несерьезно все это мне показалось. Видел 2 варианта - аналитика или управление проектами. Нашлась вакансия, в которой утверждалась возможность развиваться до этих, указанный мною должностей. Меня туда взяли.... И там я понял... Чем никогда в жизни не хочу заниматься! Был момент, когда я, перекладывая страницы в отчете по госконтракту в правильном порядке, вдруг осознал происходящее. О боже!!! Мне уже четверть века!!! Я стою и ковыряюсь в этих бумажках, предварительно интеллектуально скопипастив текст в них из таких же бумажек за прошлый отчетный период!!! А ведь до этого я мутил интересные штуки с серверами, организовывал рабочие процессы, помогал людям... Это был переломный момент в моей жизни. Эдакий "профессиональный кризис". И вот я начал анализировать, чем же мне заняться в жизни. Пока не поздно. Мне надоело заниматься обслуживанием. Я хотел сам что-нибудь творить и создавать. Это было основной причиной брожения в уме. Я вспомнил, что в институте у меня неплохо получалось кодить. Вспомнил, что программисты неплохо зарабатывают. Вспомнил, что есть прикольный язык Java, толстый клиент на котором мы внедряли, и программы которого могут запускаться под любыми ОС. И тут начались поиски материалов к изучению языка. Я уже не помню, как нарвался на JavaRush. Это было примерно в октябре 2013. Способ подачи информации, огромное количество примеров меня очень привлекали. Я шел на работу, садился за комп, приходил с работы и вечером снова садился за комп, чтобы учиться. Просиживал до глубокой ночи порой. Первые 10 уроков у меня прошли очень легко, т.к. многие понятия мне были знакомы. Чтобы оставалось больше времени на учебу, я перестал ходить в спортзал, а раздобыл гири и занимался с ними дома. В декабре примерно, я планировал, что не раньше конца марта начну заниматься поисками работы. А вот на работу я начал подзабивать. Не стремился получить больше заданий, не проявлял инициативу. Да и ненавидел я эту работу. Иногда внаглую делал задания JavaRush прямо на рабочем компе в рабочее время. Результат не заставил себя долго ждать - в начале января 2014 мне сообщили, что я работаю у них только до конца месяца. Это был шок, конечно. Осознание того, что я останусь без основного дохода при необходимости оплачивать жилье, сильно беспокоило. Я усердно взялся за статьи из рода "100 вопросов, которые задают java-джуниорам на собеседовании". Ну и продолжал заниматься на джавараш. Дошел примерно до 17го уровня. Я ходил на разные собеседования. И вот, в одной из организаций, мне дали написать тестовое задание. Нужно было написать программу, которая определит можно ли выложить в одну линию все косточки домино. Если да, то вывести этот вариант решения. Воодушевленно я сел за комп ее писать и... Был в ужасе! В тепличных условиях задач JavaRush было очень комфортно сидеть и писать код. Но тут нужно было все придумать с нуля, с чистого листа, так сказать! Вот тут пошли мои первые сомнения в принятии решения о становлении программистом. Очень тяжело мне было писать код! Я толком ничего не знал о базовых штуках Java, мои знания были сильно поверхностны. Да и непонятно было как решать эту задачу. Но я все же смог найти в инете алгоритм решения с использованием графов - все сводилось к нахождению Эйлерова пути. Кстати, весь период изучения Java мне очень помогал мой коллега с предыдущей работы. Как раз тот самый, который писал этот толстый клиент на Java. Он очень помогал мне во всем. В том числе, помог решить задачу еще и с помощью рекурсивного метода. И вот, я отправил задачу на проверку. Дальше были долгие 2 недели ожидания ответа... Но все прошло успешно! Меня взяли!!! Урррааа, я смог! 5го марта 2014 я вышел на работу в должности разработчика Java. Счастью не было предела. Во многом еще и потому, что я оказался в компании, которая занимается электронными платежами. А в ней очень хорошо относятся к персоналу. Чего только стоит их шикарный офис и халявный кофе и чай - тогда еще это для меня было в диковинку. И вот сижу я, разгребаю проект... И осознаю... Что я совершенно ничего не понимаю! Сервлеты, фильтры, иксэмэль-парсеры, эскуэль запросы, коммиты в репозитории, аштэтэпэ гет и пост, юнит-тесты... Все это было мне в новинку. Потому что я только недавно узнал как пользоваться интерфейсами. Бывали такие моменты, что смотрю я на код, лезу по цепочкам вызовов методов, углубляюсь все дальше в код. И тут понимаю, что забыл с чего начинал поиски. Периодически бывали мысли просто встать и убежать! А тут еще аллергия весенняя и проблемы в личной жизни. Мозг просто отказывался успевать все понимать. Короче. Я не прошел испытательный срок. Спустя 3 месяца пребывания в этой шикарной организации, я подписал расторжение трудового договора. Это был адский стресс. Я не справился с тем, о чем так мечтал. Самооценка была сильно подорвана. Появились седые волосы. Но я решил продолжать то, что начал. В июле 2014 меня согласились взять на работу в родной Казани, в международную организацию, над одним из продуктов которой трудились в казанском офисе. Там я писал фронтенд на свинге. Программа выполняла перевод данных из одной СУБД в другую. Ох, и помучал же я тогда тимлида и сениоров своими плохими познаниями в написании джава-кода! Эта работа мне позволила набить руку, изучить базовые приемы и безусловно улучшила знания. Я со своей стороны также сделал парочку серьезный нововведений. В этот период меня дико одолевали сомнения. Мне все также тяжело давалась работа, не хватало усидчивости и концентрации внимания. И испытательный срок еле прошел. Но, в феврале 2015, в самую кризисную пору, прошли сокращения штата. Сократили меня, как самого неопытного и косячного, и коллегу, как самого старшего и уже заколебавшегося. Тоже был нехилый стресс для меня. Я знал, что я еще совсем зеленый в программировании. И что в период кризиса мало кому нужны новые люди в штат. Всего 10 месяцев опыта работы у меня уже было в копилке. Пусть и не особо удачного, но все же опыта. В марте, когда я был в поисках, произошло очень интересное событие. Совершенно случайно в российской соцсети мне написали не желаю ли я пойти преподавать Java. Меня это предложение сильно удивило. Как выяснилось эйчары тогда совершенно случайно ткнули в меня, буквально, пальцем в небо. Ведь даже слов Java или программирование не было указано у меня в профиле. Ну что ж, я люблю всякого рода авантюры, поэтому согласился приехать и пройти что-то вроде собеседования. Оно представляло из себя написание в блокноте небольшой программки. Я справился. Хотя очень негативно отнесся к такому необъективному способу проверки знаний. И тогда мне предложили провести пробный урок. Дали отсканированные страницы из методички, по которой построен курс. Я подготовился, накатал презентацию и успешно провел этот урок. По окончании его мне сказали, что все гуд, но уроки нужно будет вести у школьников! В возрасте от 12 до 18 лет. Поэтому, попросили переработать материал так, чтобы было интересно и понятно этой возрастной группе. Что я и сделал потом. В результате, мне сообщили, что не готовы меня взять в пользу другого более опытного в преподавании кандидата. Ну ничего, я особо не расстроился. Также сообщили, что готовы со мной связаться осенью, когда будут набираться новые группы. Да и у меня всего 10 месяцев опыта работы было на тот момент. Как-то неуверенно я себя чувствовал. Дальше, в апреле, я трудоустроился в самую известную и крупную в Казани многопрофильную айтишную контору. Там я трудился над разными проектами. Прокачался в эскуэль, сервлетах и др. Также, в августе подхватил инициативу коллеги начать готовиться к сдаче OCA. Когда начал готовиться, я понял, что совершенно не знаю базовые штуки в Java! Все эти заморочки с инициализацией конструкторов при наследовании, просто безбашенный свич, компайл тайм и рантайм. Выходит, что все это я начал изучать только спустя чуть более года, как начал работать программистом. Осенью 2015, как и ожидалось, я созвонился с организаторами курсов и уточнил что к чему. Мне сообщили, что сейчас готовится к запуску курс для взрослых. Я воодушевился. Попросил скинуть материал по которому нужно будет вести курс. Когда получил его, был сильно удивлен - там были только темы, которые требуется рассмотреть! Оказалось, что я должен буду сам сформировать весь учебный материал - теорию, практические задания на уроках, домашнюю работу. Это обстоятельство очень поубавило энтузиазму. Ведь я ожидал, что буду просто пропускать через себя материал из методички, а потом его выдавать в некотором виде на уроках. Но опять же, я подумал, что когда ж еще мне жизнь подкинет такую возможность? Я видел несколько плюсов в этой деятельности для себя. Во-первых, улучшение и закрепление собственных знаний. Ведь не зря говорят - хочешь что-то выучить или понять - расскажи и объясни другому! Во-вторых, повод преодолеть страх публичных выступлений. В-третьих, хорошая возможность натренировать память. В-четвертых, это поправит мое материальное положение, т.к. джуниорам платят немного, а машинку уже давно сменить хотелось, ибо прогнила насквозь нексюша. Ну и в пятых - самолюбие тешится, когда понимаешь, что твои знания и опыт кому-то могут понадобиться. И вот, с ноября начались у меня курсы. Это был адский ад! Находить и готовить материал, продумывать темы уроков, домашние задания. На это уходило абсолютно все свободное время. В сб я готовился к уроку во вт, в вс я готовил урок на чт. Но это в теории. В сб же я начинал подготовку к уроку во вт, к вечеру в вс я в спешке пытался накидать материал. Ну и какую-то часть успевал сделать на чт. Кстати, активно пропагандировал JavaRush. В качестве домашки я давал пройти определенные уровни на этом замечательном сайте. До 10го бесплатного уровня естественно. Но и дальше рекомендовал приобрести подписку. Так как считаю, что джавараш великолепно подходит для набивания руки на примерах. Но вот теорию нужно прорабатывать дополнительно. Помню тот кошмарный мой самый первый урок. Я зашел в учебный класс. Сел на учительское место. До начала урока оставалось 10 минут... Я сидел и понимал, что все хорошо, я в полной безопасности... В класс начали заходить ученики... Осталось 5 минут до начала... Что-то подсказывало мне, что надо повторить материал, я что-то забыл из темы урока, начала нарастать тревога... И вот этот момент! Мне нужно начинать!!! Я встал. вышел к центру перед проекционной доской. Поднял голову... И увидел эти примерно 20 пар глаз, которые внимательно и с недоверием на меня смотрели, словно пытаясь просверлить! Паника! Я представился. Начал что-то говорить, абсолютно позабыв все, что планировал рассказать. Постепенно почувствовал, что начинают дрожать коленки, голос что-то сдавливает. Мне сложно стало выговаривать слова. Хотелось убежать. Но когда я закончил теоретическую часть и перешел к объяснению как создать новый проект эклипс, т.е., к практической части, стало значительно легче и урок пошел как по маслу. Вот так, в постоянном напряге от необходимости готовить уроки прошел этот первый 4х месячный курс у меня. Я значительно улучшил свои познания в Java, закрепил основы. Сменил автомобиль. И перестал бояться незнакомой публики. Наоборот, как и писали в книгах по риторике, я сильно драйвово чувствовал себя в процессе урока. Чего не скажешь о процессе подготовки к нему. Да, это был очень непростой период, когда я не успевал общаться с друзьями. Ну а об отсутствии личной жизни я думаю и упоминать не стоит. Преимуществом себя, как преподавателя курса о становлении Java-разработчиком я считаю то, что сам прошел относительно недавно этот путь. Столкнулся с разными проблемами в этом. Прошел кучу собеседований. Я знаю какие технологии актуальны на данный момент. И самое главное - я знаю, как не надо делать! А именно выходить на поиски работы так рано, как это сделал я. Но у меня была такая ситуация, что нужны были средства к существованию. А так, я бы еще как минимум месяца 3 продолжал бы обучение, изучал бы технологии и фреймворки, попробовал бы написать какуюнить бесполезную, но технологичную программу. В таком случае, стресса и седых волос было бы значительно меньше. В той организации я проработал год и месяц. В принципе, там было все хорошо с точки зрения профессионального роста до того момента, как ушел тимлид. Это был человек, который направлял, давал мне разные интересные задания. Даже несмотря на частые мои косяки, эх. Он знал все, по любым вопросам мог дать совет - и по фронтенду, и по бэкэнду, и по субд... С его уходом было потеряно связующее звено между руководством, разработчиками и аналитиками. Полный кавардак начался в проекте, короче. Кстати, только к концу работы в этой организации меня перестали посещать мысли о правильности моего выбора пути разработчика. До этого они меня всегда сопровождали. При осознании каждой трудности, задержке решения задачи, баге в моем фиксе другого бага. Это очень давило. Но я помню, твердо решил еще в начале пути, что принимать решение о продолжении или завершении пути разработчика буду только спустя 5 лет. Уж как-то тяжело у меня все шло. Я чувствовал постоянно, что вокруг меня люди намного умнее меня, что я не могу так же быстро схватывать как они. Что и не стоило, наверно, это все замышлять. В июне этого года я устроился работать туда, где тружусь по сей день. Мы работаем над очень интересным сервисом резервирования облачных данных из сервисов типа гуглдиска, дропбокса, оффис365 на сервера амазона. Хочу отметить, что, если бы не внимательная проработка темы многопоточности для проведения уроков, я бы не смог пройти собеседование в эту организацию, т.к. были даны задания именно по этой части. И я решил снова вернуться к подготовке к OCA. Еще в конце зимы нашел отличные материалы для этого. Но все не находил времени на подготовку. И вот, между 2 и 3 потоком учеников, у меня был свободный месяц для подготовки. До начала курса я, конечно, не успел. Но все же добился своего - прошел экзаменацию оракл 1z0-808 с 81% правильными ответами при 65% проходных. Хотел, конечно, 85%. Но литр с лишним выпитой воды предварительно, чтоб "мозг лучше соображал", вынудили закончить на полчаса раньше без возможности перепроверить все. Но я все же очень горжусь этой успешной сертификацией. В конце января 2017 планирую идти сдаваться на OCP. Да, толку от сертификации не так уж много, если подумать. Лично для меня это возможность хорошо закрепить самые азы. Т.к. мне необходимо бывает отвечать на каверзные вопросы учеников. В заключении своей истории хочу написать вот что. Несмотря на то, что разработчиком я тружусь уже почти 2,5 года, как таковым программистом я себя не ощущаю. Я знаю какой огромный объем информации мне нужно через себя пропустить о всякого рода алгоритмах, субд, структурах данных, веб-технологиях, паттернах, фронтенде, фреймворках и их множественных разновидностях. Да и на JavaRush хочу продолжить заниматься для общего развития, благо подписка безлимитная. Работы непочатый край! И главное - мне это нравится. Хочется знать все больше и больше. Уметь писать код быстрее и лучше. Хочется со временем перерасти в тимлида или архитектора. Но до этого столько всего! Остается только правильно распределять время и меньше прокрастинировать. Спасибо за внимание!
Комментарии (25)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Str3psils Уровень 17
27 декабря 2016
Красавец, мой путь почти аналогичный, и он совсем не прост.
Wardeng Уровень 36
9 ноября 2016
Что ж, красавчик, пробился. Я считаю, что в программировании, как и в изучении иностранных языков главное это ежедневные занятия, и по-тихоньку можно все освоить.
Wardeng Уровень 36
2 ноября 2016
Ну капец, нельзя было покороче написать историю успеха?)
lorentso Уровень 19
2 ноября 2016
Доброго времени суток. Интересно узнать про курс, который вы преподаете. В каком классе? На какой уровень знаний у деток рассчитан? Сколько по продолжительности — целый год или меньше? Если не жалко и если есть в электронном виде может дадите курс посмотреть. Всех благ. Приятно, что есть такие люди, внушают надежду)
Lenchik854 Уровень 0
1 ноября 2016
Спасибо большое за отличную историю и советы. Очень мотивирует. Это настоящая история успеха со взлётами и падениями. Вы большой молодец. Желаю Вам успехов в работе, ну и в личной жизни, конечно ;)
imp Уровень 31
31 октября 2016
Грац!
А сейчас вы продолжаете заниматься обучением? или занимаетесь чем-то другим?
bkozhaev Уровень 20
31 октября 2016
Спасибо за историю!
Я застрял на 18 уроке, да и про многопоточность почти ничего не понял, многие задания выполнял подглядывая на готовые решения, тут в форуме многие советуют не подглядывать, а пробовать добиваться правильного решения самостоятельно.

Поэтому хочу поинтересоваться, вы обучались только по javarush или использовали еще другие ресурсы дополнительно. Если да не могли бы посоветовать какие.
Kingpin Уровень 31
31 октября 2016
Спасибо за историю! Подскажите что у вас было с уровнем английского, начиная от вашего решения сменить профиль на разработчика по сегодняшний день?
AndreGold Уровень 28
31 октября 2016
Круто, поздравляю) А по каким материалам Вы готовились к OCA?