Как я бросила инженерию и стала backend-разработчиком в Швеции
Рассказываю, как после переезда в Швецию я освоила Java-разработку, получила опыт работы в благотворительном проекте и устроилась в Volvo.
3К открытий3К показов
Анастасия Шарковская
Backend-разработчик в Volvo Autonomous Solutions, выпускница курса «Java-программирование с нуля» в Нетологии
Рассказываю, как после переезда в Швецию я освоила Java-разработку, получила опыт работы в благотворительном проекте и устроилась в Volvo.
Почему я решила сменить профессию
По образованию я инженер безопасности дорожного движения. После университета два года работала по специальности: проектировала дороги, парковки, светофоры. Потом мужа пригласили работать в Швецию, и мы переехали.
Я очень люблю свою профессию и хотела продолжить работать по ней в Швеции. Но когда началась пандемия, муж предложил мне освоить программирование, которым занимается сам. Вообще оно всегда меня привлекало, просто я не относилась к этим мыслям серьёзно, а тут решила попробовать.
Нужно было выбрать: фронтенд или бэкенд. Фронтенд казался мне более творческим направлением, а мне не очень хорошо даётся визуализация. Зато просчитывать и искать логику — это моё. Я чистый инженер, поэтому выбрала бэкенд.
Как я училась и какие были сложности с Java
Я решила начать с Java, поскольку это один из самых популярных языков: на нём часто строится бэкенд и многие приложения. Подумала, что если разберусь, как работает объектно-ориентированное программирование в Java, то изучить дальше С#, Kotlin или Python не составит труда.
Я посмотрела разные онлайн-школы, а муж как опытный программист помог с окончательным выбором. Он оценил содержание курсов и выбрал тот, который охватывал все актуальные подходы и фреймворки и давал, по его мнению, только нужные для начинающего разработчика навыки. Среди них были Spring Framework и Spring Boot, обучение работе в средах разработки, таких как IntelliJ IDEA, работа с базами данных в целом и в конкретных программах, например в PostgreSQL.
Сейчас я понимаю, насколько важен баланс между обучением конкретным фреймворкам и азам программирования. Нужно не только уметь пользоваться инструментами, которые позволяют компилировать короткий код, но и знать из чего он состоит. Поэтому, с одной стороны, нужно уметь пользоваться популярными программами, ведь нужно с чего-то начинать. А с другой — понимать суть подходов, потому что инструменты для работы постоянно меняются.
Процесс обучения в онлайне я воспринимаю как стопроцентное самообразование. Платформа даёт чёткий план и учебные материалы. — это 20%. Остальные 80% зависят от меня.
В начале было сложно. Объектно-ориентированное программирование, на котором строится Java, давалось мне с трудом. Было сложно научиться мыслить объектами и классами и понять, как это работает. Например, было задание по организации работы библиотеки, где посетитель может брать и возвращать книги. В ней были классы «посетитель» и «книга». Я упортно пыталась задать классу «посетитель» переменную «взял книгу» и долго не могла осознать, что переменная не может принадлежать обоим классам.
Поэтому я долго сидела над заданиями: чертила схемы взаимодействий на листке бумаги, смотрела примеры решений и пробовала снова и снова. Просто, чтобы осмыслить совершенно новую информацию, требуется время. Когда она не укладывается в голове, нужно переключиться на другие задания или дела, а потом вернуться и попробовать снова.
Только постоянная практика на аналогичных заданиях, помогают постепенно нарабатывать опыт и понимание. У меня на это ушло 3–4 месяца. А чтобы быть уверенной, что я всё поняла, я вернулась в начало курса, пересмотрела все материалы, ещё раз их законспектировала и только потом продолжила. А уже когда разбираешься в основах, стало проще: знания нарастают как снежный ком, и это затягивает.
Первый опыт работы
В конце обучения студентам моего курса предложили поработать в благотворительном проекте. Нужно было делать веб- и мобильное приложение для Первого московского хосписа, которое бы помогло систематизировать работу с документами и упростить передачу информации между сотрудниками и волонтёрами. К разработке привлекали опытных IT-специалистов, преподавателей и студентов Нетологии. Идея мне очень понравилась, и я согласилась, не раздумывая. Тем более, это была отличная возможность попрактиковаться и получить опыт в реальном проекте.
Вдвоём с ещё одним студентом мы работали над backend-частью. Реализовывали функциональность приложения: хранение, передачу и изменение информации в базе данных. Ещё в нашей команде были наставники. Они курировали работу и предлагали архитектурные решения, а мы уже реализовывали их с технической точки зрения.
Моей задачей было дать пользователю возможность получить информацию через поиск новостей. Чтобы, когда он кликает на кнопку «получить новости», на бэкенд шёл соответствующий запрос и приложение выдавало нужную информацию. Здесь очень пригодилось умение использовать PostgreSQL и вообще всё, что я изучала по базам данных. Я уже умела пользоваться системой и понимала, как в ней будут передаваться и храниться данные по заданным мной классам. Это очень облегчило работу.
Конечно, невозможно заранее освоить все инструменты. Приходится постоянно осваивать что-то новое. Для этого достаточно обратиться к официальной документации. Правда, она не всегда бывает переведена и к тому же часто оказывается чересчур сложной. Я в таких случаях ищу короткие видео-объяснения на YouTube, не длиннее 15-минут. Это даёт общее понимание, и дальше становится проще разбираться.
Ещё одной из задач в проекте было прописать проверку авторизации пользователя — так, чтобы данные мог получить только зарегистрированный в системе персонал. С механикой я уже была знакома по дипломному проекту. В нём я писала backend-часть для облачного хранилища, и у меня была похожая задача — проверять при введении логина и пароля, существует ли такой пользователь. Вот как это было реализовано:
3К открытий3К показов