Система прав и привилегий 🔐
Да, она отличается от Oracle.
Как минимум бросается в глаза выдача грантов на объекты.
Рассмотрим на простом примере.
1️⃣ Создадим функцию, которая использует внутри себя таблицу my_tab (пару постов назад мы её создавали и наполняли).
LINE 1: select my_schema.getNote(1);
Упс… не хватает прав на использование схемы my_schema 🤷🏻♂️
4️⃣ Дадим грант на схему
ERROR: permission denied for table my_tab
CONTEXT: SQL function "getnote" statement 1
5️⃣ Дадим грант на таблицу
mydb=> select my_schema.getNote(1);
getnote
---------
text 1
(1 row)
Ура! Все работает 👍
Получилось немного витиевато. В Oracle:
🔹не требуется выдавать отдельно грант на использование схемы;
🔹нужно выдать грант на execute функции;
🔹не нужны гранты на каждый объект, который используется внутри функции (за некоторыми исключениями).
Если окунуться в документацию, то можно обнаружить множество отличий в системе прав от Oracle.
Продолжение следует 🎓
#postgresql
Oracle Developer
Да, она отличается от Oracle.
Как минимум бросается в глаза выдача грантов на объекты.
Рассмотрим на простом примере.
1️⃣ Создадим функцию, которая использует внутри себя таблицу my_tab (пару постов назад мы её создавали и наполняли).
create or replace function get_note(p_id my_tab.id%type)2️⃣ Создадим еще одного юзера в нашей БД
returns my_tab.note %type as $$
select note from my_tab t where t.id = p_id;
$$ language sql;
create user mydb_app password 'apppass';3️⃣ Попробуем выполнить функцию под новым пользователем
select my_schema.getNote(1);ERROR: permission denied for schema my_schema
LINE 1: select my_schema.getNote(1);
Упс… не хватает прав на использование схемы my_schema 🤷🏻♂️
4️⃣ Дадим грант на схему
grant usage on schema my_schema to mydb_app;Вызовем функцию, получим следующую ошибку:
ERROR: permission denied for table my_tab
CONTEXT: SQL function "getnote" statement 1
5️⃣ Дадим грант на таблицу
grant select on my_tab to mydb_app;Выполним и получим результат:
mydb=> select my_schema.getNote(1);
getnote
---------
text 1
(1 row)
Ура! Все работает 👍
Получилось немного витиевато. В Oracle:
🔹не требуется выдавать отдельно грант на использование схемы;
🔹нужно выдать грант на execute функции;
🔹не нужны гранты на каждый объект, который используется внутри функции (за некоторыми исключениями).
Если окунуться в документацию, то можно обнаружить множество отличий в системе прав от Oracle.
Продолжение следует 🎓
#postgresql
Oracle Developer
Расширение PostgreSQL
Что мне сильно нравится в Pg, так это возможность добавлять новые фишки в СУБД за счет расширений (extension).
Расширения разделяются на два типа:
1️⃣ поставляемые в дистрибутиве;
2️⃣ созданные пользователями.
Любой может написать свой плагин. Довольно крутая концепция, используемая многими open source продуктами. Из кубиков конструируете нужное вам решение.
Уже создано достаточное количество пользовательских расширений. Вполне вероятно, под вашу специальную задачу уже есть готовое решение.
Можно легко нагуглить инструкции как создавать плагины + есть отличная документация.
Установкой, обновлением, удалением расширений, обычно, занимаются DBA с подачи разработки.
Список установленных расширений в БД:
Продолжение следует 🎓
#postgresql
Oracle Developer
Что мне сильно нравится в Pg, так это возможность добавлять новые фишки в СУБД за счет расширений (extension).
Расширения разделяются на два типа:
1️⃣ поставляемые в дистрибутиве;
2️⃣ созданные пользователями.
Любой может написать свой плагин. Довольно крутая концепция, используемая многими open source продуктами. Из кубиков конструируете нужное вам решение.
Уже создано достаточное количество пользовательских расширений. Вполне вероятно, под вашу специальную задачу уже есть готовое решение.
Можно легко нагуглить инструкции как создавать плагины + есть отличная документация.
Установкой, обновлением, удалением расширений, обычно, занимаются DBA с подачи разработки.
Список установленных расширений в БД:
select * from pg_available_extensionsЕстественно, есть платные и бесплатные плагины. Часть из них можно посмотреть в этом каталоге или в этом + гугл никто не отменял. Очень бы пригодился репозиторий аля MavenCentral 🤷🏻♂️
Продолжение следует 🎓
#postgresql
Oracle Developer
PostgreSQL заключение
В этих 10 постах, мы едва коснулись PostgreSQL. Кроличья нора гораздо глубже 🐰
То, что компании пытаются перейти с Oracle на Pg, не означает, что архитектура, язык PL/pgSQL один в один. Общие принципы - одинаковые, но реализация - разная. Взять, например, мультиверсионность строк.
Когда я учился на курсах PostgresPro (архитектура и оптимизация в 2019м), выписал около трех листов А4 различий между двумя СУБД с точки зрения разработчика. Если углубиться в администрирование там еще наберется листов Nцать.
Так почему же компании переходит на PG? Все просто, PostgreSQL - это достойная альтернатива Oracle в классе РСУБД.
Я не особый любитель Pg. Это как пересесть с Mercedes (Oracle) на отечественный авто (Pg). Тем не менее, избегать изучения PostgreSQL не стоит.
Причины
🔹 Активное развитие СУБД - авторы и энтузиасты дорабатывают ядро, пилят многочисленные расширения, фишки платных версий постепенно заносят в community-версию;
🔹 Наличие бесплатной версии - снижение стоимости владения по сравнению с тем же Oracle;
🔹 Все больше решений с использованием Pg;
🔹 Политические и санкционные моменты (актуально для РФ).
На мой взгляд, в будущем Postgres существенно потеснит конкурентов с рынка 👍
Пора заканчивать с Pg, что-то я соскучился по Oracle ☺️
Если интересно раскрытие темы по различию между Pg и Oracle - ставьте 🔥. Наберется хотя бы 200, буду иногда пилить посты на эту тему 🎓
#postgresql
Oracle Developer
В этих 10 постах, мы едва коснулись PostgreSQL. Кроличья нора гораздо глубже 🐰
То, что компании пытаются перейти с Oracle на Pg, не означает, что архитектура, язык PL/pgSQL один в один. Общие принципы - одинаковые, но реализация - разная. Взять, например, мультиверсионность строк.
Когда я учился на курсах PostgresPro (архитектура и оптимизация в 2019м), выписал около трех листов А4 различий между двумя СУБД с точки зрения разработчика. Если углубиться в администрирование там еще наберется листов Nцать.
Так почему же компании переходит на PG? Все просто, PostgreSQL - это достойная альтернатива Oracle в классе РСУБД.
Я не особый любитель Pg. Это как пересесть с Mercedes (Oracle) на отечественный авто (Pg). Тем не менее, избегать изучения PostgreSQL не стоит.
Причины
🔹 Активное развитие СУБД - авторы и энтузиасты дорабатывают ядро, пилят многочисленные расширения, фишки платных версий постепенно заносят в community-версию;
🔹 Наличие бесплатной версии - снижение стоимости владения по сравнению с тем же Oracle;
🔹 Все больше решений с использованием Pg;
🔹 Политические и санкционные моменты (актуально для РФ).
На мой взгляд, в будущем Postgres существенно потеснит конкурентов с рынка 👍
Пора заканчивать с Pg, что-то я соскучился по Oracle ☺️
Если интересно раскрытие темы по различию между Pg и Oracle - ставьте 🔥. Наберется хотя бы 200, буду иногда пилить посты на эту тему 🎓
#postgresql
Oracle Developer
Собеседование в Сбер.ДомКлик
Друзья всем привет!
Что-то давно у нас ничего про собеседования не было. Исправляюсь.
Перед новым годом рекрутеры оживились. Было аж два приглашения на поболтать.
Одна из контор - Сбер, на проект ДомКлик.
Кратко по вакансии (полное в чатике)
Мы используем: IBSO, OpenShift, PL/Plus, Oracle PL/SQL, Java, Kotlin, Groovy, Spring Boot, Hibernate, REST, VuGen, BPMN, Camunda, Jenkins, Git, Bitbucket, Jira, Confluence.
Задачи:
разработка новых и развитие существующих кредитных микросервисов на АБС IBSO и Java
Наши требования:
Опыт разработки IBSO PL/Plus, Oracle PL/SQL, приветствуется опыт разработки на java, управление контейнерами с сервисами в OpenShift.
Продолжение ⬇️
Друзья всем привет!
Что-то давно у нас ничего про собеседования не было. Исправляюсь.
Перед новым годом рекрутеры оживились. Было аж два приглашения на поболтать.
Одна из контор - Сбер, на проект ДомКлик.
Кратко по вакансии (полное в чатике)
Мы используем: IBSO, OpenShift, PL/Plus, Oracle PL/SQL, Java, Kotlin, Groovy, Spring Boot, Hibernate, REST, VuGen, BPMN, Camunda, Jenkins, Git, Bitbucket, Jira, Confluence.
Задачи:
разработка новых и развитие существующих кредитных микросервисов на АБС IBSO и Java
Наши требования:
Опыт разработки IBSO PL/Plus, Oracle PL/SQL, приветствуется опыт разработки на java, управление контейнерами с сервисами в OpenShift.
Продолжение ⬇️
Этапы собеседования
1️⃣ предварительное общение с HR в телеграме;
2️⃣ общение с руководителем;
3️⃣ техническое собеседование;
4️⃣ регистрация в их спец платформе для кандидатов;
5️⃣ проверка безопасниками;
6️⃣ оффер или неееет.
С первым этапом - никаких проблем.
Второй этап занял почти 1.5ч. На нем были руководитель + еще несколько спецов. Общались на разные темы от проектирования приложений, различий между монолитами/ микросервисами и заканчивая Agile. По самой СУБД вопросов, практически, не было.
Также, обсуждали организационные моменты, проект, задачи, которыми предстоит заниматься. Отдельно остановились на ЦФТшном PL/Plus - был ли опыт (упаси боже) и готов ли изучать (ну, конечно, да 😂).
Кратко по работе:
Бизнес область: кредитование.
Два технических стрима:
1️⃣ монолит с ЦФТ на Oracle - это хозяйство нужно вялотекуще поддерживать. Нужны компетенции в Oracle + PL/Plus.
2️⃣ перевод, всего чего только можно, на микросервисы на Java-стеке. Нужны, хотя бы, базовые знания Java и около того. Готовы обучать.
Второй стрим в самом начале - будет шанс поучаствовать на старте всего проекта.
Продолжение в четверг
#собеседование #сбер
1️⃣ предварительное общение с HR в телеграме;
2️⃣ общение с руководителем;
3️⃣ техническое собеседование;
4️⃣ регистрация в их спец платформе для кандидатов;
5️⃣ проверка безопасниками;
6️⃣ оффер или неееет.
С первым этапом - никаких проблем.
Второй этап занял почти 1.5ч. На нем были руководитель + еще несколько спецов. Общались на разные темы от проектирования приложений, различий между монолитами/ микросервисами и заканчивая Agile. По самой СУБД вопросов, практически, не было.
Также, обсуждали организационные моменты, проект, задачи, которыми предстоит заниматься. Отдельно остановились на ЦФТшном PL/Plus - был ли опыт (упаси боже) и готов ли изучать (ну, конечно, да 😂).
Кратко по работе:
Бизнес область: кредитование.
Два технических стрима:
1️⃣ монолит с ЦФТ на Oracle - это хозяйство нужно вялотекуще поддерживать. Нужны компетенции в Oracle + PL/Plus.
2️⃣ перевод, всего чего только можно, на микросервисы на Java-стеке. Нужны, хотя бы, базовые знания Java и около того. Готовы обучать.
Второй стрим в самом начале - будет шанс поучаствовать на старте всего проекта.
Продолжение в четверг
#собеседование #сбер
Собеседование в Сбер.ДомКлик. Финал
Мы остановились на втором этапе - общении с руководителем.
По окончании сессии, мне сказали, что этап с тех собеседованием не потребуется.
Насколько это частая история? Не знаю. Кто туда недавно собесился - напишите плиз в чатике.
Поэтому сорян, технических задачек со Сбера не будет. Обломали меня со свежим материалом 🤷🏻♂️
Далее, не интересные этапы с регистрацией в Сбер HR-платформе «Пульс», заполнения 100500 страниц анкеты и проверка безопасниками.
В итоге: был получен оффер на позицию «Главный инженер по разработке».
Из плюсов
🔹 Можно очень сильно прокачаться в другом стеке.
🔹 Высокая з/п - с учетом всех плюшек, премий и т.п. в месяц набегает довольно приличная сумма по нынешним временам. И это только на входе.
🔹 Жирный соц пакет.
Из минусов
🔸 PL/Plus
🔸 Офис/гибрид в Москве
🔸 Кому-то не зайдет работодатель.
Наверняка, все слышали страшилки про Сбер, когда человек мог просидеть три месяца без работы заполняя заявки, и только к концу испытательного срока получить всё необходимое для работы.
HR клятвенно заверила, что такого больше нет 🤷🏻♂️
Однако, я был приятно удивлен оперативности всех цепочек от HR до ЛПР. Прошло всего три недели (с учетом НГ праздников) от первого касания до оффера.
Для Сбера, я считаю, это огромный прогресс.
На всех этапах потенциальные коллеги были максимально вежливы и проявляли профессионализм.
В целом, эта вакансия - отличная возможность перекатиться из Oracle в Java-мир, если не смущают минусы.
Вот такая история получилась в этот раз 😊
#собеседование #сбер
Мы остановились на втором этапе - общении с руководителем.
По окончании сессии, мне сказали, что этап с тех собеседованием не потребуется.
Насколько это частая история? Не знаю. Кто туда недавно собесился - напишите плиз в чатике.
Поэтому сорян, технических задачек со Сбера не будет. Обломали меня со свежим материалом 🤷🏻♂️
Далее, не интересные этапы с регистрацией в Сбер HR-платформе «Пульс», заполнения 100500 страниц анкеты и проверка безопасниками.
В итоге: был получен оффер на позицию «Главный инженер по разработке».
Из плюсов
🔹 Можно очень сильно прокачаться в другом стеке.
🔹 Высокая з/п - с учетом всех плюшек, премий и т.п. в месяц набегает довольно приличная сумма по нынешним временам. И это только на входе.
🔹 Жирный соц пакет.
Из минусов
🔸 PL/Plus
🔸 Офис/гибрид в Москве
🔸 Кому-то не зайдет работодатель.
Наверняка, все слышали страшилки про Сбер, когда человек мог просидеть три месяца без работы заполняя заявки, и только к концу испытательного срока получить всё необходимое для работы.
HR клятвенно заверила, что такого больше нет 🤷🏻♂️
Однако, я был приятно удивлен оперативности всех цепочек от HR до ЛПР. Прошло всего три недели (с учетом НГ праздников) от первого касания до оффера.
Для Сбера, я считаю, это огромный прогресс.
На всех этапах потенциальные коллеги были максимально вежливы и проявляли профессионализм.
В целом, эта вакансия - отличная возможность перекатиться из Oracle в Java-мир, если не смущают минусы.
Вот такая история получилась в этот раз 😊
#собеседование #сбер
Восстанавливаем текст запроса
Друзья всем привет!
Недавно был на собеседовании в одной из компаний. Об этом я обязательно расскажу позже 😉
Гоняли долго по разным темам. Все тщательно записал и сохранил 😁
В том числе, было такое задание: по плану запроса необходимо восстановить текст запроса.
В исходном задании он был сложней. Я его чутка упростил, чтоб совсем не было треша.
Задание направлено на понимание планов запросов, когда какие операции используются и т.п. Этакий reverse engineering.
В моем курсе по оптимизации, будем разбирать подобные задачи для усвоения материала и натаскивания на собеседования ✅
Анализ, как всегда, в четверг 🎓
Обсудить в нашем ламповом чатике.
#задача
Oracle Developer
Друзья всем привет!
Недавно был на собеседовании в одной из компаний. Об этом я обязательно расскажу позже 😉
Гоняли долго по разным темам. Все тщательно записал и сохранил 😁
В том числе, было такое задание: по плану запроса необходимо восстановить текст запроса.
В исходном задании он был сложней. Я его чутка упростил, чтоб совсем не было треша.
Задание направлено на понимание планов запросов, когда какие операции используются и т.п. Этакий reverse engineering.
В моем курсе по оптимизации, будем разбирать подобные задачи для усвоения материала и натаскивания на собеседования ✅
Анализ, как всегда, в четверг 🎓
Обсудить в нашем ламповом чатике.
#задача
Oracle Developer
Восстанавливаем текст запроса. Анализ
Последовательность выполнения шагов: 3, 2, 4, 1, 0 или 3, 2, 1, 4, 0 (как посмотреть на соединение).
1️⃣ Шаг 3. Происходит Range Scan индекса DEPT_LOCATION_IX.
Доступ происходит по предикату "D"."LOCATION_ID">1700 (звездочка в плане + predicate information)
2️⃣ Шаг 2. Выгребание строк по найденным Rowid (на шаге 3) из таблицы DEPARTMENTS
Почему без него никак? В индексе нет достаточного количества данных, чтобы выполнить последующее соединение и материализовать результат.
3️⃣ Шаг 4. NESTED LOOPS SEMI - полусоединение двух таблиц (ищется первое совпадение по предикатам соединения).
Используется в конструкциях типа exists/in.
Исходя из predicate information 4, соединение двух таблиц осуществляется по столбцам "D"."DEPARTMENT_ID"="E"."DEPARTMENT_ID".
Отсюда же можно получить названия алиасов к таблицам - d/e.
4️⃣ Шаг 1. Доступ ко второй таблицы происходит по EMP_DEPARTMENT_IX.
5️⃣ Шаг 0. Происходит SELECT.
По этим данным никак нельзя понять название второй таблицы. Тут уж просто кругозор 🤷🏻♂️
Только ленивый или совсем новичок не щупал схему HR с набором табличек.
Название второй таблички - employees.
Даже, если не знаете, я думаю ничего страшного, если на собесе её назовете, хоть, tab2.
Итоговый запрос
Подписчица канала, и мой экс-босс (Наташа, привет), прогнала задание через BingAI и получила текст запроса идентичный натуральному. Есть над чем задуматься 😉
Конечно, на собеседовании у вас не будет времени на это. Да и в работе, лучше понимать "что куда и как".
В своем курсе по оптимизации, я буду давать подобные темы 🎓
Понравилось? ставьте 👍
#решениезадачи #оптимизация
Oracle Developer
Последовательность выполнения шагов: 3, 2, 4, 1, 0 или 3, 2, 1, 4, 0 (как посмотреть на соединение).
1️⃣ Шаг 3. Происходит Range Scan индекса DEPT_LOCATION_IX.
Доступ происходит по предикату "D"."LOCATION_ID">1700 (звездочка в плане + predicate information)
2️⃣ Шаг 2. Выгребание строк по найденным Rowid (на шаге 3) из таблицы DEPARTMENTS
Почему без него никак? В индексе нет достаточного количества данных, чтобы выполнить последующее соединение и материализовать результат.
3️⃣ Шаг 4. NESTED LOOPS SEMI - полусоединение двух таблиц (ищется первое совпадение по предикатам соединения).
Используется в конструкциях типа exists/in.
Исходя из predicate information 4, соединение двух таблиц осуществляется по столбцам "D"."DEPARTMENT_ID"="E"."DEPARTMENT_ID".
Отсюда же можно получить названия алиасов к таблицам - d/e.
4️⃣ Шаг 1. Доступ ко второй таблицы происходит по EMP_DEPARTMENT_IX.
5️⃣ Шаг 0. Происходит SELECT.
По этим данным никак нельзя понять название второй таблицы. Тут уж просто кругозор 🤷🏻♂️
Только ленивый или совсем новичок не щупал схему HR с набором табличек.
Название второй таблички - employees.
Даже, если не знаете, я думаю ничего страшного, если на собесе её назовете, хоть, tab2.
Итоговый запрос
select *Минутка юмора
from hr.departments d
where d.location_id > 1700
and exists (select 1 from hr.employees e where d.department_id = e.department_id);
Подписчица канала, и мой экс-босс (Наташа, привет), прогнала задание через BingAI и получила текст запроса идентичный натуральному. Есть над чем задуматься 😉
Конечно, на собеседовании у вас не будет времени на это. Да и в работе, лучше понимать "что куда и как".
В своем курсе по оптимизации, я буду давать подобные темы 🎓
Понравилось? ставьте 👍
#решениезадачи #оптимизация
Oracle Developer
Релиз Oracle 23c
Друзья всем привет!
Еще в сентябре прошлого года, компания Oracle анонсировала выход новой версии СУБД зимой 23 года.
Версия LTS (long term support), а значит она с нами на продолжительное время.
И вот, 03.04 состоялся релиз новой версии 23с Free - Developer Release.
В новой версии заявлено достаточно много интересных фич. Некоторые из них:
1️⃣ Select без from
А вот смогут/захотят на неё переходить компании в РФ, вопрос хороший, как раз для нашего лампового чатика.
В следующем посте расскажу, как эту версию развернуть в Docker 🐳 и потестить новые фичи 😉
#oracle23c
Oracle Developer
Друзья всем привет!
Еще в сентябре прошлого года, компания Oracle анонсировала выход новой версии СУБД зимой 23 года.
Версия LTS (long term support), а значит она с нами на продолжительное время.
И вот, 03.04 состоялся релиз новой версии 23с Free - Developer Release.
В новой версии заявлено достаточно много интересных фич. Некоторые из них:
1️⃣ Select без from
было: select 1+2 from dual;2️⃣ Использование алиасов в Group by и Having
стало: select 1+2;
select trunc(dtime, ‘dd’) day3️⃣ Тип boolean в SQL
from tab
group by day
create table client(И многие другие фишки, которые уже давно надо было добавить. Наконец-то, подумали о разработчиках 🥰
id number(38),
is_active boolean
);
insert into client values(1, true);
insert into client values(2, false);
А вот смогут/захотят на неё переходить компании в РФ, вопрос хороший, как раз для нашего лампового чатика.
В следующем посте расскажу, как эту версию развернуть в Docker 🐳 и потестить новые фичи 😉
#oracle23c
Oracle Developer
Установка Oracle 23c в Docker
Есть три варианта:
🔸 Docker-образ;
🔸 RPM-пакет для *nix;
🔸 Виртуалка для VirtualBox.
Мне нравится вариант с Docker.
1️⃣ Устанавливаем Docker в нашу ОС (если нет)
Win Mac Linux
2️⃣ Создаем контейнер с указанием параметров
имя контейнера - oracle23c, порт доступа - 1524, пароль для sys/system - booble34.
Если у вас еще нет скаченного image, то процесс займет некоторое время - нужно получить ~3Gb.
3️⃣ Устанавливаем Oracle client (если нет) и настраиваем network\admin\tnsnames.ora
Добавляете в файл алиас на новую БД.
Всё 🔥
Внутрь контейнера можно попасть через
А что по опциям в этом дистрибутиве?
Выполняем и смотрим:
Обсудить в чатике 💬
PS. Параметров создания БД гораздо больше, можно настроить очень гибко.
По умолчанию, удаленное подключение (не с сервера) к SYS + пароль не доступно (не важно как вы устанавливаете БД). Для настройки нужно выполнять доп. приседания.
#docker #oracle23c
Oracle Developer
Есть три варианта:
🔸 Docker-образ;
🔸 RPM-пакет для *nix;
🔸 Виртуалка для VirtualBox.
Мне нравится вариант с Docker.
1️⃣ Устанавливаем Docker в нашу ОС (если нет)
Win Mac Linux
2️⃣ Создаем контейнер с указанием параметров
docker run -d --name oracle23c -p 1524:1521 -e ORACLE_PWD=booble34 -e ORACLE_CHARACTERSET=UTF8 container-registry.oracle.com/database/free:latestвместо latest можно указать конкретную версию 23.2.0.0.
имя контейнера - oracle23c, порт доступа - 1524, пароль для sys/system - booble34.
Если у вас еще нет скаченного image, то процесс займет некоторое время - нужно получить ~3Gb.
3️⃣ Устанавливаем Oracle client (если нет) и настраиваем network\admin\tnsnames.ora
Добавляете в файл алиас на новую БД.
oradb23c =FREEPDB1 - БД, созданная по умолчанию.
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1524))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = FREEPDB1)
)
)
Всё 🔥
Внутрь контейнера можно попасть через
docker exec -it oracle23c /bin/bashК БД можно подключиться
sqlplus system/booble34@oradb23cДля Mac/*nix почти тоже самое.
А что по опциям в этом дистрибутиве?
Выполняем и смотрим:
select * from v$option;Много чего есть. Например: секционирование.
Обсудить в чатике 💬
PS. Параметров создания БД гораздо больше, можно настроить очень гибко.
По умолчанию, удаленное подключение (не с сервера) к SYS + пароль не доступно (не важно как вы устанавливаете БД). Для настройки нужно выполнять доп. приседания.
#docker #oracle23c
Oracle Developer
Использование алиасов в Group by и Having
Друзья, всем привет!
В Oracle23c, наконец-то, сделали возможность использование алиаса в group by и having.
Это бывает полезно, когда выражение, по которому происходит группировка и фильтрация групп размашистое.
Иногда на собесах спрашивают: можно ли использовать алиасы в group by?
Теперь правильный ответ: зависит от версии, до 23 - нельзя, после - можно.
А можно ли обратиться по позиции?
Да можно, но только в group by и с включением этой возможности в сесиии.
#oracle23c
Oracle Developer
Друзья, всем привет!
В Oracle23c, наконец-то, сделали возможность использование алиаса в group by и having.
Это бывает полезно, когда выражение, по которому происходит группировка и фильтрация групп размашистое.
-- до 23cКрасота 🔥
select extract(year from t.hire_date) year, count(*)
from employees t
group by extract(year from t.hire_date)
having extract(year from t.hire_date) >= 2014;
-- 23с
select extract(year from t.hire_date) year, count(*)
from employees t
group by year
having year >= 2014;
Иногда на собесах спрашивают: можно ли использовать алиасы в group by?
Теперь правильный ответ: зависит от версии, до 23 - нельзя, после - можно.
А можно ли обратиться по позиции?
Да можно, но только в group by и с включением этой возможности в сесиии.
alter session set group_by_position_enabled = true;Обсудить в чатике 💬
select extract(year from t.hire_date) year, count(*)
from employees t
group by 1
having year >= 2014;
#oracle23c
Oracle Developer
Условие if exists в create/drop
Друзья, всем привет!
Продолжаем про фишки Oracle23c. В синтаксис создания и удаления, добавили условие if [not] exists. На скринах примеры выполнения.
До 23с повторные вызовы команд create/delete вызывали ошибку. Сейчас мы её можем заглушить. Конечно, нужно использовать её с осторожностью. Вполне вероятно, что вы как раз хотите получить ошибку при выполнении DDL. Однако, найдутся кейсы, где это будет очень полезно.
Обсудить в чатике 💬
#oracle23c
Oracle Developer
Друзья, всем привет!
Продолжаем про фишки Oracle23c. В синтаксис создания и удаления, добавили условие if [not] exists. На скринах примеры выполнения.
До 23с повторные вызовы команд create/delete вызывали ошибку. Сейчас мы её можем заглушить. Конечно, нужно использовать её с осторожностью. Вполне вероятно, что вы как раз хотите получить ошибку при выполнении DDL. Однако, найдутся кейсы, где это будет очень полезно.
-- До 23cК слову сказать, в PostgreSQL эти опции доступны с версии 8.2 (2006й год) 😉
create table my_tab(
id number(38)
);
drop table my_tab;
-- 23c
create table if not exists my_tab(
id number(38)
);
drop table if exists my_tab;
Обсудить в чатике 💬
#oracle23c
Oracle Developer
Собеседование в MagnIT
Друзья, всем привет!
Решил последовать примеру автора канала и сделать пост на тему технического собеседования в Magnit Tech.
Неделю назад, сидя на удаленке в ожидании доступов на один банковский проект, увидел вакансию на позицию Middle/Senior DWH разработчик в Магнит и решил разнообразить ожидание собеседованием в самый большой ритейл в мире (по количеству торговых точек, разумеется).
Реакция HR не заставила долго ждать.
О вакансии
Экосистема КХД включает в себя:
▫️Хранилище Teradata(450 Tb);
▫️Exadata — ODS;
▫️Hadoop для хранения холодных данных;
▫️Informatica PC/DEI в качестве ETL-инструмента.
Основные задачи:
1️⃣ Поддерживать текущее решение на Oracle и Teradata;
2️⃣ Принимать участие в миграции на облачные решения Yandex Cloud Platform на базе Greenplum и Hadoop. Возможно, что-то еще.
Проект по миграции планируется на 3 года.
Плюшки
В лучшем случае, ДМС и курсы + возможность работать как в Москве, так и удалено.
Про з/п
Старт от 200к net. Запрашивал 300к net. Готовы обсуждать, тут многое зависит от вас.
Этапы собеседований
1️⃣ Предварительное общение с HR
Про опыт и мотивацию. Было пару входных тестовых вопросов. Отличная практика - дает примерное представление о об уровне требований работодателя и подготовки соискателя.
Продолжительность интервью - 30 минут.
2️⃣ Интервью
Состав из 4 человек:
▫️ Руководитель направления DWH развития;
▫️ Senior DE инженер;
▫️ DWH аналитик-разработчик;
▫️ HR специалист.
Формат интервью:
▫️ Знакомство;
▫️ Теоретическое собеседование;
▫️ Написание запросов;
▫️ Вопросы от соискателя.
Продолжительность интервью - 1.5 часа.
3️⃣ Оффер
Продолжение следует...
Автор: @Rus5553
#собеседование #magnit
Oracle Developer
Друзья, всем привет!
Решил последовать примеру автора канала и сделать пост на тему технического собеседования в Magnit Tech.
Неделю назад, сидя на удаленке в ожидании доступов на один банковский проект, увидел вакансию на позицию Middle/Senior DWH разработчик в Магнит и решил разнообразить ожидание собеседованием в самый большой ритейл в мире (по количеству торговых точек, разумеется).
Реакция HR не заставила долго ждать.
О вакансии
Экосистема КХД включает в себя:
▫️Хранилище Teradata(450 Tb);
▫️Exadata — ODS;
▫️Hadoop для хранения холодных данных;
▫️Informatica PC/DEI в качестве ETL-инструмента.
Основные задачи:
1️⃣ Поддерживать текущее решение на Oracle и Teradata;
2️⃣ Принимать участие в миграции на облачные решения Yandex Cloud Platform на базе Greenplum и Hadoop. Возможно, что-то еще.
Проект по миграции планируется на 3 года.
Плюшки
В лучшем случае, ДМС и курсы + возможность работать как в Москве, так и удалено.
Про з/п
Старт от 200к net. Запрашивал 300к net. Готовы обсуждать, тут многое зависит от вас.
Этапы собеседований
1️⃣ Предварительное общение с HR
Про опыт и мотивацию. Было пару входных тестовых вопросов. Отличная практика - дает примерное представление о об уровне требований работодателя и подготовки соискателя.
Продолжительность интервью - 30 минут.
2️⃣ Интервью
Состав из 4 человек:
▫️ Руководитель направления DWH развития;
▫️ Senior DE инженер;
▫️ DWH аналитик-разработчик;
▫️ HR специалист.
Формат интервью:
▫️ Знакомство;
▫️ Теоретическое собеседование;
▫️ Написание запросов;
▫️ Вопросы от соискателя.
Продолжительность интервью - 1.5 часа.
3️⃣ Оффер
Продолжение следует...
Автор: @Rus5553
#собеседование #magnit
Oracle Developer
Magnit Tech. Экспресс-вопросы (скрининг) от HR
К сожалению, не все вопросы записал, т.к. идея написать пост родилась позже, а некоторые вопросы к тому времени были уже забыты 🤷🏻♂️
1️⃣ Какие виды Join вы знаете?
2️⃣ Какие аналитические функции вы использовали?
3️⃣ Что такое и для чего нужен undo/redo?
4️⃣ Какие виды индексов знаете? В каких случаях используется индексный доступ данных?
5️⃣ Что хранится в блоках b-tree индекса?
6️⃣ Какие виды физического соединения таблиц знаете? В каких системах какой вид соединения используется?
7️⃣ Когда используется truncate? Ожидал, что следующий вопрос будет про разницу между truncate и delete. Не стал дожидаться вопроса и дал ответ сразу. Детали ответа можно найти в посте.
8️⃣ Что делать с фрагментированной таблицей?
Разбор вопросов в четверг 🎓
Обсудить в чатике 💬
Автор: @Rus5553
#задача
Oracle Developer
К сожалению, не все вопросы записал, т.к. идея написать пост родилась позже, а некоторые вопросы к тому времени были уже забыты 🤷🏻♂️
1️⃣ Какие виды Join вы знаете?
2️⃣ Какие аналитические функции вы использовали?
3️⃣ Что такое и для чего нужен undo/redo?
4️⃣ Какие виды индексов знаете? В каких случаях используется индексный доступ данных?
5️⃣ Что хранится в блоках b-tree индекса?
6️⃣ Какие виды физического соединения таблиц знаете? В каких системах какой вид соединения используется?
7️⃣ Когда используется truncate? Ожидал, что следующий вопрос будет про разницу между truncate и delete. Не стал дожидаться вопроса и дал ответ сразу. Детали ответа можно найти в посте.
8️⃣ Что делать с фрагментированной таблицей?
Разбор вопросов в четверг 🎓
Обсудить в чатике 💬
Автор: @Rus5553
#задача
Oracle Developer
Magnit Tech. Экспресс-вопросы от HR. Ответы
Список вопросов: см. в посте вторника.
Ответы:
1️⃣ Виды Join
Inner, Equi, Self, Semi, Outer(left, right, full), Cross, Anti
2️⃣ Аналитические функции
Row_number, rank, dense_rank, lead, lag и т.д.
Весь перечень аналитических функций можно найти в документации.
3️⃣ Что такое undo/redo? Для чего нужны?
Undo - сегмент отката транзакций. В момент совершения транзакции Oracle старые записи вычитывает и хранит в табличном пространство Undo. Новые данные пишутся в Buffer cache. Такой механизм позволяет сделать откат (rollback) транзакции, а также параллельным сессиям читать только зафиксированные транзакции, не дожидаясь фиксации текущей транзакции.
Redo logs - журналы повторного выполнения, по сути, основа процесса восстановления, благодаря которым Oracle гарантирует восстановление изменений пользователя на случая сбоя.
Ссылки на документацию: undo, redo.
4️⃣ Виды индексов
По физической организации можно выделить:
▫️b-tree;
▫️bitmap;
▫️пользовательские индексы;
▫️кластерные индексы.
По типу:
▫️обычные индексы по полям без модификаций;
▫️функциональные индексы;
▫️индексы с сортировкой;
▫️локальные и глобальные индексы;
▫️реверсивные.
Индексный доступ используется для чтения небольших объемов данных из большой таблицы. Примерно, 1-5% от общего объема.
5️⃣ Что хранится в блоках b-tree индекса?
В блоках b-tree индекса хранятся поля, по которым строился индекс, а также rowid. Детали в документации.
6️⃣ Виды физического соединения таблиц:
▫️nested Loops;
▫️merge join;
▫️hash join.
Используются в следующих случаях:
▫️Для OLTP характерен Nested Loops с использованием индексного доступа (unique, range scan).
▫️Для DSS/DWH/OLAP, чаще всего, используется полное сканирование таблиц. При полном сканировании данных - merge и hash join эффективней.
Об алгоритмах физического соединения таблиц можно прочитать здесь.
7️⃣ Когда используется truncate? Ожидал, что следующий вопрос будет про разницу между truncate и delete. Не стал дожидаться вопроса и дал ответ сразу. Детали ответа можно найти в посте.
Truncate, DDL команда, в основном используется для чистки всей таблицы или секции таблицы. В отличии от команды Delete, Truncate сбрасывает HWM.
8️⃣ Что делать с фрагментированной таблицей?
Фрагментированная таблица - таблица с пустыми блоками данных.
Есть четыре способа дефрагментации таблиц(сброс HWM):
▫️alter table + move;
▫️export / truncate / import;
▫️create table as select (CTAS);
▫️dbms_redefinition.
Напомню, это вопросы со скриниг-интервью от HR.
Главная его задача, попасть в те ответы, которые есть у HR в чеклисте. Не нужно вступать в научные дискуссии и учить уму разуму бедную девушку 😊
—
На следующей недели опубликуем вопросы/ответы с технического собеседования, впечатления и результат 😉
Автор: @Rus5553
#решениезадачи #magnit
Oracle Developer
Список вопросов: см. в посте вторника.
Ответы:
1️⃣ Виды Join
Inner, Equi, Self, Semi, Outer(left, right, full), Cross, Anti
2️⃣ Аналитические функции
Row_number, rank, dense_rank, lead, lag и т.д.
Весь перечень аналитических функций можно найти в документации.
3️⃣ Что такое undo/redo? Для чего нужны?
Undo - сегмент отката транзакций. В момент совершения транзакции Oracle старые записи вычитывает и хранит в табличном пространство Undo. Новые данные пишутся в Buffer cache. Такой механизм позволяет сделать откат (rollback) транзакции, а также параллельным сессиям читать только зафиксированные транзакции, не дожидаясь фиксации текущей транзакции.
Redo logs - журналы повторного выполнения, по сути, основа процесса восстановления, благодаря которым Oracle гарантирует восстановление изменений пользователя на случая сбоя.
Ссылки на документацию: undo, redo.
4️⃣ Виды индексов
По физической организации можно выделить:
▫️b-tree;
▫️bitmap;
▫️пользовательские индексы;
▫️кластерные индексы.
По типу:
▫️обычные индексы по полям без модификаций;
▫️функциональные индексы;
▫️индексы с сортировкой;
▫️локальные и глобальные индексы;
▫️реверсивные.
Индексный доступ используется для чтения небольших объемов данных из большой таблицы. Примерно, 1-5% от общего объема.
5️⃣ Что хранится в блоках b-tree индекса?
В блоках b-tree индекса хранятся поля, по которым строился индекс, а также rowid. Детали в документации.
6️⃣ Виды физического соединения таблиц:
▫️nested Loops;
▫️merge join;
▫️hash join.
Используются в следующих случаях:
▫️Для OLTP характерен Nested Loops с использованием индексного доступа (unique, range scan).
▫️Для DSS/DWH/OLAP, чаще всего, используется полное сканирование таблиц. При полном сканировании данных - merge и hash join эффективней.
Об алгоритмах физического соединения таблиц можно прочитать здесь.
7️⃣ Когда используется truncate? Ожидал, что следующий вопрос будет про разницу между truncate и delete. Не стал дожидаться вопроса и дал ответ сразу. Детали ответа можно найти в посте.
Truncate, DDL команда, в основном используется для чистки всей таблицы или секции таблицы. В отличии от команды Delete, Truncate сбрасывает HWM.
8️⃣ Что делать с фрагментированной таблицей?
Фрагментированная таблица - таблица с пустыми блоками данных.
Есть четыре способа дефрагментации таблиц(сброс HWM):
▫️alter table + move;
▫️export / truncate / import;
▫️create table as select (CTAS);
▫️dbms_redefinition.
Напомню, это вопросы со скриниг-интервью от HR.
Главная его задача, попасть в те ответы, которые есть у HR в чеклисте. Не нужно вступать в научные дискуссии и учить уму разуму бедную девушку 😊
—
На следующей недели опубликуем вопросы/ответы с технического собеседования, впечатления и результат 😉
Автор: @Rus5553
#решениезадачи #magnit
Oracle Developer
Техническое собеседование в MagnIT
Формат общения - онлайн, звонок в Teams.
Список тем:
1️⃣ Оптимизация запросов
Способы определения узких мест в запросах, ключевые метрики/статистики в планах выполнения запросов. Что означает кардинальность = 1? Как обновить статистику и какой хинт может использоваться?
2️⃣ Физические виды соединения таблиц
Алгоритм каждого соединения, особенности применения и механизм работы hash join.
3️⃣ Виды индексного доступа
Особенности применения b-tree и bitmap индексов. Что отобразиться в плане при join 2х таблиц, у одной из которых по столбцам соединения отсутствуют индексы? Особенности применения index fast full scan и index full scan, а также механизм сканирования листовых блоков.
4️⃣ Секционирование
Что логически и физически представляет объект после секционирования? Виды и опции, практические кейсы применения. В какую секцию при вставке данных определится NULL при list секционировании? Практики создания секций. Есть ли возможность автоматизировать создание секций в момент вставки данных? Практики и особенности работы DML операциий на секционированных таблицах с глобальным и локальным индексом/индексами?
5️⃣ Compaction сегмента
Как бороться с фрагментацией сегмента?
6️⃣ Хинты
Best practice из личного опыта по хинтам. Как работает хинт append?
7️⃣ Undo tablespace
Что такое undo и принцип его работы. В каких случаях может возникнуть ошибка snapshot too old? Способы решения этой проблемы.
⚠️ Также были две задачи на 10-15 мин. в общей сложности. К сожалению, детали условий задач не запомнил.
Разбор как всегда в четверг 🎓
Автор: @Rus5553
#собеседование #magnit
Oracle Developer
Формат общения - онлайн, звонок в Teams.
Список тем:
1️⃣ Оптимизация запросов
Способы определения узких мест в запросах, ключевые метрики/статистики в планах выполнения запросов. Что означает кардинальность = 1? Как обновить статистику и какой хинт может использоваться?
2️⃣ Физические виды соединения таблиц
Алгоритм каждого соединения, особенности применения и механизм работы hash join.
3️⃣ Виды индексного доступа
Особенности применения b-tree и bitmap индексов. Что отобразиться в плане при join 2х таблиц, у одной из которых по столбцам соединения отсутствуют индексы? Особенности применения index fast full scan и index full scan, а также механизм сканирования листовых блоков.
4️⃣ Секционирование
Что логически и физически представляет объект после секционирования? Виды и опции, практические кейсы применения. В какую секцию при вставке данных определится NULL при list секционировании? Практики создания секций. Есть ли возможность автоматизировать создание секций в момент вставки данных? Практики и особенности работы DML операциий на секционированных таблицах с глобальным и локальным индексом/индексами?
5️⃣ Compaction сегмента
Как бороться с фрагментацией сегмента?
6️⃣ Хинты
Best practice из личного опыта по хинтам. Как работает хинт append?
7️⃣ Undo tablespace
Что такое undo и принцип его работы. В каких случаях может возникнуть ошибка snapshot too old? Способы решения этой проблемы.
⚠️ Также были две задачи на 10-15 мин. в общей сложности. К сожалению, детали условий задач не запомнил.
Разбор как всегда в четверг 🎓
Автор: @Rus5553
#собеседование #magnit
Oracle Developer
Коллеги, всем привет!
К сожалению, объем ответов на вопросы получился сильно больше, чем 1 пост (аж 4 поста). Поэтому мы решили вынести их в отдельную статью. Автор @Rus5553
Многие вопросы, так или иначе, уже обсуждались в канале.
Руслан, спасибо за труд 👍
Кстати говоря, не рекламы ради, а справедливости для.
Руслан занимался у меня с 2021 года по индивидуальной программе - архитектура, SQL, PL/SQL, unit-тестирование. Посещал мои курсы - секционирование, PL/SQL Основы. Сейчас самый первый проходит курс по Оптимизации (эксклюзив так сказать), дает мне обратную связь.
Через жажду новых знаний, упорство и труд он уже добился многого как по карьере, так и зарплате. Он понимает, что с ментором можно достичь результата гораздо быстрей, чем ковыряться самому. Очень крутой товарищ👍
И у меня тоже есть свой ментор, только в другой области ИТ ☺️ Менторство - очень эффективный инструмент.
В следующем посте будет окончание истории про MagnIT 😉
#собеседование #magnit
Oracle Developer
К сожалению, объем ответов на вопросы получился сильно больше, чем 1 пост (аж 4 поста). Поэтому мы решили вынести их в отдельную статью. Автор @Rus5553
Многие вопросы, так или иначе, уже обсуждались в канале.
Руслан, спасибо за труд 👍
Кстати говоря, не рекламы ради, а справедливости для.
Руслан занимался у меня с 2021 года по индивидуальной программе - архитектура, SQL, PL/SQL, unit-тестирование. Посещал мои курсы - секционирование, PL/SQL Основы. Сейчас самый первый проходит курс по Оптимизации (эксклюзив так сказать), дает мне обратную связь.
Через жажду новых знаний, упорство и труд он уже добился многого как по карьере, так и зарплате. Он понимает, что с ментором можно достичь результата гораздо быстрей, чем ковыряться самому. Очень крутой товарищ👍
И у меня тоже есть свой ментор, только в другой области ИТ ☺️ Менторство - очень эффективный инструмент.
В следующем посте будет окончание истории про MagnIT 😉
#собеседование #magnit
Oracle Developer
Итоги собеседования в MagnIT
Оффер я так и не получил 😊
HR 💬 "На интервью показали достаточно высокий уровень в части теории, но в практической части были допущены ошибки. Мы видим потенциал и хотели бы договориться еще об одной встрече, чтобы продолжить практическую часть по sql."
Что ж, за время управления командой некоторые навыки написания запросов теряются, т.к. больше занимаешься административными и архитектурными задачами. Однако, это не оправдание!
От проведения еще одного 1.5 часового интервью я отказался.
Не буду придерживаться нейтральной позиции и дам оценку HR скринингу и техническому собеседованию.
В целом процесс взаимодействия с HR был приятным и эффективным. Все прозрачно и адекватно.
Остались неприятные впечатления относительно самого интервью, больше похоже на допрос, чем на беседу:
1️⃣ Неэффективное распределение времени на каждом из этапов интервью, пропустили секцию со знакомством и сразу перешли к технической части.
2️⃣ Спустя 1ч 10 мин. перешли к практике, еще через 10 мин. пришлось тактично прервать и напомнить, что и у меня есть вопросы.
3️⃣ В 50% вопросах невнятная формулировка.
Справедливости ради отмечу и плюсы
1️⃣ Компетентные собеседующие и интересные вопросы уровня middle (это субъективно).
2️⃣ Собеседование проходило в уважительной и мягкой форме.
3️⃣ Действительно большие объемы данных, возможность погрузиться в предметную область и поработать на широком стеке технологий (РСУБД, BIG DATA), поучаствовать в проекте миграции большого хранилища.
Выводы/Рекомендации
1️⃣ Уточнять у HR обо всех этапах заранее
Вы рассчитывали на одно большое интервью(знакомство, тех. вопросы и вопросы от вас), а вам предлагают еще несколько этапов. Может возникнуть негатив относительного самого процесса.
2️⃣ Иногда нужно "показать зубы"
Поможет избежать попыток дать ответ на вопрос с непонятной формулировкой. Главное без фанатизма, ключевое слово иногда, все должно быть в рамках корпоративной культуры. Soft skills - это 50 % успеха.
3️⃣ Не иметь завышенных ожиданий относительно Soft Skills собеседующих
Нужно понимать, что IT все же не сфера специалистов с высоким уровнем коммуникаций. Специалисты в основном ориентированы на технику, чем на ведение переговоров.
⚠️ Не факт, что у вас будут те же впечатления от собеседования в Магнит. Это субъективно. Дерзайте!
А какие у вас были положительные и негативные впечатления после собеседования? Обсудить в чатике 🫂
Палец вверх, если зашло 👍
Автор: @Rus5553
#собеседование #magnit
Oracle Developer
Оффер я так и не получил 😊
HR 💬 "На интервью показали достаточно высокий уровень в части теории, но в практической части были допущены ошибки. Мы видим потенциал и хотели бы договориться еще об одной встрече, чтобы продолжить практическую часть по sql."
Что ж, за время управления командой некоторые навыки написания запросов теряются, т.к. больше занимаешься административными и архитектурными задачами. Однако, это не оправдание!
От проведения еще одного 1.5 часового интервью я отказался.
Не буду придерживаться нейтральной позиции и дам оценку HR скринингу и техническому собеседованию.
В целом процесс взаимодействия с HR был приятным и эффективным. Все прозрачно и адекватно.
Остались неприятные впечатления относительно самого интервью, больше похоже на допрос, чем на беседу:
1️⃣ Неэффективное распределение времени на каждом из этапов интервью, пропустили секцию со знакомством и сразу перешли к технической части.
2️⃣ Спустя 1ч 10 мин. перешли к практике, еще через 10 мин. пришлось тактично прервать и напомнить, что и у меня есть вопросы.
3️⃣ В 50% вопросах невнятная формулировка.
Справедливости ради отмечу и плюсы
1️⃣ Компетентные собеседующие и интересные вопросы уровня middle (это субъективно).
2️⃣ Собеседование проходило в уважительной и мягкой форме.
3️⃣ Действительно большие объемы данных, возможность погрузиться в предметную область и поработать на широком стеке технологий (РСУБД, BIG DATA), поучаствовать в проекте миграции большого хранилища.
Выводы/Рекомендации
1️⃣ Уточнять у HR обо всех этапах заранее
Вы рассчитывали на одно большое интервью(знакомство, тех. вопросы и вопросы от вас), а вам предлагают еще несколько этапов. Может возникнуть негатив относительного самого процесса.
2️⃣ Иногда нужно "показать зубы"
Поможет избежать попыток дать ответ на вопрос с непонятной формулировкой. Главное без фанатизма, ключевое слово иногда, все должно быть в рамках корпоративной культуры. Soft skills - это 50 % успеха.
3️⃣ Не иметь завышенных ожиданий относительно Soft Skills собеседующих
Нужно понимать, что IT все же не сфера специалистов с высоким уровнем коммуникаций. Специалисты в основном ориентированы на технику, чем на ведение переговоров.
⚠️ Не факт, что у вас будут те же впечатления от собеседования в Магнит. Это субъективно. Дерзайте!
А какие у вас были положительные и негативные впечатления после собеседования? Обсудить в чатике 🫂
Палец вверх, если зашло 👍
Автор: @Rus5553
#собеседование #magnit
Oracle Developer