За 8 лет курс JavaRush прошли тысячи выпускников. Сегодня на сайте проекта зарегистрировано более 1,5 миллиона пользователей из 106 стран. Не все выпускники успели рассказать о своих успехах: о том, как учились, проходили собеседования и начали работать разработчиками. А ведь нынешним студентам интересно узнать истории тех, кто уже работает в IT. Мы взяли дело в свои руки и запустили спецсерию о разработчиках из разных стран и компаний, которые прошли обучение на JavaRush. Наша десятая история — про Максима Пантелеева (Maks Panteleev). Свою карьеру Максим начал с работы оперуполномоченным по налоговым преступлениям в МВД. Но спустя несколько лет уволился и попробовал себя в разных сферах: занимался недвижимостью, работал менеджером в пиццерии, возил людей на такси. Однажды ему пришла идея написать собственное приложение. Как Максим учился разработке и почему ему удалось найти работу сразу же после обучения — читайте в нашем тексте. “Самое сложное — не забить”: история Максима Пантелеева, выучившего Java за 9 месяцев - 1

“Я даже не знал, что есть разные языки программирования”

У меня в школе с математикой было всегда хорошо: в 8-9 классах даже на какие-то олимпиады ездил. Родители хотели, чтобы я поступал в МГТУ им. Н. Э. Баумана, потому что наша школа была связана с этим университетом и можно было немного проще туда поступить. В старших классах мне все это стало неинтересно, я начал пить “отвертку” за гаражами с ребятами. В итоге, на математику я забил и пошел учиться в академию МВД на экономический факультет. Отучился, пошел работать оперуполномоченным по налоговым поступлениям. На этом месте я отработал 5 лет, в 2016 году уволился оттуда и работал в разных местах: занимался недвижимостью, был менеджером в пиццерии, даже пару недель таксистом. В 2020 году у меня родилась идея создать собственное приложение, поэтому я подумал: “А почему самому не выучить какой-нибудь язык и написать?”. Даже если ничего с приложением не выгорит, я смогу просто работать программистом: сидеть на удаленке и получать свои 100 тысяч рублей. В январе 2021 года сел учиться после праздников, купил себе книгу по разработке. Надо понимать, что у меня нет никакого айтишного бэкграунда: я никогда не был связан с этой сферой, у меня нет знакомых и друзей из IT. Я просто зашел в “Яндекс” и написал — “Хочу учиться программировать”. Я даже не знал, что есть разные языки программирования. Среди первых в выдаче была ссылка на бесплатную пробную версию одной из книг по Java (“Программирование на Java для начинающих”, Алексей Васильев). В книге было немного теории, немного практики типа написания Helloworld. Я почитал и подумал: “О прикольно, вроде я эту книгу понимаю”. Решил книгу не качать, потому что мне удобней заниматься по бумажной, а поехать в книжный и купить. В магазине были книги по Python, по JavaScript, я их тоже взял, на всякий случай. Но поскольку я начал с книги по Java, решил дальше продолжать и с ней заниматься. Поэтому те две книги я отложил и так до сих пор и не открывал. Я понял, что мне заходит Java и я не хочу ничего менять, буду учиться этому. А еще позже я понял, для чего вообще нужна Java, что на ней можно написать приложение. То есть по сути я просто угадал и случайно попал в Java.

“Я не понимал почти все и всегда”

Два месяца я занимался по книге. Книга на самом деле древняя, потому что в какой-то момент там попался раздел с апплетами, а их уже 15 лет в Java никто не использует. С одной стороны, фундаментальная теория подана достаточно хорошо, просто и понятно для человека совершенно незнакомого с темой. С другой стороны, действительно, в книге есть ряд устаревших моментов. После этого я стал искать курсы: не хотел что-то очень серьезное с ментором и расписанием, но и совсем самому тоже заниматься не хотелось. Хотелось упорядочить свое обучение, но при этом жестко не привязываться к конкретной схеме с оценками, ревью и не платить космические деньги. Так я нашел JavaRush. Прошел бесплатный уровень. Мне подошло и по финансам, и по возможности заниматься в своем графике и ритме, и по интересной подаче. Первые несколько уровней мне было легко, ведь я до этого два месяца занимался с книгой. Я понимал уже, что такое методы, интерфейсы, циклы, переменные. Потом естественно, как у всех, начались сложности и непонимание определенных тем. Я не понимал почти все и всегда. Я не понимал, что такое стримы, очень долго не хотел их учить и разбираться с ними. Лямбды тоже не сразу у меня сложились. Многопоточность тоже выносила мозг. Со временем, когда я чуть больше практики получил, понял, что в принципе ничего сложного нет. Я не люблю привязываться к жестким графикам и начинаю сильно нервничать, когда что-то идет не так, поэтому не составлял никакого расписания учебы. Соответственно, я просто вставал, делал свои утренние дела и садился заниматься пока не надоест. Когда надоедало, я чуть отдыхал, потом занимался снова. Иногда я мог просидеть 5 часов, иногда мог зависнуть с утра и до ночи. Иногда мне самому было очень интересно довести дело до конца, поэтому я засиживался вне всяких графиков. В некоторые дни наоборот обучение не шло, но я старался тогда хотя бы 1-2 часа посидеть, чтоб с чистой совестью пойти заниматься своими делами. Бывало учился по 2-3 недели практически без выходных. За все время обучения буквально 2-3 раза было так, что я ничего не делал по паре дней. Прошел все уровни на JavaRush к сентябрю 2021 года. Тогда проходил набор на стажировку JavaRush, куда я благополучно попал и учился там до того, как нашел работу.

“Я понял, что джуны без опыта безумно нужны”

Я вообще не собирался искать работу. У меня был план пройти стажировку и лишь в конце начинать что-то искать. Один человек, который в свое время активно участвовал в комьюнити JavaRush, сказал: “Чего ты сидишь? Иди делай резюме и ищи работу”. Мне долго не хотелось, казалось, что я не готов. Но потом я взял себя в руки и буквально за один день раскидал резюме в 15-20 компаний. На следующей неделе мне начали писать, звонить, звать на собеседования. У меня было 4 собеседования, я на каждое сходил и по одному из них устроился. К техническим интервью я готовился плотно. Почти неделю я потратил на то, чтобы подтянуть теорию. Я готовился по статьям и видео, также под постами в JavaRush гуляет файл с вопросами и ответами для собеседования. Буквально за день до собеседования, я читал информацию по SQL и про него меня спросили на первом же собеседовании. Я прошел в две компании, выбрал Bell Integrator. Это крупный IT-агрегатор, который нанимает разработчиков, распределяет в команды и конкретной команде предоставляет заказчика. Заказчик нашей команды — московская биржа: мы работаем над расчетом индексов для нее. Моя роль по большей части состоит в том, чтобы знакомиться с проектом и решать какие-то небольшие задачи не первостепенной важности. Через них лучше узнавать проект, потому что он огромный. Сейчас мне дают какие-нибудь ошибки и я сижу, копаюсь, разбираюсь. В процессе трудоустройства я понял, что джуны без опыта безумно нужны. На них большой спрос. Я сам думал: “Да кому нужен человек без опыта и образования?”. На самом деле спрос огромный на людей без опыта именно по двум причинам: первое — им можно платить меньше, чем опытному разработчику, то есть 80-100 тысяч рублей, и второе — разработчик с опытом начинает предъявлять компании разные требования. Он хочет, чтобы был современный стек, интересная работа. Далеко не каждый работодатель это может предложить, поэтому далеко не каждый работодатель может нанять для себя специалиста с опытом. Зеленому джуну просто хочется на первую работу, чтобы вообще понять, что происходит. И вот как только через год он разбирается, что происходит, становится опытным разработчиком, он и начинает качать права. То есть год-два джун готов выполнять скучные задачи за достаточно адекватные деньги. При этом всем джунов не так много, как нам кажется. Тех, кто отучился и обладает уверенными знаниями. Люди на собеседованиях это видят: джунов много, но мало тех, у кого есть знания. Поэтому если ты обладаешь достаточным уровней знаний, попасть на работу не составит проблемы. Как понять, что ты его достиг? Можно просто открыть дорожную карту Java-джуниор разработчика и посмотреть по технологиям. Если большую часть ты знаешь, пора идти на собеседование. Если в половине ты вообще темный лес, то стоит еще поучиться.

Советы для начинающих разработчиков:

  1. Загружайте проекты на Git. Если ваш Git пустой, вы не даете ссылку на Git в своем резюме или там есть лишь пара задач на 4 строки, шансов устроиться на работу практически не будет. Потому что единственное, что может предъявить джун как специалист — это его Git и код, который он пишет. Если у него нет образования и Git, то как вообще понять: разработчик он или нет? На двух собеседованиях открывали мой Git и задавали вопросы по моим проектам: что, как и зачем я сделал. У меня, во-первых, там тестовое задание лежит со стажировки JavaRush — это достаточно неплохой спринговый проект. Он отлично подойдет как визитка для резюме. Я также туда добавил тестовые задания для собеседований, которые мне давали. Если вы получаете тестовое задание от работодателя, то обязательно его делайте, оформляйте красиво и вешайте на Git. Если там все будет хорошо написано, это будет плюсом для вас. Было несколько небольших задач, которые я сам для себя придумал и реализовал. Были мои реализации известных алгоритмов.

  2. Самое сложное — не забить. Разобраться в любой проблеме с нуля можно всегда, просто потребуется то или иное количество времени. Самая большая проблема людей, когда они что-то не понимают — мысли, что программирование не для них, что они тупые, а все умные. Надо преодолеть этот барьер и просто биться над задачей, пока ты ее не решишь. Не получается — отдохни. Зайди с другой стороны. Всегда будет не получаться, но к этому надо относиться спокойно. Если принять мысль, что непонимание — это нормально, это часть профессии в целом, тогда дело пойдет.

  3. Пишите краткое резюме. Не надо много лишней информации о себе. Даже если у вас 700 лет опыта на разных заводах, убирайте это из резюме. Оставляйте пометку “нет опыта”. Все, что надо рекрутерам — это ваши навыки, актуальный стек технологий, которые вы реально знаете, ваши проекты и несколько слов о том, где учились, а также упоминание о стажировке, если стажировались.

  4. Не бойтесь собеседований. Я боялся дико своего первого собеседования, потому что был абсолютно уверен, что моего уровня не хватает, чтобы сейчас устроиться на работу. Думаю, что у многих такая проблема. Но если вам откажут, надо попросить совет — что выучить, что исправить. Надо использовать собеседования как этап обучения, чтобы выявить свои слабые места. И залить потом фундамент из соответствующих знаний. Возьмите паузу на месяц, закрепите темы и идите снова собеседуйтесь.

  5. Не бойтесь обращаться к старшим товарищам. Они прекрасно понимают, что вы джун без опыта и не можете просто так взять и разрулить все по щелчку пальцев. Основное правило для новичка: уделять проблеме столько времени, чтобы сразу же не дергать всех вокруг и чтобы не потратить впустую слишком много. Рассчитайте время, которое вы можете потратить на решение проблемы самостоятельно, прежде чем начнете просить помощь и тревожить своих коллег. Не надо сидеть неделю, а потом говорить: “Ничего не получилось”. И, конечно, не надо через 20 минут после получения задачи заваливать своего наставника вопросами.

  6. Найдите товарища-разработчика, чтобы с ним провести тестовое интервью. Погоняйте друг друга по вопросам. Это поможет подготовиться.