Рустем Сайфутдинов
22 уровень
Казань

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

Статья из группы Истории успеха

Досье

  • Кто: Рустем Сайфутдинов
  • Кем работал: —
  • Место жительства: Казань, Россия
  • Возраст на момент старта обучения Java: 25
  • Оригинал истории успеха
Мой путь Java-дая - 1

Пролог

Все началось 23 января 2003 года. Я пришел домой после школы и театрального кружка и увидел на полу коробки. Это был он — мой первый компьютер: AMD Athlon XP 1800+, 256 Mb оперативки, NVidia GeForce 2 64 МБ и HDD на 40 ГБ. С этого важного дня начинается новая история моей жизни. Тогда я учился в девятом классе. Как думаете, для чего я первым делом использовал комп? Конечно же я начал играть!!! И года на на 4 выпал из реальной жизни. QUAKE, DOOM, Warcraft, Starcraft, Diablo, Command & Conquer: Generals, Civilization, Silent Hill, Deus Ex, Far Cry… Много было конфликтов с мамой, которая не разрешала мне долго играть и говорила делать уроки. Переключиться на учёбу в школе, а затем и в институте было непросто. Ведь у меня был такой чудесный виртуальный мир, где для достижения определенных успехов нужно выполнять заранее определенные действия, всегда можно было запустить предыдущее сохранение и добиться желаемого. То ли дело в реальной жизни… Словом, я потратил на игры уйму времени. Но от этого был и определенный прок: порой игры не запускались, тормозили, не устанавливались. В эти моменты появлялось огромное желание разобраться в проблеме. Тогда я устанавливал, переустанавливал, настраивал, и оптимизировал всё, что мог. Начиная с переделки разделов жесткого диска, сменой файловой системы и переустановки «Винды», заканчивая тюнингом реестра и конфигурационных файлов играх. Благодаря полученным знаниям, я стал славиться среди друзей как «программист». Помогал с их компами, переустановкой ОС, удалением вирусов и прочее. Однажды летом, после с трудом завершенного первого курса технического вуза, я решил начать продавать свои навыки. Набросал в Word объявление с заголовком «Скорая Компьютерная Помощь», расклеил их по поселку, в котором живу. На «пиво и жвачки» хватало. На пятом курсе, вместо того, чтобы усердно писать дипломную работу, устроился по знакомству админить в небольшую загибающуюся конторку. Впервые узнал о домене Windows, работе в сетях, Kerio WinRoute Firewall.

Админ

После получения диплома по специальности «Вычислительные машины, комплексы, системы и сети» в 2010, я видел для себя два пути — программерский или админский. Опыт в программировании был ограничен лабораторками, курсовыми и дипломной работой. Я уже тогда знал, что такое массивы, циклы, условные операторы и классы. Бывали попытки учиться кодить еще в школе. Но GTA успешно перебивала это желание. Хотя, стоит отметить, что кодил я с немалым удовольствием. Помогал с лабами одногруппникам. Но так как опыта дел админских у меня было больше, я выбрал именно этот путь. На одной из следующих работ я решил, что пора взяться за Linux. Просиживал вечерами на работе, экспериментировал. Результатом была настройка шлюза в инет с файерволлом, перенаправлением портов, подключением в инет по Wi-Fi, подключением к VPN. Не сильно круто, но для начала сойдет.
Благодаря этим знаниям, в 2011 году я устроился руководителем отдела внедрения и сопровождения. У меня было в подчинении 4 человека. Мы занимались внедрением толстого клиента на Java Swing в магазинах и складах одной ювелирной компании. Сейчас я понимаю, какую интересную штуку мы внедряли! Но тогда меня мало интересовали тонкости реализации этого ПО.
Жил я в Казани, но давно хотел попробовать вести более самостоятельный образ жизни, и перебраться в «Нерезиновую». В конце 2012 года мне это удалось, причём даже работу не сменил. Там мне ужасно понравилось! Это метро! Эти гигантские улицы с быстрым потоком дорогих автомобилей! Эти огромные потоки людей повсюду! Я был горд тем, что смог добиться этого переезда.
После сворачивания проекта, в середине 2013 я решил, что пора отходить от настройки компов, техподдержки и админства. Решил идти или в аналитики, или в управление проектами. Нашлась должность, на которой я мог развиваться по этим направлениям. И там я понял… Чем никогда в жизни не хочу заниматься!
Был момент, когда я, перекладывая страницы в отчете по госконтракту в правильном порядке, вдруг осознал происходящее. О боже, мне уже четверть века!!! Я ковыряюсь в бумажках, предварительно интеллектуально скопипастив текст в них из таких же бумажек за прошлый отчетный период!!! А ведь до этого я мутил интересные штуки с серверами, организовывал рабочие процессы, помогал людям…
Это был переломный момент в моей жизни. Эдакий «профессиональный кризис». Мне надоело заниматься обслуживанием. Я хотел сам что-нибудь творить и создавать.

Java

Я вспомнил, что в институте у меня неплохо получалось кодить. Вспомнил, что программисты неплохо зарабатывают. Вспомнил, что есть прикольный язык Java, толстый клиент на котором мы внедряли, и программы которого могут запускаться под любыми ОС. Поиски материалов по Java и привели меня на JavaRush. Это было примерно в октябре 2013. Способ подачи информации и огромное количество примеров меня очень привлекали. Я шел на работу, садился за комп, приходил с работы и вечером снова садился за комп, чтобы учиться. Просиживал до глубокой ночи порой. Первые 10 уровней я прошёл очень легко, т.к. многие понятия мне были знакомы. Чтобы оставалось больше времени на учебу, я перестал ходить в спортзал, раздобыл гири и занимался с ними дома. В декабре примерно, я планировал, что не раньше конца марта начну заниматься поисками работы. А вот на работу я начал подзабивать. Да я её уже просто ненавидел. Иногда внаглую делал задания JavaRush прямо на рабочем компе в рабочее время. Результат не заставил себя долго ждать — в начале января 2014 мне сообщили, что я работаю у них только до конца месяца. Это был шок, конечно. Осознание того, что я останусь без основного дохода при необходимости оплачивать жилье, сильно беспокоило. Я усердно взялся за статьи из рода «100 вопросов, которые задают java-джуниорам на собеседовании», продолжая заниматься на JavaRush.

Собеседование и тестовое задание

Я дошел где-то до 17го уровня, когда пошёл на первое собеседование. В одной из организаций мне дали написать тестовое задание — приложение, которое определит можно ли выложить в одну линию все косточки домино. Если да, то вывести этот вариант решения. Воодушевленно я сел за комп ее писать и… Был в ужасе! В тепличных условиях JavaRush было очень комфортно сидеть и писать код. Но тут нужно было все придумать с нуля, с чистого листа, так сказать! Вот тут и пришли сомнения и шатания. А нужно ли мне вообще становиться программистом? Очень тяжело мне было писать код! Я толком ничего не знал о базовых штуках Java, мои знания были сильно поверхностны. Да и непонятно было, как решать эту задачу. Но я все же смог найти в инете алгоритм решения с использованием графов — все сводилось к нахождению Эйлерова пути (это из теории графов, прим. ред.).
С Java мне всё время помогал мой коллега с предыдущей работы, тот, что писал вышеупомянутый толстый клиент на Java. Именно он помог мне решить задачу еще и с помощью рекурсивного метода. Я отправил задачу на проверку… 2 долгие недели ожидания ответа…

Первая работа

…Но все прошло успешно! Меня взяли, я смог! Пятого марта 2014 я вышел на работу в должности разработчика Java. Счастью не было предела, во многом еще и потому, что я оказался в компании, которая занимается электронными платежами. А в ней очень хорошо относятся к персоналу. Чего только стоит их шикарный офис и халявный кофе и чай — тогда еще это для меня было в диковинку.
Сел я разгребать проект… И осознал, что не понимаю ни-че-го! Сервлеты, фильтры, XML-парсеры, SQL-запросы, коммиты в репозитории, HTTP get и post, юнит-тесты… Все это было мне в новинку. Да я только недавно узнал, как пользоваться интерфейсами!
Бывали моменты, что смотрю я на код, лезу по цепочкам вызовов методов, углубляюсь все дальше, и понимаю, что забыл с чего начинал! Периодически бывали мысли просто встать и убежать! А тут еще аллергия весенняя накатила вместе с проблемами в личной жизни. Мозг просто отказывался воспринимать что-либо. Короче, не прошел я испытательный срок. Это был адский стресс. Я не справился с тем, о чем так мечтал. Самооценка была сильно подорвана. Даже седые волосы появились.

Скитания и мытарства

Тем не менее, я решил продолжать то, что начал. В июле 2014 меня взяли на работу в родной Казани, в международную организацию. Там я писал Frontend на Swing. Программа выполняла перевод данных из одной СУБД в другую. Ох, и помучал же я тогда тимлида и сениоров своими плохими познаниями в написании Java-кода! Тем не менее, эта работа мне позволила набить руку, изучить базовые приемы и получить знания. Я со своей стороны также сделал парочку серьезный нововведений. В этот период меня дико одолевали сомнения. Мне все также тяжело давалась работа, не хватало усидчивости и концентрации внимания. Но испытательный срок я прошёл, хоть и со скрипом. Но, в феврале 2015, в самую кризисную пору, прошла волна сокращений. Сократили меня, как самого неопытного и косячного, и коллегу, как самого старшего и уже заколебавшегося. Плюс плюс к счетчику стрессов. Я знал, что ещё совсем зеленый в программировании, и в период кризиса мало кому нужны новые люди в штат. В моей копилке и было-то всего 10 месяцев опыта. Ещё и не особо удачного. В марте, когда я был в поисках, произошло очень интересное событие. В соцсети мне написали в личку и спросили, не желаю ли я пойти преподавать Java. Меня это сильно удивило. Позднее выяснилось, что HR-менеджер совершенно случайно ткнул в меня, буквально, пальцем в небо. Ведь даже слов Java или программирование не было указано у меня в профиле. Тем не менее, поскольку я люблю всякого рода авантюры, то согласился приехать на собеседование, где мне предложили написать в блокноте небольшую программку. Я справился, но про себя отметил необъективность такого способа проверки знаний. Мне предложили провести пробный урок. Я подготовился, накатал презентацию и успешно провел урок. По окончании мне сказали, что все хорошо, но нужно переделать уроки для школьников 12-18 лет. Я это сделал, но в результате они выбрали более опытного преподавателя, но свяжутся со мной в новом учебном году, осенью. Я особо не расстроился. В апреле, я устроился в самую известную и крупную в Казани многопрофильную айтишную контору, где работал над разными проектами. Прокачался в SQL, сервлетах и др. Также, в августе подхватил инициативу коллеги начать готовиться к сдаче OCA. В этот момент я понял, что совершенно не знаю базовые штуки в Java! Все эти заморочки с инициализацией конструкторов при наследовании, просто безбашенный свич, компайл тайм и рантайм. Выходит, что все это я начал изучать спустя чуть более года, как начал работать программистом! Осенью 2015 со мной связались организаторы курсов, и сообщили, что сейчас готовится к запуску курс для взрослых. Оказалось, что я должен буду сам сформировать весь учебный материал — теорию, практические задания на уроках, домашнюю работу. Это обстоятельство очень поубавило энтузиазму. Ведь я ожидал, что буду просто пропускать через себя материал из методички, а потом его выдавать в некотором виде на уроках. Тем не менее, я видел несколько плюсов в этой деятельности. Во-первых, улучшение и закрепление собственных знаний. Ведь не зря говорят — хочешь что-то выучить или понять — объясни другому! Во-вторых, повод преодолеть страх публичных выступлений. В-третьих, хорошая возможность натренировать память. В-четвертых, это поправит мое материальное положение, т.к. джуниорам платят немного, а машинку уже давно сменить хотелось, ибо моя «нексюша» уже насквозь прогнила. Ну и в пятых — самолюбие тешится, когда понимаешь, что твои знания и опыт кому-то могут понадобиться.
С ноября начались курсы, и это был адский ад! Работа в двух местах. Нужно было находить и готовить материал, продумывать темы уроков, домашние задания. На это уходило абсолютно все свободное время. Кстати, я активно пропагандировал JavaRush. В качестве домашки я давал пройти определенные уровни на этом замечательном сайте. До 10го бесплатного уровня, естественно.
Но и дальше рекомендовал приобрести подписку. Так как считаю, что JavaRush великолепно подходит для набивания руки на примерах. Но вот теорию нужно прорабатывать дополнительно. Этот первый четырехмесячный курс прошёл в постоянном напряге. Но! Я значительно улучшил свои познания в Java. Сменил автомобиль. Перестал бояться незнакомой публики: как и писали в книгах по риторике, я стал кайфовать во время урока, чего не скажешь о процессе подготовки к нему. Да, это был очень непростой период, когда я не успевал общаться с друзьями. Ну а об отсутствии личной жизни, думаю, и упоминать не стоит. В упомянутой выше крупной казанской компании я проработал год и месяц. Там было все хорошо с точки зрения профессионального роста до того момента, как ушел тимлид. Он направлял, давал мне разные интересные задания, невзирая на мои частые косяки. С его уходом было потеряно связующее звено между руководством, разработчиками и аналитиками. Полный кавардак начался в проекте, короче. Кстати, только к концу работы в этой организации меня перестали посещать мысли о правильности моего выбора пути разработчика. До этого они меня всегда сопровождали. При осознании каждой трудности, задержке решения задачи, баге в моем фиксе другого бага. Это очень давило.
Но я помню, твердо решил еще в начале пути, что принимать решение о продолжении или завершении пути разработчика буду только спустя 5 лет. Уж как-то тяжело у меня все шло. Я чувствовал постоянно, что вокруг меня люди намного умнее меня, что я не могу так же быстро схватывать как они. Что и не стоило, наверно, это все замышлять.

Настоящее время

В июне этого года я устроился работать туда, где тружусь и по сей день. Мы работаем над очень интересным сервисом резервирования облачных данных из сервисов вроде Google Disc, Dropbox, Office365 на серверы Amazon. Хочу отметить, что, если бы не внимательная проработка темы многопоточности для проведения уроков, я бы не смог пройти собеседование в эту организацию, т.к. были даны задания именно по этой части. Я решил снова вернуться к подготовке к OCA. Еще в конце зимы нашел отличные материалы для этого, но не находил времени на подготовку. И вот, между 2 и 3 потоком учеников, у меня был свободный месяц для подготовки. До начала курса я, конечно, не успел. Но все же добился своего — прошел экзаменацию Oracle 1z0-808 с 81% правильными ответами при 65% проходных. Хотел, конечно, 85%. Но литр с лишним выпитой воды предварительно, чтоб «мозг лучше соображал», вынудили закончить на полчаса раньше без возможности перепроверить все. Тем не менее, я все горжусь этой успешной сертификацией. В конце января 2017 планирую идти сдаваться на OCP. Толку от сертификации не так уж много, если подумать. Лично для меня это возможность хорошо закрепить самые азы. Т.к. мне необходимо бывает отвечать на каверзные вопросы учеников. P.S. Я разработчик уже почти 2.5 года, но как таковым программистом я себя не ощущаю. Знаю, какой огромный объем информации мне нужно через себя пропустить о (алгоритмы, СУБД, структуры данных, веб-технологии, паттерны, фронтенд, фреймворки и т.д.). Да и на JavaRush хочу продолжить заниматься для общего развития, благо, подписка безлимитная. Работы непочатый край! И главное — мне это нравится. Хочу знать больше, писать код — быстрее и лучше. Мечтаю со временем перерасти в тимлида или архитектора. Но до этого столько всего! Остается только правильно распределять время и меньше прокрастинировать.
Комментарии (4)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Artem Уровень 12, Санкт-Петербург, Россия
1 января 2018
Безлимитная подписка? Ни в JavaRush 1.0 ни в JavaRUsh 2.0 такой не видел.
Амаль Аметов Уровень 12, Россия
6 июля 2017
Почему Вы считаете написание программы в Блокноте необъективным способом проверки знаний?
hidden #1345287 Уровень 3
22 июня 2017
Очень хорошая и развернутая статья, спасибо.