Попробуйте себя в топовых IT-профессиях и соберите первое портфолио. Бесплатный курс Попробуйте себя в топовых IT-профессиях и соберите первое портфолио. Бесплатный курс Учиться
Код
#истории

«Не хотел быть привязан к низким зарплатам»: как продажник ушёл в Java

Аркадий с детства увлекался кодом, но решился освоить его уже во взрослом возрасте. После обучения Java он готов начать карьеру в IT.

Иллюстрация: Colowgee для Skillbox Media

Аркадий Круглов

Россия, Новочебоксарск


Пройденные курсы


Достижения

Освоил Java, опробовал новые навыки в командной разработке и готовит собственный pet-проект.


Аркадий рассказал:

  • почему в IT нельзя быть уверенным в том, что знаешь всё;
  • как опыт работы в продажах помогает ему в новой сфере;
  • какими навыками разработчика он пользуется каждый день;
  • о чем он советует помнить начинающим айтишникам.

«Мой единственный опыт программирования был в школе»: как решиться освоить Java без технического образования

— До IT ты работал в продажах. Что мотивировало тебя сменить сферу?

— Программирование интересовало меня ещё со школьных лет, но я с осторожностью относился к карьере в IT — понимал, что там высокие требования, и боялся, что не справлюсь. Всё изменилось, когда друг прошел курс по Java и поделился со мной своим восторгом о том, насколько это мощный и интересный язык. Я загорелся: стал читать, смотреть видео, а потом решился на обучение.

До этого мой единственный опыт программирования был в школе на языке Basic, поэтому я, конечно, немного переживал. Но возможность в случае чего посоветоваться с другом, который уже прошёл похожий путь, придала мне дополнительной уверенности.

К тому же меня мотивировало желание найти удаленную работу, чтобы не зависеть от региона с маленькими зарплатами. В программировании я увидел финансовый потенциал и свободу.

— Наверное, сложно было осваивать код практически с нуля. Что тебе помогало?

— Не могу сказать, что я пришёл в IT совсем с нуля. Скорее был на уровне продвинутого пользователя: не просто сёрфил, а мог сам собрать компьютер, установить операционку. Кроме того, я немного писал скрипты для простых игр, так что у меня был опыт, который дал мне общее понимание логики кода.

Но системного понимания, конечно, не было, поэтому в начале обучения было страшно. Думал: «Куда я лезу? Вдруг не получится?» Добавило сомнений и то, что у меня нет высшего образования. Я понимал, что при поиске работы это может быть барьером, — даже на позицию джуна в вакансиях часто требуют высшее техническое образование.

Несмотря на это, я твердо решил, что пройду обучение до конца и не буду тревожиться раньше времени.

Пока не попробуешь, точно не узнаешь, получится у тебя или нет. У моего друга вот получилось.

— Здорово, что ты не поддался страхам! А что было для тебя самым сложным в программе, несмотря на базу, которая уже была?

— Если честно, всё давалось нелегко. Не могу сказать, что схватывал на лету, — каждый этап сопровождался трудностями. Сложности начались буквально с первого шага — установки нужного ПО, в том числе IntelliJ Idea. Потом я с трудом разобрался в том, что такое Java 8, 11, 17 и почему один проект требует одну версию, а другой — другую.

Помню, после того, как установил Idea, долго не мог понять, почему она у меня выглядит иначе, чем у друга-разработчика. В итоге оказалось, что у него просто стояла более новая версия. Это мелочь, но тогда она сбила меня с толку.

Первое время, когда мы проходили переменные, условные операторы и циклы, всё было понятно и увлекательно. А потом началось объектно-ориентированное программирование, а вместе с ним — настоящие сложности. Ушло много времени, чтобы понять, что такое объект, класс, метод и как они взаимодействуют.

Когда пошли коллекции, стало ещё тяжелее. Приходилось вчитываться в материал несколько раз, переспрашивать, возвращаться к уже пройденному. Очень помогал чат студентов в Telegram и поддержка менторов и друга.

Если что-то оставалось непонятным, я всегда мог обратиться за советом. Без этого точно было бы сложнее.

«В IT, как только тебе кажется, что ты всё понял, всё снова кардинально меняется»: о работе над дипломом и первом командном проекте

— В какой момент ты почувствовал, что первичные сложности остались позади и у тебя по-настоящему начало получаться?

— Наверное, когда мы добрались до модуля по фреймворку Spring. Тогда я ещё не приступал к итоговому проекту, а просто смотрел видеолекции, и у меня появилось ощущение, что я все понял и уже в теме. Но итоговый проект показал, что моя уверенность была иллюзорной. Это уже была реальная задача, где нужно было собрать всё, чему нас учили, в единое целое, чтобы оно работало.

Пример кода, который написал Аркадий
Изображение: Аркадий Круглов

Я создавал поисковой движок, который искал информацию среди списка определённых сайтов, а затем по запросу пользователя выдавал ссылки на нужные, отсортированные по релевантности.

— А с какими трудностями ты столкнулся в этом проекте?

— Самая первая проблема возникла с настройкой базы данных и структуры моделей. Нужно было правильно выстроить архитектуру, определить связи между таблицами — one-to-many, many-to-many и так далее. В какой-то момент пришлось поменять архитектуру, и именно тогда у меня всё сломалось. Я не понимал, как грамотно пересобрать базу данных, а это нужно было сделать, чтобы изменить модель. Это я осознал только с опытом.

Следующая серьезная проблема была связана с ForkJoinPool и многопоточностью в целом. Чтобы всё работало синхронно, приходилось долго настраивать и отлаживать разные параметры. Помню, что всё было как в меме, где на одной картинке котики синхронно едят из одной миски, а на другой — каждый кот делает то, что хочет. Первый случай — идеальная многопоточность, а второй — то, что получалось у меня.

Особенно тяжко стало в конце, когда нужно было реализовать функцию «Стоп» при обходе страниц. В идеале ты нажимаешь на кнопку — и все сразу останавливается. А на практике всё работало невпопад. Пришлось долго решать проблему через дополнительную синхронизацию и проверку состояния потоков.

Несмотря на все сложности, я смог довести проект до конца и был очень собой горд. Я писал его сам и лишь в паре мест консультировался с другом.

Потратил примерно месяц и сдал с первого раза — это дало мне уверенность, что я действительно могу.

— Наверное, это было очень мотивирующее чувство.

— Да, но потом начался отдельный большой курс по Spring, и я снова почувствовал, что ничего не понимаю. Было ощущение, что я поднялся на определенный уровень, а потом меня снова бросили в неизвестность, где всё пугающее и незнакомое. В этом вся суть IT: постоянно появляются новые подходы и инструменты, и когда тебе кажется, что ты в чём-то разобрался, всё кардинально меняется.

Потом был командный проект на микросервисной архитектуре. Я думал, что хорошо подготовлен к такой задаче, но оказалось, что настоящие испытания начинаются тогда, когда микросервисы пишут разные люди, а ты пытаешься всё это собрать вместе.

— Это твой первый опыт командной работы?

— Не только мой, но и еще нескольких человек. Было непросто, потому что мы понимали: нам практически впервые нужно реализовать то, что мы проходили в теории, на практике — и в сжатые сроки.

Нам дали выбор — делать монолит или микросервис. Мы, конечно, выбрали микросервисную архитектуру, чтобы прочувствовать, как всё работает в условиях, максимально приближенных к настоящему продакшену.

Первая сложность была связана с тем, что нам выделили довольно слабенький сервер. Пришлось изворачиваться и ужиматься, чтобы все заработало. Мы подключили TeamCity и завязали все на GitLab, чтобы при каждом пуше запускались пайплайны, а TeamCity автоматически разворачивал проект. После этого всё начало выглядеть красиво и по-взрослому.

Потом возник затык с фронтендом. Никто из нас не занимался фронтом всерьёз, поэтому пришлось на ходу разбираться в том, как заставить фротенд увидеть бэк.

Дальше — проблема с одним из ключевых микросервисов авторизации. На него и микросервис с аккаунтами мы потратили больше всего времени — чуть ли не полтора месяца из двух, отведённых на весь проект.

Последние три недели мы просто допиливали всё, что могли. Я лично ложился в три-четыре часа утра, чтобы успеть протестировать, отследить баги и разобраться, почему падает тот или иной сервис. Зато в итоге мой микросервис работал стабильно!

— Классно, что в итоге всё получилось, несмотря на технические сложности. А были ли у вас трудности в коммуникации? Бывает сложно наладить общение в команде, особенно если это первый опыт.

— Были моменты, когда один не понимал другого, и приходилось объяснять буквально на пальцах. Но мы выкручивались: искали точки соприкосновения, обсуждали разные варианты решений, договаривались. За два месяца работы у нас сложились тёплые отношения, и после сдачи мы даже сделали групповой чат в Telegram, где до сих пор общаемся. Возможно, в будущем сделаем ещё один совместный проект.

«Хочется найти команду с понятной структурой и реальными проектами»: о трудностях в поиске работы и pet-проектах

— А когда у тебя появилась возможность опробовать свои навыки уже на реальных, а не учебных проектах?

— После командного проекта мы все начали активно искать работу. Я обратился к Центру карьеры Skillbox, где мне помогли правильно составить резюме и подготовиться к собеседованию, Вскоре я нашёл компанию, которая занимается трудоустройством начинающих разработчиков, и решил попробовать поработать с ними. Но у нас не совпали ожидания: они ожидали кого-то ближе к уровню мидла, хотя изначально позиционировали себя как площадку для джунов.

Тогда я вернулся в Центр карьеры, мы вместе добили резюме и возобновили поиск работы. Тогда я нашёл свой первый проект — разработку приложения для знакомств по типу Tinder, где отвечал за бэкенд. ТЗ поставили устно и расплывчато, и у меня сразу возникли сомнения. Несмотря на это, я проработал три месяца, но безрезультатно — в какой-то момент команда просто перестала отвечать на мои апдейты.

Сейчас я снова в активном поиске. Хочется найти нормальную команду, где будет понятная структура и реальные проекты.

Как и раньше, мешает отсутствие высшего образования — многие компании указывают наличие диплома в качестве обязательного условия. Но я не сдаюсь, продолжаю подтягивать теорию и пробовать разные варианты.

— Не думал сделать pet-проект, чтобы набить руку?

— Сейчас мы с другом обсуждаем идею бота для автоматизации взаимодействия с криптобиржами. Планируем, что бот будет анализировать рынок, мониторить курсы, сравнивать разные биржи и выбирать наиболее выгодные варианты. Сначала хотим реализовать задумку для внутреннего пользования, а дальше — посмотрим. Пока я снова ищу временную работу в продажах, чтобы закрыть финансовые потребности.

— Кстати, твой опыт в продажах как-то пригодился тебе в IT?

— В первую очередь он дал мне понимание бизнеса. Я занимался не просто продажами в классическом смысле, а более глубокими процессами: курировал работу с банками и платежными системами и закупки. Увидел, как устроен бизнес, как думают его владельцы, что для них важно.

Сейчас это понимание очень помогает, особенно в вопросах трудоустройства. Я знаю, почему работодатели делают выбор в пользу одних кандидатов, а не других, и стараюсь подтягивать свои скиллы под эту логику.

Конечно, если говорить о хард-скиллах, то продажи никак не помогут войти в IT. Здесь работает только проектный опыт на реальных задачах. Правда, и в таких делах может пригодиться бизнес-бэкграунд — например, в финтехе.

Айтишнику в этой сфере особенно важно обеспечивать безопасность и надежность не просто потому, что так написано в ТЗ, а потому, что он понимает, какие бизнес-риски за этим стоят.

«Обучение в IT меняет то, как ты воспринимаешь информацию»: о развитии и планах на будущее

— Мы много говорили о том, как выросли твои скиллы. А как поменялось твое мышление?

— Обучение в IT очень сильно влияет на то, как воспринимаешь информацию: начинаешь больше размышлять и обращать внимание на детали, которые раньше просто не замечал. Это, безусловно, влияет и на повседневную жизнь.

Приведу пример: в какой-то момент в России стало сложно открыть многие сайты, сервисы и даже рабочие инструменты. Плагины для разработки, которые обычно подгружаются в средах вроде IntelliJ Idea, перестали устанавливаться напрямую. Я нашёл решение: собрал систему с открытым исходным кодом, арендовал сервер в Европе, всё настроил под себя — и теперь стабильный доступ есть не только у меня, но и у семьи и друзей.

Получается, новые знания помогли не только освоить профессию, но и решать вполне практичные, жизненные задачи. Раньше я бы просто не додумался до такого.

— Как ты видишь свое развитие в IT дальше?

— Java широко используется в банковском секторе, потому что это безопасный и надёжный язык. Так что я бы с удовольствием поработал в финтехе — мне важно ощущение стабильности, которое может дать эта сфера.

— А что бы ты посоветовал человеку, который, так же, как и ты раньше, хочет освоить IT с нуля?

— В первую очередь — изучить рынок, чтобы понять, какие языки программирования не просто актуальны сейчас, но и продолжат быть актуальными в течение пары десятков лет. Java, например, — это довольно стабильный язык, который останется с нами надолго.

Хотя, оглядываясь назад, я думаю, что, возможно, стоило выбрать Python. На мой взгляд, он полегче для новичка, чем Java.

Конечно, будут моменты, когда захочется опустить руки. Тогда нужно просто отдохнуть — отложить обучение на неделю, заняться своими делами, отвлечься. А потом вернуться к задаче со свежим взглядом. Иногда решение сложной проблемы буквально приходит само во время прогулки или принятия душа. Поэтому, если чувствуешь, что голова закипает, просто прогуляйся.

Главное — не судить о своих возможностях заранее. Не думать: «У меня ничего не получится». Сначала пройди путь до конца — и только потом делай выводы.



Курс с трудоустройством: «Профессия Java-разработчик» Узнать о курсе
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована