“С детства хотел заниматься компьютерами”
Мне 26 лет, я родился и вырос в Новосибирске. С самого детства хотел заниматься компьютерами и в целом тема разработки игр была мне интересна. Я писал какие-то текстовые квесты на C++ и C#, но не блистал в учебе (был ленив), хотя глупым не был — скорее несобранным. В связи с этим поступил туда, куда была возможность. Думал поработать в правоохранительных органах, поэтому окончил Уголовный юрфак СГУПСа (Сибирский государственный университет путей сообщения — ред.), и в итоге очутился именно там, где хотел. На втором курсе пошел на стажировку в Следственный комитет, да так там и остался. На четвертом курсе приняли на работу — не знаю, как сейчас, но раньше после третьего курса можно было устроиться. Через полгода после выпуска из вуза получил звание лейтенанта. Проработал еще год и понял, что устал: все эти долгие ночи, дежурства, отсутствие социальной жизни как таковой, и поэтому принял решение уволиться. После этого устроился в банк по линии службы безопасности (поэтому в тексте буду упускать некоторые моменты: NDA действует до сих пор). Там я немного поддерживал свое желание что-то разрабатывать: улучшал процессы, автоматизировал их, и в итоге все выросло в разработку относительно большого проекта по реализации единой системы доступа для отдела. Отдел хоть и состоял всего из 50 человек, но программа (кстати она была на пресловутом MS Access, но это нормально для банков, зачастую на разработку ПО для службы безопасности не хотят тратить деньги) была натыкана кучей нужных штук: была и база данных, и автоматизация создания Excel и Word файлов, подключение к Outlook и даже распознавание текста pdf-файлов через Adobe Acrobat Reader. Благодаря этому я неплохо продвинулся по службе, но поскольку это служба безопасности, то понял, что не так много вариантов, как развиваться дальше.“Я не просто учился, я вгрызался”
Начиная с середины 2019 года, я погрузился в пучину усталости и скуки, однако моя девушка напомнила мне, чем я хотел всегда заниматься и сказала «попробуй». Почему бы и нет, решил я. На тот момент заработок, рабочий день и нахождение на отличном счету у начальства позволяли мне заниматься по вечерам дома программированием, а не сидеть до ночи в офисе. Поэтому я вновь воспылал этой мыслью и решил попробовать. Поскольку уже ничего не помнил (кроме этого «проклятого» VBA — немного упрощенная реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office — ред.), начал с чтения книги Герберта Шилдта «С++ для начинающих» (кстати, отличная книга, всем рекомендую), смотрел видео на Youtube. В какой-то момент в банке объявили программу переподготовки на Java, на которую я успешно поступил. Через два с небольшим месяца окончил. Честно говоря, мне она практически ничего не дала, потому что за два месяца два раза в неделю очень сложно было охватить нормально весь материал. Преподавали хорошо, но темы проходили слишком быстро, практики почти не было. Здесь я буду не до конца честен, если не скажу, что все-таки эта программа была в основном нацелена на тех, кто уже работает инженером или в ИТ-части банка. Мне с моим нулевым опытом это было крайне затруднительно. По окончании «переобучения» внутри банка проводили собеседования, на которых я окончательно понял, что ничего не понял. Если уж банк не готов брать человека из своего коллектива, значит, этот человек практически ничего не знает. Это был декабрь 2019 года. Я заметил, что по окончании некоторых собеседований мне говорили, что есть сайт JavaRush. Поэтому когда я смирился, что ничего мне не светит без нормальных знаний, я зарегистрировался и начал учиться. Активная фаза обучения пришлась на февраль-май 2020 года. Когда нас отправили на карантин в марте, там-то я развернулся на полную. Не было необходимости идти в офис, работал удаленно, процесс был настроен так, что я мог делать свою работу с задержкой в один-два дня. Я не просто учился, я вгрызался, сидел круглыми сутками. Для меня было нормально проснуться в восемь утра и начать заниматься, а после 16-ти, когда уже голова закипала, я переходил к своей удаленной работе. Что касается мотивации, знаете, я просто понимал где-то внутри, что это мое. Конечно, поддержка моей «боевой подруги» во многом помогла мне начать этот нелегкий путь. Таким образом занимался примерно 2 месяца, уставал дико, но в целом мозг не сильно напрягал. Если вы захотите сделать, к примеру, какую-либо выпечку, вы скорее всего прогреете духовку до 160-180 градусов, после чего будете при необходимости повышать температуру. Вряд ли вы врубите сразу 250 градусов, ведь тогда вы просто ее спалите. Здесь то же самое. Квест я прошел за 2-3 месяца, после чего начал изучать все так необходимые работодателям плюшки (Spring, Hibernate, Tomcat, etc). Кстати, прочел книгу «Spring 5 для профессионалов». Информации там море: иногда, конечно, сложно воспринимается, но в целом все разжевано, даже Youtube мне не лучше объяснил про Spring, чем эта книга. Также советую посмотреть на сайт фреймворка Spring, там есть туториалы, они очень годные, но на английском. Самыми сложными темами в обучении для меня были буферы, работа с файлами и побитовые записи, но они крайне мало где используются и в 99% они нужны для развития. Сложности были скорее в постоянных рекурсиях, я просто путался, но на то это и обучение: ты делаешь что-то неправильно, потом узнаешь, как правильно, понимаешь, почему это так и перестаешь делать ошибки в подобных местах. В конце концов, никогда нельзя научиться, ничего не делая.“Не нужно быть гением, чтобы найти себя в IT”
Работу я начал искать еще на 28-м уровне, но быстро понял, что знаний недостаточно. Потом делал перерыв и в мае, когда уже завершил квест и почитал о фреймворках, начал искать повторно. Думаю, прошло не менее 10 собеседований прежде, чем меня взяли. Сейчас в IT идут много людей, но бутылочное горлышко приема становится все сложнее пройти. Обычно трое из десяти устраиваются в течение 1-2 месяцев, остальные дольше, иногда даже сильно дольше. Но это не значит что нужно бросить поиски работы. Когда я провалил мое четвертое собеседование, мне сказали: «Ходи и дальше на собеседования, в итоге все запомнишь, сможешь пройти собеседование, устроиться. В работе быстро научишься». В основном на собеседовании спрашивают одно и то же. Но есть и редкие исключения, когда могут начать разговор об алгоритмах. Например, я пробовал устроиться в одну компанию, которая занималась реализацией госпроектов в социальной сфере. Там мне задали вопрос по алгоритмам, я на него ответил плохо, но все же спросил: «Действительно ли мне дадут работать с алгоритмами?». На это мне ответили: «Конечно нет, у нас если специальная команда миддлов и синьоров для этого». Мне стало интересно, и я уточнил, зачем они спрашивают подобные вещи. Оказалось, что это просто требование начальства: ты можешь и не работать с алгоритмами, но знать их до трудоустройства обязан. На собеседованиях особенно важно показать знание Spring, Hibernate, SQL. Набор небольшой, но недостаточно разбираясь, можно начать молоть чепуху. Так что если не знаете, лучше ответьте примерно так: «Я вот именно этого не знаю, зато я знаю в Spring это и это” и так далее. Таким образом ваши знания, пусть и небольшие, заметят. Я устроился в компанию по разработке браузерных игр (название компании я опущу, чтобы начальство не злилось), занимаюсь разработкой back-end части игры. То есть я работаю с базой данных, пишу дополнения, добавляю фичи, стыкую back и front. Занимаюсь также алгоритмами, использую Spring (стандартно все: разметки, бины, парсеры). Работаю с Tomcat, PostgreSQL и Hibernate. В общем, поддерживаю и дорабатываю проект по мере сил и порученных мне задач. Пока что я джун. Первые 2 месяца работы я ничего не понимал, сроки поджимали, я по своей инициативе сидел по 12-14 часов работая, но… это принесло свои плоды. Правда, у меня серьезный ментор (крутой синьор с пятнадцатью годами опыта). Он говорит: «Разберись сам, ищи как это работает», то есть не помогает, а если помогает, то крайне редко. И знаете что? Это правильно — заставлять программиста думать самому. Если бы я с самого начала не батрачил сутками, а спрашивал все подряд — это ни к какому профессиональному росту не привело бы. Сейчас я могу с уверенностью сказать, что выполняю все задачи джуновского порядка и в последнее время вижу, что мне поступают задачи порядком выше. Ближе к лету 2021 (если вирус нас всех не доконает), начну искать новое место, а пока — саморазвитие и самосовершенствование. Программирование — это драйв, это новые испытания. Пусть зарплата никого в начале не смущает, через полгода она станет нормальной, а через год так вообще отличной. Если мы говорим о перспективах, то можно сидеть на одном месте и получать нормально, чувствуя, что это не твое и боясь что-то изменить, а можно рискнуть. Я очень рад, что не побоялся и начал работать на будущее, а ведь мог и дальше протирать брюки в кабинете. В конечном итоге мне кажется, каждый может найти себя в IT, не нужно быть гением, ученым, великим математиком, если есть упорство и тяга к новому — все возможно.Советы для начинающего разработчика:
Читайте и смотрите видео. Если смотрите в Youtube какую-то информацию на много серий, старайтесь выбирать одного автора, поскольку свои мысли каждый доносит по-разному. В итоге, переключаясь с одного ютубера на другого, можно запутаться в одной и той же теме.
Не пытайтесь делать все сразу. Особенно если вы работаете не удаленно и нужна сосредоточенность в вашей работе. Учитесь по паре часов в день, если есть свободное время в выходные — не перетруждайтесь, вы и так уже целую неделю учились: лучше отдохните.
Старайтесь описать в резюме конкретные навыки. Например, не пишите в резюме «знаю Java», это слишком расплывчато, на этом вас могут подловить и спросить что-то такое, чего вы просто можете не знать. Знаете Java Core? Отлично, напишите после слов «Java Core» пару вещей из того, что вы реально знаете.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ