Тестовое собеседование Java разработчика #22 - Николай Оськин

Sdílet
Vložit
  • čas přidán 3. 07. 2024
  • Кандидат - будущий Java разработчик с большим опытом изучения и интересным путем в разработку - Николай Оськин.
    Николай профессиональный музыкант и преподаватель, который много лет увлекается программированием и в последние годы активно занимается изучением Java стека.
    Материалы для разработчиков:
    proselyte.net/
    Телеграмм канал для общения:
    t.me/pse_club
    00:00:00 Знакомство
    00:10:30 Ключевое слово final, назначение и варианты использования?
    00:15:50
    Значения переменных по умолчанию - что это и как работает?
    00:20:31 Иерархия Collections API
    00:30:14 Класс TreeMap - какая структура данных и алгоритмические сложности базовых операций
    00:35:07 Иерархия исключения в Java, их типы и способы их обработки.
    00:41:51 Что делает ключевое слово volatile?
    00:45:27 Что такое Future? Что такое CompletableFuture? Какие задачи они решают?
    00:48:15 Решение алгоритмической задачи.
    00:54:18 Что такое нормальная форма БД? Виды и мотивировки приведения БД к нормальной форме?
    00:58:00 Что такое JDBC?
    01:01:50 Что такое statement в контексте JDBC? Виды и отличия.
    01:04:43 Что такое Hibernate? Что такое JPA?
    Их отличия.
    01:06:40 Что такое N+1 SELECT проблема?
    01:09:44 Что такое REST API?
    01:12:12 Ответы на вопросы кандидата.
    01:21:21 Финал

Komentáře • 167

  • @EugeneSuleimanov
    @EugeneSuleimanov  Před rokem +4

    Ссылка на страницу с разбором данного интервью:
    proselyte.net/mock-interview-22/

    • @visalook
      @visalook Před rokem

      Здравствуйте, я конечно НОЛЬ в программировании, но мне кажется в задачке со словами, а точнее в решении есть баг. Дважды встречается L. Там 3 строки в массиве, а если будет 10К?? По-моему быстрее будет работать решение, если сначала в первом слове убрать повторения(то есть L), а потом выполнить решение. Ибо второй проход по одной и той же букве займёт лишнее время! И плюс, после удаления повторений(буквы L), мы получим строку bela, а значит наш новый массив будет содержать 4 символа, то есть можно создавать пустой массив в 4 символа, а не в 100, так как в лучшем случае будет совпадение максимум по 4 буквам..

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@visalook убрать дубликаты получится только за линейное время. Поэтому прироста в производительности я не вижу. Спасибо ю.

    • @AlexeySilichenko
      @AlexeySilichenko Před rokem

      result.add(Character.toString((char)('a' + i)));
      можно написать проще:
      result.add("a" + i);

    • @AlexeySilichenko
      @AlexeySilichenko Před rokem

      Что-то у Вас странное описание N+1 проблемы.
      Вы пишете, что эта проблема возникает только для Many-To-Many и заключается она в том, что для каждой из N сущностей с одного конца M-M связи выполняется один дополнительный запрос для сущностей с другого конца ММ связи.
      Из того что я знаю об этой проблеме: она может возникнуть для любой связи, даже для 1-1 и возникает она когда fetch=EAGER, т.е. когда мы запрашиваем список сущностей с одного конца связи -- это первый запрос, а в довесок выполняется N дополнительных запросов - по одному для каждого результата из первого запроса.
      Разница заключается в том, что в Вашей формулировке N - это количество данных, а 1 -- дополнительный запрос, в моей -- и N и 1 -- это количество запросов, а M-M является частным случаем.
      Кроме того, Вы указали, что fetch=EAGER решает проблему, но на самом деле именно это ее и порождает (тем более, что EAGER вообще-то стоит по-умолчанию), а вот решает как раз таки LAZY.
      Два других способа решения N+1 проблемы: EntityGraph и join fetch, оба способа "объединяют" основной и дополнительные запросы в один единственный запрос.
      EntityGraph использует "left join", join fetch -- "inner join".
      С EntityGraph не получится подгрузить несколько коллекций - хибернейт (проверено на версии 5.5.3) выбросит соответствующее исключение.

  • @JavaDevOld
    @JavaDevOld Před rokem +31

    Здравствуйте!!! Узнаю себя. Мне 54 года. Джавой заболел в 2020 году. С тех пор почти 3 года день в день учусь этому гениальному языку программирования. Много чего умею и сделал..Даже удалось попасть в ЕПАМ в лабораторию, но ввиду войны, через полгода пришлось пока сесть на внешний бенч с неизвестным результатом..... Николай, Вы не одиноки.!!!!!!!!!! Есть еще такие же сумасшедшие.... Поставил бы 700 лайков, но пускает только поставить один.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Удачи вам!

    • @JavaDevOld
      @JavaDevOld Před rokem +5

      @@EugeneSuleimanov Вам также удачи. Вы делаете очень хорошее дело. Кроме того, Вы очень грамотный специалист и довольно сильно отличаетесь от общего содержимого Ютюба.... 😀

    • @oskinnick
      @oskinnick Před rokem

      Спасибо! Дорогу осиливает идущий!

    • @caffeinejavacode1475
      @caffeinejavacode1475 Před rokem +1

      ха-ха я в 36 годиков с 4 годами опьіта ( только на бумаге ) боюсь что старьій!

    • @fara0n333
      @fara0n333 Před rokem

      @@JavaDevOld Основна масса в ютубі не інженери, ось чому є відмінність

  • @user-bn9wc8db6s
    @user-bn9wc8db6s Před rokem +13

    Евгений, спасибо за видео👍👍👍
    Николай живое доказательство, что возраст вообще не помеха!!!

  • @alexandr7441
    @alexandr7441 Před rokem +13

    Ура! Новые видео! Спасибо, что не бросаешь канал)

  • @voker8465
    @voker8465 Před rokem +1

    Спасибо огромное за видео! Очень ждали! Не пропадайте, Евгений)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Спасибо за отзыв 😊
      Постараюсь не пропадать

  • @SvetlanaCapri
    @SvetlanaCapri Před rokem +1

    Спасибо огромное . Очень ждали нового видео.

  • @user-vq2hi1df2i
    @user-vq2hi1df2i Před rokem

    Евгений, спасибо за видео, с возвращением!

  • @user-uq4nd6go9c
    @user-uq4nd6go9c Před rokem +2

    Очень интересно, спасибо Евгений, спасибо Николай

  • @andreykhakimov3314
    @andreykhakimov3314 Před rokem +2

    Евгений, спасибо за Ваш труд!

  • @user-bt9hx3ik6e
    @user-bt9hx3ik6e Před rokem +6

    ооо, с возвращением!спасибо за видео!) Николаю удачи, должно все получиться.

  • @user-yt6vv9vf3x
    @user-yt6vv9vf3x Před rokem +1

    Евгений, с возвращением) Всегда интересны твои собеседования))

  • @smersh-root
    @smersh-root Před rokem

    Круто! Давно ждал нового видео! Спасибо!!!

  • @JohnDoe-km7ch
    @JohnDoe-km7ch Před rokem

    Евгений, спасибо. Очень ждал собеседования от вас

  • @dibehemoth401
    @dibehemoth401 Před rokem +2

    Ого, какая крутая рубрика к нам возвращается!
    Ещё не смотрел, но уверен, что будет интересно. Лайк заранее. =)

  • @user-kk9rx4jd6zs
    @user-kk9rx4jd6zs Před rokem +4

    Евгений, добрый день.
    Рад что вы вновь в строю :)

  • @alekseizhitenev6020
    @alekseizhitenev6020 Před rokem +2

    ураааа,давно хотел посмотреть новое мок собеседование с тобой,Женя спасибо)) Николай красавчик

  • @sigma3131
    @sigma3131 Před rokem +1

    классно получилось! Николай молодец!

  • @ivanutikov5110
    @ivanutikov5110 Před rokem +6

    Лайк не глядя )))

  • @dosodsin3624
    @dosodsin3624 Před rokem +3

    Легенда вернулась!

  • @oldjohn1503
    @oldjohn1503 Před rokem +9

    Особенно круто в Николае то, что он не зная некоторых вещей, доходит до правильного ответа логически, исходя из того, что он знает.

  • @user-mb6gv1df7c
    @user-mb6gv1df7c Před rokem +2

    Евгений вернулся! Ура 🙌

  • @zhenyalee2731
    @zhenyalee2731 Před rokem +1

    Ура, новый выпуск
    Уже соскучился

  • @oldjohn1503
    @oldjohn1503 Před rokem +2

    Евгений! Безумно рад видеть!)

  • @user-ks3fb4no5b
    @user-ks3fb4no5b Před rokem

    Евгений, спасибо большое за ваши видео! Они супер, одни из лучших на ютубе. Тоже столкнулась с большим разнообразием настроек security, впадаешь в ступор маленько. Настроила в основном по вашему видео, но попадали тесты контроллера. Теперь вот ищу как их настроить, все еще осложняется одной из последних версией spring boot у меня и отличиями в конфиге.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +4

      Спасибо за отзыв! Сейчас как раз в работе видео по SpringSecurity для версии 3.0.0 и выше с использованием SecurityFilterChain. Надеюсь, что смогу опубликовать в ближайшее время.

  • @user-lk8n0fgjk
    @user-lk8n0fgjk Před rokem +3

    Евгений, классное видео. Снимайте побольше таких собеседований! Только вопросы задавайте, пожалуйста, разные в каждом выпуске.

  • @elnar_1206
    @elnar_1206 Před rokem +1

    Спасибо за видео)

  • @yurysudak
    @yurysudak Před rokem +4

    Женя, рад твоему возвращению! Очень ценный контент у тебя. Где пропадал?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Спасибо, Юра!
      Было чем заняться )
      Работа, переезды и т.д.

  • @auk.online675
    @auk.online675 Před rokem +1

    Жека, респект за видео!)
    Успехов тебе 😊

  • @zhaslanq
    @zhaslanq Před rokem +2

    Спасибо за видео! Помогает бороться со страхом собесов)

  • @KaBy34
    @KaBy34 Před rokem +1

    лайк лайк.
    Спасибо, Женя.

  • @divergenny
    @divergenny Před rokem +1

    Спасибо большое

  • @errodion
    @errodion Před rokem

    Братан, хорош, контент в кайф! Давай, давай, так держать

  • @hennellore5697
    @hennellore5697 Před rokem +2

    Вижу Женю - ставлю лайк😎 спасибо за такие полезные видосы!

  • @AlexeySilichenko
    @AlexeySilichenko Před rokem +2

    1:08:50 отдельный респект Николаю за то что обратил внимание на то что, логичнее было бы называть проблему -- 1+N 😊

    • @AlexeySilichenko
      @AlexeySilichenko Před rokem

      Ноги у названия этой проблемы, конечно, растут от того, что мы получаем не 1 запись, а N+1 записей, т.е. акцент на том, что сильно больше чем хотелось.
      В общем, эта борьба формулировок из разряда: пока работаешь на уровне теории -- важно понимать что у от куда берется, а когда уже работаешь с практикой и есть понимание теории -- становятся более важными последствия этой проблемы.
      Как следствие, опытные люди и новички разговаривают на разных языках, новички либо заучивают наизусть без понимания сути, либо разбираются сами и только со временем переучиваются "называть по взрослому".

  • @Batyrbala
    @Batyrbala Před rokem +2

    Респект за терпение Евгению ❤

  • @performanceact400
    @performanceact400 Před rokem +4

    Крутой мужик!❤

  • @user-ko3vx6rh6t
    @user-ko3vx6rh6t Před rokem

    Очень интересное видео👍

  • @kotbegemot9177
    @kotbegemot9177 Před rokem

    Ура 🎉🎉🎉!

  • @alenache1
    @alenache1 Před rokem

    наконец-то 👍👍👍

  • @stasalesh9922
    @stasalesh9922 Před rokem +1

    Мужик молодец. Уважуха

  • @musamuradzade1606
    @musamuradzade1606 Před rokem +1

    О, собесы)
    Спасибо, Женя)

  • @fairo001
    @fairo001 Před rokem

    Евгению спасибо. Николаю могу посоветовать четко различать спецификацию и реализацию. В первую очередь изучать спецификации потенциально используемех в своем коде объектов, не закапываясь на первых порах в детали реализации. Изучить только плюсы и минусы конкретных реализаций. Это даст больше пользы для конкретной работы.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Большое спасибо за комментарий!

  • @caffeinejavacode1475
    @caffeinejavacode1475 Před rokem +1

    Евгений, спасибо вам, как всегда вас радьій видеть!
    У меня к вам такой вопрос: Как получать на работе качественьій опьіт, какие я должен совершать действия, как должен думать? Потому как на бумаге опьіт естт а в голове нет, как будто штаньі протирал!
    Спасибо!

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +2

      Спасибо за отзыв!
      Здесь крайне зависит от самого проекта. Если проект не позволяет выполнять сложные инженерные задачи, то стоит посвятить время самообразованию, а когда будете чувствовать себя более уверено - можно начинать искать другой проект.
      Еси же проект сложный и на нем не дают комплексные задачи - стоит обратиться к руководителю проекта и обсудить план развития. Все сказанное выше - только мое мнение, основанное на моем опыте.
      Ещё раз спасибо за отзыв!

  • @user-gs1uq4qw3e
    @user-gs1uq4qw3e Před rokem

    это же Вассерман). У тебя Евгений отличное терпение. Николаю чуть java подучить и уже может быть senior

  • @user-qx3jt8fw1v
    @user-qx3jt8fw1v Před rokem +5

    каааайф

  • @slavaM77
    @slavaM77 Před rokem +1

    Вот это восстание из пепла!!!

  • @JohnDoe-km7ch
    @JohnDoe-km7ch Před rokem +1

    1:14:50 Евгений, поделитесь в описании. Всем интересно.

  • @-boiadeiro-
    @-boiadeiro- Před rokem

    Классный дядька, во многих аспектах понимает лучше зеленых выпускников Вуза, ещё одно подтверждение тому, что мозг не стареет)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Спасибо за комментарий!
      Да, Николай достойный кандидат :)

  • @racot7145
    @racot7145 Před rokem +1

    Ну задачку решил. Правда через 2 for.Через collections не вышло. Филтр почему то не любит контаинс. Зато любит allMatch.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Через стримы - наиболее удобный вариант, ИМХО

  • @losishche
    @losishche Před rokem

    О чувак, как и я - музыкант! Правда, у меня, все-таки, хоть какое-то айтишное образование, диплом о переподготовке имеется и математическая база))

  • @Batyrbala
    @Batyrbala Před rokem

    А вообще многопоточка очень спорная тема для джуновского интервью) Если учитывать какие задачи будет решать джун

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Краге зависит от проекта. Если весь проект завязан на многопоточности, то и задачи будут соответствующие.

  • @user-og2ti2wd5o
    @user-og2ti2wd5o Před rokem

    дякую за цікаве інтерв'ю

  • @user-th2kj8gr5v
    @user-th2kj8gr5v Před rokem +3

    Смотрю секцию рассказ о себе, это невыносимо

  • @igrikRS
    @igrikRS Před rokem

    На 32:30 - про деревья есть отличное видео, в том числе и про красно-чёрное, с объяснением что такое левый/правый поворот:
    czcams.com/video/0BUX_PotA4c/video.html

  • @smdfb7334
    @smdfb7334 Před rokem +1

    Круто, но хотелось бы более опытных кандидатов. Хотя тогда наверное просмотров меньше будет

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +3

      Спасибо за отзыв!
      Людям с небольшим опытом тоже нужно давать возможность подготовиться :)
      Но на будущее планируются собеседования и с более опытными.

    • @voker8465
      @voker8465 Před rokem +2

      На канале 20+ видео где есть иопытные ребята с коммерческим опытом )

    • @Revasha228Crime
      @Revasha228Crime Před rokem +1

      @@voker8465 Они уже все давно просмотрены, хочется еще мидлов

  • @georginich2216
    @georginich2216 Před rokem +1

    Какой же велеречивый дядька. Выдает кучу словесного мусора, отвечает на вопросы, которые у него не спрашивают.
    Евгений, преклоняюсь перед вашим терпением!
    В общем было понятно по вступлению - интервью будет долгим и тяжелым)
    В любом случае благодарю Николая за смелость, а Евгения за такой прекрасный контент

  • @MrRomanvideo
    @MrRomanvideo Před rokem +1

    Функционально JPA первичен, Хибернейт - реализация. Но исторически JPA был списан с Хибернейта

  • @ms_shifu7047
    @ms_shifu7047 Před rokem

    thanks

  • @rockyaboba9466
    @rockyaboba9466 Před rokem +1

    В один прекрасный день в собеседования на Java разработчика будут включать разбор какого-нибудь класса, анализ его со стороны принципов чистого кода, а не сухую прогонку по джава кору или решение алго задачи по типу нахождению числа Фибоначчи. Но всё равно, спасибо за видео.

  • @themistocies50
    @themistocies50 Před rokem +3

    Ех, вот бы тоже попасть на интервью... А то с 1 годом опыта работы никто не зовет(

    • @JohnDoe-km7ch
      @JohnDoe-km7ch Před rokem +1

      Сколько лет, если не секрет?

    • @themistocies50
      @themistocies50 Před rokem +1

      @@JohnDoe-km7ch 25, а почему спрашиваете?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Если интересует mock интервью - напишите не почту - обсудим детали.
      Год коммерческого опыта - это уже немало

    • @JohnDoe-km7ch
      @JohnDoe-km7ch Před rokem

      @@themistocies50 интереса ради. Я думал, вы возрастной и неопытный. Странно, что в 25 с годом опыта не предлагают. Я начинал в 32 и без опыта/3 мес опыта и не испытал сложностей. Если не зовут на собеседование, то ищите проблему в резюме.

    • @themistocies50
      @themistocies50 Před rokem

      @@JohnDoe-km7ch Можно с вами как-то связаться? Есть пара вопросов.

  • @AlexeySilichenko
    @AlexeySilichenko Před rokem

    Придумал вопрос для собеседования: "почему abstract класс не может быть final" или "может ли абстрактный класс быть final" или "какой класс не может быть final и почему" 😁

  • @user-mf6uc9iw2z
    @user-mf6uc9iw2z Před rokem +1

    Хорошо, что ковыряется в дебрях всего и имеет кучу заковыристых вопросов. Будет толк при желании. Спустя 13 лет java лично мне уже поднадоела, ушел в сторону веб/ангулара/к8с/девопса

  • @ibraim3197
    @ibraim3197 Před rokem +5

    вот это них*я себе

  • @nikitakhmileuski3639
    @nikitakhmileuski3639 Před rokem

    Реинкарнация интервьюера мечты

  • @reestts
    @reestts Před rokem +1

    Люди старой школы изъясняются яснее. Не то, что мы) Николаю удачи!

  • @privetyaolega
    @privetyaolega Před rokem +2

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Да, превратности судьбы )

    • @oskinnick
      @oskinnick Před rokem

      Хмык - этих аккордов просто учить - бесполезно. В музыке все наоборот- немного теории, и куча практики. И чем меньше думаешь - тем лучше получается)

    • @anfransful
      @anfransful Před rokem

      @@oskinnick Пьяные рокеры рулят )

  • @dmitriy4204
    @dmitriy4204 Před rokem +1

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

  • @borisjohnson2826
    @borisjohnson2826 Před rokem +1

    Доречі задача цікава. На літкоді вона позначена як easy, хоча я б її відніс до medium. Якщо не знати, що char 'a' це 97, а b 98 і т.д, і ти це не застосовував ніде, то швидко реалізувати ідею з int[26] не вдасться.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Да, одна из моих любимых задач - позволяет увидеть не только знание алгоритмов, но и понимание кодировок кандидатом.

  • @Gribozhuy
    @Gribozhuy Před rokem +2

    Это видео было бы полезно еще хоть кому-то кроме интервьюируемого, если бы потом сам интервьюер ответил бы на эти вопросы. Именно не так что - прочитайте, а вот четко и идеально как он бы хотел услышать.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +5

      Так и сделано на большинство во вопросов, если не ошибаюсь. Также в течение 2-3 дней подготовлю список рекомендаций к изучению и ответы на вопросы.

    • @Gribozhuy
      @Gribozhuy Před rokem +1

      @@EugeneSuleimanov я без претензий, давно вас смотрю и все мок интервью смотрел, но в целом такой тенденции нет. Я имею ввиду что я знаю где почитать, но чоткого ответа в два-три предложения ведь нету, это зачастую очень распространение вопросы, дискуссионные.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@Gribozhuy спасибо

    • @oskinnick
      @oskinnick Před rokem +1

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

  • @Vertorrr
    @Vertorrr Před rokem

    Двоякое впечатление от данного собеседования. Надо отдать должное кандидату за старание и стремление, но курить на собеседовании - это неуважение к оппоненту и зрителям.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Николай, вероятнее всего, очень нервничал - поэтому и закурил :)

  • @NotAFaken
    @NotAFaken Před 7 měsíci

    вообще странно видеть, что человек, изучающий джава с 20 года, не знает, что такое трисет

  • @user-og2ti2wd5o
    @user-og2ti2wd5o Před rokem

    отакої

  • @fara0n333
    @fara0n333 Před rokem

    Привіт!) Радий бачити тебе, слава Україні! Гарних проектів і саме головне здоров’я !

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Дякую за відгук!
      Вам також :)

    • @asdasd-fu4ow
      @asdasd-fu4ow Před rokem

      В составе России.
      Кыш отсюда дурачок в окоп Артемовска