Как я бросила инженерию и стала backend-разработчиком в Швеции

Как инженер освоила Java-разработку, стала backend-разработчиком, а затем переехала в Швецию и устроилась в Volvo.

3010

Рассказываю, как после переезда в Швецию я освоила Java-разработку, получила опыт работы в благотворительном проекте и устроилась в Volvo.

Почему я решила сменить профессию

По образованию я инженер безопасности дорожного движения. После университета два года работала по специальности: проектировала дороги, парковки, светофоры. Потом мужа пригласили работать в Швецию, и мы переехали.

Как я бросила инженерию и стала backend-разработчиком в Швеции 1

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

Нужно было выбрать: фронтенд или бэкенд. Фронтенд казался мне более творческим направлением, а мне не очень хорошо даётся визуализация. Зато просчитывать и искать логику — это моё. Я чистый инженер, поэтому выбрала бэкенд.

Как я училась и какие были сложности с Java

Я решила начать с Java, поскольку это один из самых популярных языков: на нём часто строится бэкенд и многие приложения. Подумала, что если разберусь, как работает объектно-ориентированное программирование в Java, то изучить дальше С#, Kotlin или Python не составит труда.

Я посмотрела разные онлайн-школы, а муж как опытный программист помог с окончательным выбором. Он оценил содержание курсов и выбрал тот, который охватывал все актуальные подходы и фреймворки и давал, по его мнению, только нужные для начинающего разработчика навыки. Среди них были Spring Framework и Spring Boot, обучение работе в средах разработки, таких как IntelliJ IDEA, работа с базами данных в целом и в конкретных программах, например в PostgreSQL.

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

Процесс обучения в онлайне я воспринимаю как стопроцентное самообразование. Платформа даёт чёткий план и учебные материалы. — это 20%. Остальные 80% зависят от меня.

В начале было сложно. Объектно-ориентированное программирование, на котором строится Java,  давалось мне с трудом. Было сложно научиться мыслить объектами и классами и понять, как это работает. Например, было задание по организации работы библиотеки, где посетитель может брать и возвращать книги. В ней были классы «посетитель» и «книга». Я упортно пыталась задать классу «посетитель» переменную «взял книгу» и долго не могла осознать, что переменная не может принадлежать обоим классам.

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

Только постоянная практика на аналогичных заданиях, помогают постепенно нарабатывать опыт и понимание. У меня на это ушло 3–4 месяца. А чтобы быть уверенной, что я всё поняла, я вернулась в начало курса, пересмотрела все материалы, ещё раз их законспектировала и только потом продолжила. А уже когда разбираешься в основах, стало проще: знания нарастают как снежный ком, и это затягивает.

Первый опыт работы

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

Вдвоём с ещё одним студентом мы работали над backend-частью. Реализовывали функциональность приложения: хранение, передачу и изменение информации в базе данных. Ещё в нашей команде были наставники. Они курировали работу и предлагали архитектурные решения, а мы уже реализовывали их с технической точки зрения.

Моей задачей было дать пользователю возможность получить информацию через поиск новостей. Чтобы, когда он кликает на кнопку «получить новости», на бэкенд шёл соответствующий запрос и приложение выдавало нужную информацию. Здесь очень пригодилось умение использовать PostgreSQL и вообще всё, что я изучала по базам данных. Я уже умела пользоваться системой и понимала, как в ней будут передаваться и храниться данные по заданным мной классам. Это очень облегчило работу.

Конечно, невозможно заранее освоить все инструменты. Приходится постоянно осваивать что-то новое. Для этого достаточно обратиться к официальной документации. Правда, она не всегда бывает переведена и к тому же часто оказывается чересчур сложной. Я в таких случаях ищу короткие видео-объяснения на YouTube, не длиннее 15-минут. Это даёт общее понимание, и дальше становится проще разбираться.

Ещё одной из задач в проекте было прописать проверку авторизации пользователя — так, чтобы данные мог получить только зарегистрированный в системе персонал. С механикой я уже была знакома по дипломному проекту. В нём я писала backend-часть для облачного хранилища, и у меня была похожая задача — проверять при введении логина и пароля, существует ли такой пользователь. Вот как это было реализовано:

Как я бросила инженерию и стала backend-разработчиком в Швеции 2
Вебинар-интервью Solvery «С#, ASP.NET: что сейчас актуально и как подготовиться к собеседованию?»
3010