Как стать Fullstack-разработчиком: от junior до senior и выше
Привет всем! На связи Андрей Ивойлов, ведущий разработчик и тимлид в команде платформы «Своды» «БАРС Груп». Сегодня я расскажу о своем профессиональном пути и о том, как пришел в сферу IT.
Fullstack-разработчик – это…
Кто же такой Fullstack-разработчик, что ему нужно уметь и какие задачи стоят перед ним? Fullstack-разработчик - это специалист, который разбирается во всем стеке технологий. Он отвечает и за backend логику приложения (то, что реализуется на сервере), и за frontend (то, что видит пользователь в интерфейсе браузера).
Первые шаги
У меня нет профильного образования, но уже 6 лет я развиваюсь и расту в этой сфере. На собеседовании сразу предупредил, что у меня практически нет опыта (пробовал делать различные игровые серверы для игр), но я был готов работать, работать и еще раз работать. И мне дали шанс. Да, было трудно, нужно было много учиться и разбираться в абсолютно неизвестной для меня профессии, но я четко видел конечную цель.
В первые месяцы меня очень сильно поддерживали мои коллеги: помогали «разгребать» таски и параллельно объясняли основы C#. Но честно признаюсь, что иногда хотелось бросить, не все получалось с первого раза.
Следует отметить, что для разработчиков в нашей компании применяется система грейдов (junior, middle, senior). Повысить свой грейд можно с помощью аттестации, которую я по окончанию испытательного срока (три месяца) успешно провалил, но, к счастью, мне дали еще один месяц на подготовку. Я собрался и был принят в команду. Спустя четыре месяца я мог назвать себя junior-разработчиком: писал backend на C# и SQL (немного), самостоятельно изучал JavaScript, зная, что он пригодится мне в будущем.
Повышение скиллов
После испытательного срока я все так же занимался backend-разработкой на разных проектах, спустя какое-то время стал ответственным разработчиком за один из наших проектов. Постепенно продолжал погружаться в C#, иногда появлялись задачи на frontend. Также был ментором для junior-разработчиков.
Через год был переведен в отдел разработки платформы для сбора отчетности. Задачи стали разнообразнее, и я уже мог себя назвать Fullstack-разработчиком: создание UI, реализация полноценной серверной логики (ASP.NET), плотное взаимодействие с БД (Oracle), десктопное приложение (Windows Forms).
После трех месяцев в новом отделе я в первый раз решил попробовать повысить грейд до middle, к сожалению, теоретических знаний не хватило. Но через полгода мне все-таки удалось успешно сдать аттестацию: продолжал работать над нашей платформой, периодически участвовал в аттестациях других разработчиков.
Спустя три с половиной года я повысил грейд до senior. На тот момент я делал уже более сложные задачи, продумывал архитектуру, погружался в расследование инцидентов производительности, оптимизации, а также участвовал в разработке поддержки еще одной СУБД (PostgreSQL), помогал переводить платформу на .NET Core, переписывал frontend платформы. Через полгода меня назначили руководителем отдела разработки платформы.
Тимлид команды
Если кратко, то в мои обязанности как руководителя входит планирование и координирование работы отдела: распределение задач между специалистами, наблюдение за ходом их выполнения и процессом разработки в целом. Но, конечно, самое главное здесь – умение расставлять приоритеты и слышать свою команду.
Для повышения квалификации я изучал много теории, «копался» в open source проектах, пробовал применять теорию на своих pet-projects. Также необходимо быть вовлеченным в процесс: участвовать в обсуждениях, предлагать идеи, помогать своим коллегам - это большой плюс для разработчика. Hard skills – важны, но и soft skills имеют большое значение (а иногда это ключевой фактор) для карьерного роста.
В работе меня мотивирует возможность постоянно развиваться и, конечно, чем больше у тебя знаний и навыков, тем выше твой заработок. Также очень радует тот факт, что именно ты делаешь жизнь пользователей проще и удобнее.
Советы новичкам
У новичка должно быть понимание, что в этой сфере саморазвитие - один из ключевых факторов. Да, не всегда в работе можно применить все технологии, которые вы изучаете, но, когда наступает момент для их внедрения - вы должны быть готовы. Вам необходимо участвовать в процессе разработки полностью, а не просто писать код.
Для самообразования могу посоветовать несколько ресурсов, которые в свое время мне помогли понять основы C# и Javascript:
Книги
1. C# in Depth. Jon Skeet
2. CLR via C# (Developer Reference) 4th Edition. Jeffrey Richter
3. Паттерны проектирования на платформе .NET. Сергей Тепляков
Сайты
YouTube-каналы
1. https://www.youtube.com/c/DotNextConf (Записи с конференции DotNext)
2. https://www.youtube.com/c/HighLoadChannel (Записи с конференции HighLoad++)
P.S. В следующей статье мы расскажем, как попасть на работу в ИТ-компанию, какие методы применяются при поиске сотрудников, и обязательно ли быть программистом, чтобы работать в этой сфере. Оставайтесь на связи!