Здравствуйте. Имею за плечами ~2 года опыта работы SQL(PL/SQL) разработчиком. Сейчас активно копаю в сторону PostgreSQL, благо, во многом схож с Oracle. Так вот мне интересно, что должен знать SQL разработчик с перспективой захода в Администрирование и ETL(Data Warehouse и т.п.). На данный момент работаю Junior PHP/JS разработчиком(надеюсь я выстою на этой позиции и буду развиваться), но все же не хочется отходить от БД и SQL.
Плюсом к моему бэкграунду, есть некоторое знание Python(на junior'a конечно не потяну, но хоть что-то). Хотелось бы услышать комментарии тех, кто связан с SQL разработкой. Спасибо что прочли вопрос)
Наверное, знать надо все и до бесконечности. Я тоже работаю с PostgreSQL, для разработки и администрировании по моему горькому опыту нужно знать: 1) Linux
стандартный набор консольных утилит
система выдачи прав на файлы
знания про работу с памятью для тюнинга БД
lxc (возможность поднять кучу легковесных контейнеров с разными базами очень помогает)
уметь настраивать фаервол (чтобы у сервера БД не торчало лишнее наружу)
ssh проброс портов с удаленного компьютера (чтобы удобно подключаться к БД)
2) Система контроля версий - git, svn и т.д. 3) PostgreSQL
внутренняя работа под капотом (для тюнинга производительности)
FTS, триграммы, plproxy
pgtap для тестирования
система версионирования схемы бд (я рекомендую pyrseas)
Ну когда есть свободное время, я смотрю обучающий курс лекций от PostgresPro. Там про архитектуру в основном. А сейчас то я работаю PHP-разрабом. Ну а то что, ты написал - мрак. Знаю самый мизер и то из Linux, ну и git немного. При этом слабые знание PL/pgSQL. Печальбеда(
Кстати, к знанию PostgreSQL что больше может пригодиться, Python или Java? С PHP мне кажется довольно легко перекатиться в Python. Но Java распространена более сильно.
Не переживай, эти вещи ты узнаешь в реальной работе. У меня это заняло три с половиной года, но счастья или денег не принесло. Если бы сейчас начинал заново, пошел бы в мобильную разработку)) А PHP ты бросай, ну его, оно темное и злое.
Denis Smirnov: Да больше работы нет, да и почему зло? Если знать + и -, то имхо норм. Да, не идеал, но если параллельно ковырять PostgreSQL и к примеру Python/Java, то более менее. А так тоже приглядываюсь к Android разработке, но нужно Java учить.
За Java платят больше денег, это точно)) Хотя Python красивее, изящнее и компактнее. Плюс позволяет куда проще реализовывать различные паттерны (а часть так и вовсе не нужна из-за отсутствия типов). Но вот и отстрелить себе ногу позволит на раз два по описанным выше причинам, это да.
Denis Smirnov: Ну я изучаю сейчас Yii2 + читаю Мэтта Зандстра. Поэтому стараюсь более менее следовать ООП, вот только мозги поставить на рельсы ООП та еще задача) Благодарю за ответы.
Прежде, чем развивать компетенции в какой-то конкретной технологии СУБД, надо сначала прокачаться в теории БД.
Что такое множества. Операции над множествами. Сущности (поля, кортежи, таблицы, индексы, последовательности, транзакции и т.д.). Связи таблиц (виды и типы связей). Доступ к данным и т.д.
А уже потом выбирать или не выбирать конкретную технологию.
А то бывает приходят люди с опытом PLSQL, вроде и код пишет и стандартные функции знает.
А про левое/правое соединение ни гугу.
Добавлено: про нормальные формы забыл еще написать
Благодарю за ответ. Ну все что вы описали, я это знаю. Может быть не как эксперт и не на зубок, но более-менее вроде ориентируюсь. А вот то, что человек с опытом PL/SQL и не знает про соединения - это печаль. Если взять меня, то я использовал вместо явного объявления JOIN'ов знак плюс(+). И поэтому немного путая иногда соединения.
bnytiki: исходя из моих данных - больше как минимум на порядок. Ну и уровень дохода ощутимо выше. Но тут кому что нравится. Кто-то с удовольствием кодит на массовом PHP. а кому-то нравится маловостребованный asm.
un1t: я бы не был столь категоричен. Даже при условии, что посгре вдруг начнет на 100% поддерживать PL-SQL, оракл умрет крайне не скоро, если это вообще произойдет. В некоторых областях применяемые решения консервативны до ужаса. Встречал систему управления конвейером на заводе, которая управлялась компьютером с системой OpenVMS и крутилась на оборудовании, не вупускающимся уже лет 15 на тот момент. Прошло еще 15 лет - не удивлюсь, если работает и сейчас.
Макс: может и не умрет, но в РФ есть тенденция на отказ от оракла. Так что не известно что с ним будет через 5 лет. А что касается примера с заводом, я думаю никому бы не хотелось работать на древнем оборудовании и устаревшем ПО. Говорят программисты на коболе хорошо зарабатываю, вот только стои ли сейчас рекомендовать учить кобол? - я в это не уверен.
bnytiki: Я прокрасно понимаю мотивацию завода или любого другого предприятия которая использует устаревшие технологии. Но для программиста это явно не лучшее место для работы.
bnytiki: так было до кризиса и потенциальных проблем продлением лицензий. Сейчас лочиться на оракл не допустимо, т.к. в любой момент бизнес может останолвиться. Куча докладов есть уже как крупные компании отказываются от оракла.
В связи с санкциями, ваш окакл может превратиться в бесполезный хлам по сигналу из за океана. Например если компания попадет под санкции. Вот из недавнего Яндекс Почта перешла. www.cnews.ru/news/top/2016-09-15_yandeks_otkazalsy... А так уже куча примеров телекомы, банки и прочие постепенно мигрируют на постгрес.
bnytiki: ты деректор завода чтоли? С точки зрения директора завда, ты все правильно говоришь. А с точки зрения программиста это бесперспективная работа. Тут вроде форум для IT специалистов, а не директоров заводов.
un1t: коллега как-бы намекает, что есть потребность в специалистах в, казалось бы, не самых современных технологиях. Их надо не так много, как "мастеров WordPress" - но они и ценны тем, что их мало. И работа там часто куда как интереснее, чем сделать что-то на ультра-современном решении.
bnytiki: давайте ближе к топику, а то мы щас до коспимеских кораблей доберемся. Сейчас с оракла мигрируют и я сомневаюсь, что кто-то в здравом уме в РФ будет начинать новый проект на оракле. Это просто не безопасно, в любой момент могут рубильник дергуть. Ни банкам ни телекомам никуому это не надо. И вот черзе 5 лет может сложиться ситуация что новых проектов на оракле нет, а остались лишь несколько старых, в которых нет ресурсов. И охото тебе будет работать в таком проекте. В котором старые технологии и очевидно денег на развитие нет.
bnytiki: Вот только сумей попасть в такую область. Я работал в области автоматизации ЖКХ. И да, с Ораклом. Так вот там был легаси код 10-летней давности. Оракл Формс еще 90-ых годов. Удовольствия мало с таким работать.
bnytiki: Ааа, а я про АСУП. Ну в АСУ ТП хрен попадешь. Я слишком тупой для этого( И образования нет такого. А так сам бы с удовольствием пошел бы в АСУ ТП, вот только кто возьмет?
Вот допустим если человек начинает работать веб-разработчиком, то как думаешь, со временем он может перейти на что-то более серьезное?
То есть вопрос звучит так:
Сижу, лабаю интернет-магазинчики...
Стоит ли ждать, что придет дядя из станкостроительного предприятия и позовет программировать токарный станок стоимостью в 1 миллион?
Или что позовут писать ПО для беспилотных автомобилей?
Или что позовут писать ПО для статистически-аналитического предсказания поведения пользователей?
1. Есть интернет. Я работал и на канадцев и на голландцев и на шведов. И, кстати, это были не интернет-магазинчики. А весьма и весьма непростые системы. Одна из них - конкурент Палантира https://ru.wikipedia.org/wiki/Palantir
2. На 1С встречаются весьма нетрадиционные задачки. И за хорошие деньги. Приходилось и делать системы управления оборудованием, интегрированные с 1С и интегрировать 1С и веб и пр. и пр.
3. У нас в маленьком городе есть несколько десятков контор - где трудятся тысячи разработчиков над уникальными продуктами. У вас наверняка тоже есть - ищите.
ls18:
Я сам удивился.
Наверняка у вас аналогично - интернет позволяет организовывать удаленную работу без проблем.
У нас есть контора - работает над проектами Сименса.
У нас есть три конторы - делают платежные системы.
У нас есть контора - аналог Форекса делают.
И это не считая всяких средне-мелких - которые аутсорсят разное для Запада.
И это не считая веб-студий и частных фриленсеров.
bnytiki: Нее, у нас такого нет. Т.к. даже в целом по стране разработке не так развита, как в РФ. Если бы было так, то это же сколько возможностей для развития.
bnytiki: Казахстан. Я слышал, что в Украине очень развит аутсорс, у нас такого нет. Вот и приходится работать с PHP(он не идеал и не дно, просто своя специфика).
Правильно создавать хранилище данных с учётом требований бизнес-логики.
Иногда - нужен специфичный поиск, иногда - быстрое добавление записей.
Вот эти понятия - нужно чётко различать и правильно применять.
И, конечно же, уметь писать грамотные хранимые процедуры, которые облегчат жизнь и человеку, который работает с БД и тем, кто работает с этой БД через эти процедуры.