«БД-шник любит структурировать и находить взаимосвязи»
Мы продолжаем цикл публикаций про ИТ-профессии. В этот раз мы поговорили с Марией, ведущим разработчиком баз данных в 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, или книги, которые есть в свободном доступе. Лучше начинать не просто с теоретической части, а взять себе задачу, самому придумать рабочий проект и постараться реализовать его.
— Расскажи про свои хобби.
— По выходным люблю немного мучить детей математикой, английским, французским, физикой. Учусь общаться с детьми и считаю, что это полезно. В основном стараюсь брать тех, кто учится параллельно в российских и английских частных школах, по двум программам. Ребята в большинстве своем живут и учатся в Лондоне, а в Пермь приезжают на контрольные, когда надо сделать интенсив.
— А второе хобби?
— У меня есть собачка, и я занимаюсь с ней кинологическим спортом. И кошка сиамо-ориентальная, Сиаори.
— Распределенная команда или все в одном офисе?
— Это зависит от команды. Я и с теми работала, и с другими. И то и другое нормально. Все зависит от людей, они — главное.
— Рисование или полет в аэротрубе?
— А можно прыжок с парашютом? Когда я начинала работать в одной из пермских контор, к нам подошел директор департамента и говорит: «Ну, чего, кто со мной? Кто не прыгнул, тот не программист». Мы пошли. И я втянулась.
— Хорошо. Оупенспейс или кабинет?
— Кабинет. Не важно, сколько человек, главное — сидеть в уголочке где-нибудь, за стеночкой.
— Обучение с командировками в Москву или в родном городе?
— Смотря какое обучение. И то и другое, и можно без хлеба. Если есть крутой курс здесь, можно здесь. Если есть крутой курс там, можно и там.
Во первых, он растет во всем мире. Национальных отличий не так много .
Причины - это по сути единственное OpenSource СУБД с функциями "большой " базы данных.
Основной плюс - снижение издержек, что особенно важно при продаже тиражных систем или систем с шардингом.
"Почему PostgreSQL набирает такую популярность?" - ответ в статье, мягко говоря спорен.
Дмитрий, а что вы думает об этом?