Собеседование Java Middle Senior | Собеседование без конкретных требований от компании | Jetbulb

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 มิ.ย. 2024
  • Техническое собеседование на позицию Middle/Senior Java Developer.
    Иногда приходится проводить или проходить собеседование без каких-либо конкретных требований к кандидату. В таком случае выдвигается общий список требований, без учета специфики проекта или команды.
    Такой подход вовсе не означает, что компания плохая или странная. Компания просто хочет найти потенциального сотрудника и усадить его за проект, что будет актуален в момент onboarding.
    Вот и у нас точна такая ситуация. Компания ищет сотрудника уровнем от Middle до Senior. Нам предстоит задать вопросы, получить на них ответы и разобраться какой шеврон можно присудить кандидату.
    Погнали!
    Программа
    00:00 Описание кандидата и требований
    03:57 Про наш Тренинг-центр iPrody
    07:52 Вопросы о базах данных
    16:16 Вопросы о масштабировании
    27:43 Вопросы о многопоточности
    35:08 Вопросы о развертывании сервисов
    40:05 Вопросы о микросервисах
    46:50 Вопросы про архитектуру и дизайн
    53:43 Выводы
    Получи реальный опыт решения коммерческих задач в Agile команде
    до 6 человек iprody.com/
    Запись на обучение и собеседование:
    iprody.com/interview
    t.me/iPrody_Online
    Мы в социальных сетях:
    t.me/jetbulb
    / jetbulb

ความคิดเห็น • 59

  • @socialcatalyst2608
    @socialcatalyst2608 10 หลายเดือนก่อน +36

    Вопросы для Джуниор в 2023 году))

    • @user-oi7xs9st3i
      @user-oi7xs9st3i 5 หลายเดือนก่อน +9

      На стажера в 2024)

    • @user-nl2em4jm3e
      @user-nl2em4jm3e 5 หลายเดือนก่อน

      Что вы несёте

    • @louiegroove
      @louiegroove 3 หลายเดือนก่อน

      испугался?
      @@user-nl2em4jm3e

  • @user-rw6wl5qx3r
    @user-rw6wl5qx3r 9 หลายเดือนก่อน +2

    Супер! Побольше такого контента! ❤

  • @alevadnaya
    @alevadnaya ปีที่แล้ว +1

    Класс, спасибо!

  • @user-br4gt7xu2j
    @user-br4gt7xu2j ปีที่แล้ว +15

    Красавчик, на глазах скилл растет, как в съемке, так и в программировании, очень хорошее видео, много очень полезных нюансов, и в глубь не лез, и в то же время не по верхам👍
    P.S. только стоит немножко разобраться с блокировками БД:
    1) optiistic locks - это row versioning и последующая проверка версии при попытке коммита - она часто реализуется прямо на уровне приложения
    2) pessimistic locks как раз те, о которых ты перед этим говорил, только их вообще больше:
    - shared: S(for rows, pages and tables),
    - exclusive: X(for rows, pages and tables),
    - update: U(for rows and pages only) - она для предотвращения простых deadlocks
    - и три intent locks: IS, IX, SIX(for tables only) - они блокируют нижестоящий в иерархии ресурс (это позволяет осуществить проверку такой блокировки перед осуществлением и предотвратить преждевременную блокировку более высокого уровня)
    Они осуществляются на уровне БД, и DB Engine сам решает какую применить в той или иной транзакции, если явно не указано иное

    • @user-pq1mq8gi4p
      @user-pq1mq8gi4p 11 หลายเดือนก่อน +1

      1) версионирование не единственный механизм, самый базовый механизм, это когда фремворк содержит два экземпляра строки таблицы из БД, один для правки, второй неизменный, при сохранении выполняется блокировка, далее проверяется равенство всех полей неизменной строки и строки в БД, если значения в полях совпадают, то выполняется update, если не совпадают, то выбрасывается ошибка.

    • @user-pq1mq8gi4p
      @user-pq1mq8gi4p 11 หลายเดือนก่อน +4

      2) механизмы блокирования и оптимистическая/пессимистическая блокировка это совершенно разные вещи, пессимистическая блокировка - ресурс блокируется для изменений сразу, как только пользователь его запросил (предполагается, что пользователь будет его изменять), оптимистическая - пользователь запросил ресурс, что-то с ним поделал и только непосредственно в момент попытки сохранить сделанные изменения ресурс блокируется.
      Что касается режимов и уровней блокировки, говорить о них в отрыве от конкретной РСУБД бессмысленно, глобально РСУБД подразделяются на два вида - блокировочники и версионники, в первом варианте читатели блокируют писателей, во втором нет, в версионниках эксклюзивная блокировка не означает, что данные нельзя читать и еще очень много нюансов))

    • @two-hearts-game
      @two-hearts-game 2 หลายเดือนก่อน

      Спасибо, за подробное объяснение. Я тоже заметил, что в видео все блокировки в кучу свалили, так же как и дополнительные аномалии транзакций.

    • @user-br4gt7xu2j
      @user-br4gt7xu2j 2 หลายเดือนก่อน

      @@user-pq1mq8gi4pух ты, неплохо) судя по комменту, его писал опытный программист, плотно работающий с компанией Oracle, но в целом дельные замечания кстати, спасибо. Нечасто люди такой квалификации встречаются на просторах TH-cam, да и еще под таким видео) Мое почтение)

  • @FightRebelAndRiot
    @FightRebelAndRiot หลายเดือนก่อน +2

    Есть такой нюанс/проблема у разных интервьюеров: они сопоставляют определённые знания и уровень разработчика отталкиваясь не от бэкграунда и опыта человека, а от того, что по их мнению нужно знать. И в этом видео полно таких примеров.
    Хотя в самом начале у нас есть оговорка, что конкретных требований нет, но нужно прощупать кандидата, тем не менее, начинается с исследования знаний о базах данных.
    Приведу просто в пример себя: я довольно опытный разработчик в областях секьюрности и интеграции. У меня за мой опыт есть лишь какой-то минимальный контакт с персистентностью. Все мои знания в этом вопросе отсылают скорее к периоду учёбы в университете, который я закончил 10 лет назад.
    Я бы с радостью поговорил бы про транзакциональность в процессах интеграции, если бы мы развили эту тему. Но, скорее всего вы сделаете свои выводы на основе вопросов по БД) Мой опыт собеседований, показывает, что именно так и бывает.

  • @user-kk9rx4jd6zs
    @user-kk9rx4jd6zs 10 หลายเดือนก่อน +1

    Спасибо Макс!

  • @user-iq9rg4te3e
    @user-iq9rg4te3e ปีที่แล้ว +8

    + за вопросы и ++ за Lineage - эх времена были:)

  • @kraken645
    @kraken645 ปีที่แล้ว +11

    Отлично затронули тему Docker'a и вопросов по нему. Было бы круто посветить отдельный видос с разобором вопросов и ответов👍

  • @cathynest459
    @cathynest459 ปีที่แล้ว +3

    Вот так я и попала на проект с AWS AppSync, блин 😂😂😂
    А за видео как всегда лайк

  • @user-gk2kn3ri7z
    @user-gk2kn3ri7z 22 วันที่ผ่านมา +1

    Таймзоны меняются на 15 минут? Очень интересно:)))

  • @user-be1vq6qz3x
    @user-be1vq6qz3x ปีที่แล้ว +8

    Стратегию можно мапой со спрингом удобно делать, в таком случае не нужно if else городить

    • @blackplaydoh3522
      @blackplaydoh3522 ปีที่แล้ว +2

      Любой ассоциативный массив 🤷‍♂

  • @alexplishkin5811
    @alexplishkin5811 ปีที่แล้ว +4

    Было бы ещё хорошо услышать когда идёт речь о шаблонах не только про решение. Но и про проблему которую решает этот шаблон. Просто про ивент сорсинг я услышал только решение.

  • @alinabelebei
    @alinabelebei 10 หลายเดือนก่อน +1

    Спасибо

  • @Mnbvc-oc8wv
    @Mnbvc-oc8wv 11 หลายเดือนก่อน +1

    Огнищеееее

  • @VadimChes
    @VadimChes ปีที่แล้ว

    Сливаемся и сливаемся)

  • @user-kq2mm1zm2l
    @user-kq2mm1zm2l ปีที่แล้ว

    Оставил свой самый крутой комментарий)

  • @KolotunBobo
    @KolotunBobo หลายเดือนก่อน

    Мой Like #1000

  • @maksymseveryn5553
    @maksymseveryn5553 ปีที่แล้ว +3

    Макс, можешь поподробнее о volatile? Встречал на одном курсе информацию, что не в кэше дело, т.к. процессор построен так, что кэш распространяется между потоками, и volatile это high-level абстракция, не имеющяя отношение к низкоуровневому управлению кэшем и процессором. А проблема в том, что компилятор не знает о том, что ресурс задействован в нескольких потоках, поэтому во время компиляции в байткод, происходит оптимизация кода, и volatile гарантирут ПОСЛЕДОВАТЕЛЬНОСТЬ выполнения кода, согласно тому, как этот код написан программистом, и не позваляет компилятору его оптимизировать так, что теряется каждоразовая проверка состояния ресурса (на пример while(sharedObject) {} оптимизируется компилятором так, чтобы проверка состояния sharedObject была только один раз, и не повторялась каждый раз во время петли). А везде только информация о кэше... Что думаешь на этот счёт?

    • @user-tv6eq4zc5e
      @user-tv6eq4zc5e 6 หลายเดือนก่อน

      вау, интересно

  • @blackplaydoh3522
    @blackplaydoh3522 ปีที่แล้ว +4

    Важные аспекты Mono и Flux, которые ответят на вопрос работал ли человек с реактивщиной: какой тип publisher является Mono и Flux (hot or cold), сколько елементов оборачивается во Flux?

  • @JohnJohn31595
    @JohnJohn31595 10 หลายเดือนก่อน +1

    thanks

  • @TheDiablo461
    @TheDiablo461 10 หลายเดือนก่อน +1

    А что не так с escape analyse в первом вопросе?

  • @ruslankrivoshein2893
    @ruslankrivoshein2893 ปีที่แล้ว +3

    Вот бы ещё пояснение, как с query plan работать. Я один раз сказал, что для исследования неэффективного запроса надо смотреть план, а когда мне его тут же предоставили, я обосрался.

    • @Jetbulb
      @Jetbulb  ปีที่แล้ว +3

      😆 Бывает)

    • @TheDiablo461
      @TheDiablo461 10 หลายเดือนก่อน

      Ну вот вопрос который задавал выше, что не так с запросом escape analyse и смотреть сколько шагов сделал каждый запрос?

    • @vs8418
      @vs8418 8 หลายเดือนก่อน

      @@TheDiablo461 Для начала нужно понимать, что все єто зависит от конкретной БД(Mysql, oracle.....). Минимально - у каждого єлемента плана есть свой вес, также в плане можно посмотреть какой вид(бьістрьій-медленньій) чтения/поиска таблицьі/индекса используется, каким образом связьіваютсяя єти данньіе, сортируются и т.д. и т.п. Ну и не стоит забьівать про такие вещи как Hints, про факт того, что после прослойки jdbc оптимизатором может сформироваться абсолютно другой запрос, про сбор статитстики в БД(когда и зачем) и возможно сбор єтой статистики значительно повлияет на скорость работьі базьі/запроса. Помимо єтого может стоит снять отчет о работе непосредственно с самой БД в которой указаньі кол-во чтений/записей на диск/память, в какой момент происходит проблема, насколько загружен процессор и чем.... В общем и целом єто работа DBA, но нужно знать, что такие ньюансьі существуют.

  • @leonidmishuck7580
    @leonidmishuck7580 11 หลายเดือนก่อน +2

    Мне кажется нельзя запустить несколько имейджей в одном контейнере, скорее написать докер файл в котором будут и база данных и все сервисы

    • @java_couch
      @java_couch 5 หลายเดือนก่อน

      можно, но это бессмысленно, так как ты будешь видеть только pod1 и ничего не узнаешь о том, живы ли другие запущенные в данном контейнере сервисы

  • @louiegroove
    @louiegroove 3 หลายเดือนก่อน

    32:30 так какая коллекция в итоге подходящая когда много записей?

  • @isadych1984
    @isadych1984 ปีที่แล้ว +1

    лайк за Spell SInger )

  • @user-nl2em4jm3e
    @user-nl2em4jm3e 5 หลายเดือนก่อน

    Тут важно отменить про джунов то, что лишь немногие могут чем-то похвастаться, (но они день-ночь развиваются и сильно потеют), что на счёт всех остальных - почти ничего не знают или вообще не знают.

  • @Narimaning
    @Narimaning 9 หลายเดือนก่อน +2

    очень affordable

  • @iKorvik
    @iKorvik 4 หลายเดือนก่อน

    Почти всё хорошо, но слишком много воды и абстрактых примеров/рассуждений, которое отводят внимание от вопроса

  • @tunchik88
    @tunchik88 ปีที่แล้ว +1

    lost update это нестандартная?))

    • @Jetbulb
      @Jetbulb  ปีที่แล้ว +2

      Смотря под каким углом смотреть 😏
      Лично для меня базовая

  • @whatvanyawants
    @whatvanyawants ปีที่แล้ว +5

    Як вчасно, завтра співбесіда на мідл позицію, дякую за контент

    • @MrRomanvideo
      @MrRomanvideo ปีที่แล้ว +5

      Аналогичино, сейчас готовлюсь к собесам на мидла. Хорошее видео.

    • @blackplaydoh3522
      @blackplaydoh3522 ปีที่แล้ว +4

      🇺🇦🇺🇦🇺🇦

    • @Jetbulb
      @Jetbulb  ปีที่แล้ว +5

      Тільки вперед 🇺🇦

    • @u_n_d_e_r_s_c_o_r_e_d
      @u_n_d_e_r_s_c_o_r_e_d ปีที่แล้ว

      прошел?

    • @whatvanyawants
      @whatvanyawants ปีที่แล้ว +3

      @@u_n_d_e_r_s_c_o_r_e_d Та співбесіда відмінилась, але минулого тижня була інша і я отримав оффер)

  • @caffeinejavacode1475
    @caffeinejavacode1475 ปีที่แล้ว +1

    1.Если не прошел live coding єто отказ на продолжение?
    2. Скільки не вчив і не переписував Патерни не можу запам'ятати

    • @Jetbulb
      @Jetbulb  ปีที่แล้ว +2

      Патерни це про досвід, не про памʼять
      А ось лайфкодінг це інше. Тут пройшов не пройшов залежить від компанії. Як на мене, то ЛайфКодінг потрібен лише для виявлення навичок з вирішення завдань. Але усе пізнається в поповненні

    • @caffeinejavacode1475
      @caffeinejavacode1475 ปีที่แล้ว

      @@Jetbulb як прокачати навички з вирішення задач на проекті?

    • @notUnclePetro
      @notUnclePetro 9 หลายเดือนก่อน

      ​@@caffeinejavacode1475просити вирішувати проблеми у проекті 🙃.
      Зазвичай це входить в твої обов'язки)) Тобто просто працювати і прокачувати

  • @jimishukurow2286
    @jimishukurow2286 ปีที่แล้ว +1

    Deisgn patterns best book for Java -> "Effective Java" by Addison Wesley

  • @poloplopol9791
    @poloplopol9791 ปีที่แล้ว +6

    так надоела эта гнусная документация для хардкорщиков , посмотрюка зодорного Макса!

  • @AndreyDeveloper
    @AndreyDeveloper 7 หลายเดือนก่อน

    Русский военный корабль в левом верхнем углу. 🤣