«БД-шник любит структурировать и находить взаимосвязи»

Мы продолжаем цикл публикаций про ИТ-профессии. В этот раз мы поговорили с Марией, ведущим разработчиком баз данных в IBS. Она рассказала о том, кто такие БД-шники и почему выбрала именно это направление разработки; какими качествами должен обладать хороший специалист и как осваивать базы данных с нуля; а также о том, какие профессии могут быть лучше профессии программиста.

Разработчик баз данных — это специалист, который занимается их созданием, их отладкой, модернизацией, обслуживанием.

В чем суть разработки баз данных

— Кто такой разработчик баз данных?

— Это человек, который любит все структурировать и находить взаимосвязи. Часто разработчиков баз данных называют data scientist. Но это просто модное слово, чаще нас называют БД-шниками.

Пользователю работа БД-шников обычно незаметна. Если мы посмотрим на приложение как на домик, то база данных будет составлять фундамент. Люди видят фасад — то есть фронт, само приложение. Хотя от того, как правильно будет построен «фундамент», насколько быстро будут организованы в нем процессы, многое зависит.

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

— Она появляется далеко не у всех. В университетах обычно учат все-таки объектно-ориентированному программированию. А базы идут, по-моему, у нас только на физфаке и мехмате на младших курсах, и то как факультативный предмет.

— А как ты тогда пришла к базам данных?

— Моя мама работала физиком-теоретиком в институте механики сплошных сред. Когда я была в 11 классе, посмотрела, с чем она работает, тогда это были Interbase и Visual FoxPro. Взяла ее книжки, мне стало интересно. Познакомилась с FreeBSD, с *Nix системами. Сначала это было хобби, параллельное основной работе, а потом занялась базами данных всерьез.

— Чем конкретно занимаются разработчики баз данных? Корректно ли будет сказать, что они пишут код?

— Да, мы пишем код. Причем у каждой СУБД есть свои диалекты.

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

Второе более сложное, здесь берут существующую, запущенную в пром (промышленная эксплуатация) систему и ищут в ней слабые места. Затем переписывают код так, чтобы не сломался функционал и все работало быстро.

Третье направление — это DBA, администраторы и архитекторы баз данных. Они занимаются проектированием, настройкой и самих СУБД, и железа под них.

Я работаю во всех трех направлениях.

— И как это соотносится с backend, frontend и full stack разработкой?

— Это глубокий backend, база, основа. Потом идет backend, затем — frontend. Так из трех звеньев выстраивается домик. Бывает full stack разработка, когда специалист умеет писать все понемножку. Но база этого не прощает. И часто процессы после full stack разработки приходится переписывать. Потому что у специалистов разное мышление и разное отношение, как я понимаю.

— Три качества, которыми должен обладать хороший специалист.

— Назову четыре. Любопытство. Некоторая нудность. Желание видеть во всем закономерности и логику. И стремление выстраивать процессы. То есть ты видишь данные и должен научиться видеть в них логику.

— Можешь назвать преимущества своего направления?

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

Второе преимущество: рука об руку с базами данных идет машинное обучение и data science. А если у тебя есть еще и R или Python, то можно делать клевые проекты — пусть даже для себя. Хороших БД-шников мало.

— Да. Почему так?

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

— Почему PostgreSQL набирает такую популярность?

— Postgres Pro Enterprise — это отечественный продукт. А Oracle, MySQL, MSSQL — иностранные, за ними стоят крупные корпорации. Поэтому сейчас, в рамках политики импортозамещения, стараются от них уйти. Ведь случись что и Oracle скажет: «Я с вами больше не работаю», бизнес сильно пострадает.

Рабочий день и хобби

— Чем ты занимаешься на работе?

— Сейчас выполняю несколько ролей. Во-первых, я — технический архитектор на проекте. Во-вторых, разработчик БД. Занимаюсь переносом кода и архитектуры в приложение.

— Как вообще проходит твой день рабочий? Насколько плотно ты занята?

— Все зависит от музы. Муза пришла — я работаю. А если серьезно, обычно сажусь, включаю музыку и погружаюсь в работу. Но стараюсь делать перерывы и на обед, и кофе выпить. Если есть интересная задача, я ее и ночью думаю, в фоновом процессе. Решение оформляется, и я его воплощаю в жизнь.

— А какой стек технологий ты сейчас используешь?

— Сейчас у меня Postgres Pro Enterprise 10.3 и OpenJDK.

— Как ты считаешь, профессия программиста круче других профессий? Или ты выделяешь какие-то другие, более интересные сферы?

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

Как стать разработчиком БД с нуля. Образование

— Без каких знаний разработчикам баз данных не обойтись?

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

— А где эти знания можно получить?

— Искать самому в интернете, ездить на конференции, спрашивать на форумах, читать книжки.

— Как часто бываешь на профессиональных мероприятиях: конференциях, форумах? На какие реально стоит ходить?

— Нужно ходить на конференции, где люди и комьюнити делятся знаниями. Из стоящих назову PgConf.Russia. Бывают постгресовые конференции, туда приезжают разработчики самого продукта. Они делятся опытом, своими наработками, которые еще не включены в общий пул. Недавно была на такой в Москве.

— А как ты повышаешь свою квалификацию?

— Читаю различные форумы. Например, SQL.Ru. И у меня нет ни одного сертификата, каюсь. Но сертификат не всегда гарантирует знание. Если уж получать его, то нужно как следует готовиться к сдаче не только для того, чтобы получить бумажку, а научиться. Например, если сравнивать с собаками, то общий курс дрессировки можно сдать, чтобы получить бумажечку. А можно подготовиться так, чтобы с собакой было комфортно жить в городе.

— Что можешь посоветовать тем, кто хочет стать разработчиками баз данных?

— В первую очередь определиться с диалектом, на котором хочешь работать, затем с любопытными тебе задачами. Подумать, что интереснее — нахрапом брать большие пласты или аккуратненько и ювелирно работать в сопровождении систем. И заниматься, читать. Начать с общих положений SQL и затем уже углубляться в нужный диалект и особенности выбранной СУБД. Есть курсы, например на udemy.com, или книги, которые есть в свободном доступе. Лучше начинать не просто с теоретической части, а взять себе задачу, самому придумать рабочий проект и постараться реализовать его.

— Расскажи про свои хобби.

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

— А второе хобби?

— У меня есть собачка, и я занимаюсь с ней кинологическим спортом. И кошка сиамо-ориентальная, Сиаори.

— Распределенная команда или все в одном офисе?

— Это зависит от команды. Я и с теми работала, и с другими. И то и другое нормально. Все зависит от людей, они — главное.

— Рисование или полет в аэротрубе?

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

— Хорошо. Оупенспейс или кабинет?

— Кабинет. Не важно, сколько человек, главное — сидеть в уголочке где-нибудь, за стеночкой.

— Обучение с командировками в Москву или в родном городе?

— Смотря какое обучение. И то и другое, и можно без хлеба. Если есть крутой курс здесь, можно здесь. Если есть крутой курс там, можно и там.

0
3 комментария
Дмитрий Малахов

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

Ответить
Развернуть ветку
Дмитрий Малахов

"Почему PostgreSQL набирает такую популярность?" - ответ в статье, мягко говоря спорен.

Ответить
Развернуть ветку
Maria Milyukhina

Дмитрий, а что вы думает об этом?

Ответить
Развернуть ветку
0 комментариев
Раскрывать всегда