Как разработчикам баз данных перейти из джунов в мидлы

Как разработчику быстро перейти из джунов в мидлы? Личный опыт, лайфхаки и подборка книг для Python-разработчиков от эксперта ГК «КОРУС Консалтинг» Павла Ревина, архитектора решений и руководителя центра компетенций по платформам данных.

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

Личный опыт

Я работаю в ИТ-сфере почти 20 лет, начинал как разработчик баз данных Oracle, со временем переключился на весь стек работы с данными – любые реляционные базы, Big Data стек. Сейчас работаю в основном на технологическом стеке Python и SQL – это два основных языка, которые нужны Data-инженеру, а также расширения для SQL – PL/SQL, PL/pgSQL, и фрейворки для Python Pandas, Spark.

В КОРУСе у меня две основные роли – архитектор решений и руководитель центра компетенций. Как архитектор решений я выступаю перед заказчиком, с решениями по хранилищам с использованием классических MPP, Big Data стека и работе с облаками. Как руководитель центра компетенций платформ данных я занимаюсь ресурсным управлением – наймом, развитием людей и распределением специалистов по проектам.

Центр компетенций и матрица скиллов

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

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

Если в вашей компании нет центра компетенций или регулярных обучений, стоит обращаться за советами и дополнительной информацией к более опытным коллегам. Менторство – отличный инструмент для обучения, он помогает и изучить что-то новое, и поделиться своей экспертизой. Если у вас есть желание развиваться, нужно это показывать и быть инициативным.

Чем джун отличается от мидл-разработчика

Главное отличие джуниора и мидла – это опыт и количество внешнего контроля, работают они примерно с одинаковым набором технологий. Если джуна нужно контролировать на каждом этапе выполнения задачи, то мидл-специалист на 80% работает с задачей самостоятельно. Именно по этому критерию менеджеры разделяют грейды.

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

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

Быть в инфополе и следить за индустрией

ИТ-сфера меняется очень быстро, знать о последних новостях будет полезно специалистам любого грейда. Ключевые конференции ведущих облачных вендоров, за которыми стоит следить – это ежегодные конференции Amazon, Google, Microsoft, Yandex Cloud, VK Cloud. Там обсуждаются самые трендовые технологии и сервисы, которые сейчас находятся в фокусе внимания всего ИТ-сообщества. Обычно доклады облачных провайдеров посвящены какой-то специфической части существующего сервиса, сам сервис построен на какой-то технологии, как правило опенсорсной. Это значит, что технология востребована для бизнеса и имеет смысл ее изучать. Возможно, джуниор специалисту многое из того, что обсуждается на конференциях, будет непонятно. Ведь он не в контексте и не знает этих технологий, но сам факт, что эти технологии попали в список докладов, говорит о том, что этому стоит уделить внимание в дальнейшем.

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

Саморазвитие и pet-проекты

Pet-проекты точно могут помочь в освоении новой технологии. Как правило, в больших проектах задачи довольно узкие и большая часть необходимой работы уже была сделано до вас другими командами, а вы ее просто переиспользуете. Если начинающий разработчик придет на другой проект, где нужно делать все с нуля, он не сможет это повторить. Научиться этому помогают pet-проекты. Такая же ситуация с изучением новой технологии, которую вы не можете применить на проекте.

Лайфхак

Часто на первом этапе нужно разобраться с данными, а не в технологии, на которой их обрабатывать. Чтобы не тратить на это время, можно взять готовые бизнес-кейсы и знакомые данные из рабочего проекта и обработать их в новой технологии. Так вам не придется вникать в сами данные и можно более внимательно заняться изучением технологии.

В результате такие проекты можно использовать в работе. Например, я недавно разворачивал кластер Hadoop в Yandex Cloud со Airflow и Spark. Я оформил это в Terraform скрипты в виде проекта. Потом эту инфраструктуру мы использовали, чтобы провести курс по Spark для студентов.

Лайфхак

Кроме изучения технологий, важно знать, как тот или иной инструмент разворачивается, например, попробуйте поставить Apache Kafka или Airflow. Это поможет изнутри понять, как инструмент устроен и всегда будет под рукой, если вы захотите его переподнять и провести эксперименты. Я всем рекомендую уделять внимание разворачиванию компонентов инфраструктуры, потому что само разворачивание – это тоже проект.

Рекомендация книг и статей для Python-разработчиков

Mark Lutz – Learning Python 5thEdition

Изучаем Python. 5-е издание.

Mark Lutz – Python Pocket Reference 5thEdition

Python. Карманный справочник. 5-е издание.

Zed A. Shaw – Learn Python 3 the hard way

Легкий способ выучить Python 3

Luciano Ramalho – Fluent Python. 2nd Edition

Python. К вершинам мастерства. Лаконичное и эффективное программирование. 2-е издание.

https://docs.python.org/3/ + Python Tutorial

Источник: Tproger.

0
Комментарии
-3 комментариев
Раскрывать всегда