Собеседование Java Middle | Реальное собеседование | Jetbulb

2024 ж. 15 Мам.
63 076 Рет қаралды

Выпуск серии "Техническое собеседование" на позицию Java Middle Developer.
Вопросы и ответы по темам: разработка и тестирование приложений, многопоточность, Java Framework Collection, Spring Framework, Базы Данных и транзакции в БД.
Программа:
00:00 - Введение
01:28 - Требования к кандидату
03:09 - Цикл разработки
06:39 - Тестирование приложений
09:41 - Коллекции или Java Collection Framework
22:25 - Многопоточность
31:18 - Spring Framework и Базы Данных
48:02 - Выводы
Наш сайт:
jetbulb.com/
interview.jetbulb.com/
Мы в социальных сетях:
t.me/jetbulb
t.me/seemsinprod

Пікірлер
  • Спасибо огромное за столь большой объем качественной информации!

    @user-my5nw2kg6l@user-my5nw2kg6l Жыл бұрын
  • спасибо за старания, все супер, смотрится на одном дыхании, все понятно и интересно объясняется. Полезное и приятное время препровождение )

    @Mdfnik@Mdfnik Жыл бұрын
  • Спасибо за качественные и полезные выпуски 😊

    @user-lg5wo6gg9j@user-lg5wo6gg9j Жыл бұрын
  • Очень круто! Спасибо за разбор интервью - это действительно полезно

    @go-with-go@go-with-go Жыл бұрын
  • Спасибо за видео! Каждый раз узнаешь что-то новое или повторяешь то что забыл

    @TsimurKatkouski@TsimurKatkouski Жыл бұрын
  • спасибо за такого рода видео, очень много новых нюансов узнаю)

    @alekseizhitenev6020@alekseizhitenev6020 Жыл бұрын
  • Спасибо огромное за Ваш труд и время потраченные на создание канала. Полезная информация для подготовки к собеседовании, приятная подача. Особенно радует текст в начале видео!

    @physicsofthewonderful7612@physicsofthewonderful7612Ай бұрын
  • Очень познавательно, Макс, спасибо! Много нового для себя подчерпнул особенно про аннотацию transactional, но просмотрев, понял, что много вещей будучи джуном уже знаю, чем был приятно удивлен, еще раз спасибо, продолжай в том же духе, хотелось бы еще хотя бы 1 пример интервью (или такого же формата как это видео) вопросов мидлу.

    @artemlisitsyn9846@artemlisitsyn9846 Жыл бұрын
    • Скоро будет видео на синьорскому собеседованию ))) Материал собирается. Спасибо за твой фидбек ☺️🙏🏻

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb круто) буду ждать

      @artemlisitsyn9846@artemlisitsyn9846 Жыл бұрын
  • Макс🖐 Спасибо за годный контент👍👍👍

    @user-bn9wc8db6s@user-bn9wc8db6s Жыл бұрын
  • Спасибо за данный ролик. Много что узнал нового для себя. Как раз готовлюсь к собесам :)

    @A_Rakh@A_Rakh3 ай бұрын
  • Громадное спасибо за подобный контент! Во-первых, это невероятно интересная информация, во-вторых - необычайно полезная для всех! Автору канала успехов!

    @user-fw6iw5uf8f@user-fw6iw5uf8f10 ай бұрын
  • Спасибо, про уровни изоляции транзакций было полезно

    @katefedorova624@katefedorova624 Жыл бұрын
  • По больше бы таких видео)) Именно про миддлов особенно лайв кодинг))

    @rkoinfr9964@rkoinfr9964 Жыл бұрын
  • Спасибо. Полезно. Ещё раз пересмотрю

    @user-gv3zn1us6s@user-gv3zn1us6s4 ай бұрын
  • Просмотрел, сделал конспект ))) Спасибо!

    @user-wy2eq1xu2w@user-wy2eq1xu2w Жыл бұрын
  • Очень круто. Было очень интересно)

    @user-vz4qs5bf6o@user-vz4qs5bf6o Жыл бұрын
  • Сейчас такое у джунов спрашивают) спасибо за видео, хорошо объяснил ответы на вопросы

    @eskelgarsio2998@eskelgarsio2998 Жыл бұрын
  • Качество выпусков заметно улучшилось👍

    @nafis9908@nafis9908 Жыл бұрын
  • Про базы и транзакции - класс, интересно

    @alevadnaya@alevadnaya Жыл бұрын
  • Контент топчик! Максон спасибо :) Очень много интересного!

    @user-kk9rx4jd6zs@user-kk9rx4jd6zs8 ай бұрын
  • Дякую, за цікавий та корисний контент 🙂

    @artemvoloshyn1257@artemvoloshyn1257 Жыл бұрын
    • Респект 👍 🇺🇦

      @Jetbulb@Jetbulb Жыл бұрын
  • Было интересно, спасибо

    @pulato000@pulato000 Жыл бұрын
  • Даже для джуна это интересно. Круто. Спасибо за информацию)

    @maks7494@maks74946 ай бұрын
  • Спасибо тебе за канал

    @Habik87_29@Habik87_29 Жыл бұрын
  • чёткое видео! спасибо!

    @videtskikh@videtskikh Жыл бұрын
  • Спасибо большое за разбор, пожелания к видео. Мы поняли к середине видео что собеседование пошло не очень хорошо, поэтому можно было бы и не акцентировать на этом так много внимания, ведь смысловой нагрузки они не прибовляют. Визуализация контента о котором вы говорите было бы очень хорошим дополнением

    @askar4ou@askar4ou9 ай бұрын
  • @Jetbulb Сделайте, пожалуйста, видео с highlight'ми из предыдущих видео, например "как правильно отвечать на вопрос, что такое "объектно ориентированное программирование" или просто нарезку хороших ответов.

    @user-sn8jy8lg2j@user-sn8jy8lg2j Жыл бұрын
  • Як завжди цікаво і пізнавально)

    @dmytro4312@dmytro4312 Жыл бұрын
  • Побольше бы таких интервьюверов как Макс

    @TimurMalikAst@TimurMalikAst Жыл бұрын
  • Блин, ты очень классный рассказчик. Я бы с удовольствием послушал про Spring от тебя , прям love)

    @user-bl1dr7wp3g@user-bl1dr7wp3g Жыл бұрын
    • Спасибо за фидбек))) Это лучшая награда. Кстати, у нас есть плейлисты про спринг. Правда там не много видео, но это временно.

      @Jetbulb@Jetbulb Жыл бұрын
  • Через 1,5 часа собеседование, смотрел интервью с ребятами, на трудоустройство не рассчитываю, проверю свои знания и будет какой-то опыт. С каналом более углублённо проработал разные вопросы, спасибо

    @jackcreater2875@jackcreater2875 Жыл бұрын
    • Как собеседование прошло?

      @derzkii_samogonshik@derzkii_samogonshik Жыл бұрын
    • И как? Получилось?

      @lerikshow8491@lerikshow84918 ай бұрын
  • 45:28 Послушал про оптимистичную и пессимистичную блокировку. Улыбнуло. Объясню вам на пальцах, чтобы вы других не вводили в заблуждение. Смотрите. Прежде всего блокировка нам нужна только когда мы что-то меняем. И блокировка нужна, чтобы измененные данные сохранили свою целостность. Не были утрачены в какой-то части в результате наложившихся параллельных изменений. Никакая блокировка не должна запрещать другим читать данные (если не мегаспециальные сценарии). Это касается только функционала изменения данных. Например, открыли на редактирование какой-то документ. Поредактировали и сохранили. Что такое оптимистическая блокировка и почему она так называется. Оптимистическая блокировка берет данные в работу на изменение и никому не запрещает взять эти же данные на изменения параллельно. Это такие оптимисты, которые надеются успеть изменить документ и сохранить его пока никто не успел взять этот документ на изменение. Далее, кто первый встал того и тапки, кто первый записался в базу данных, тот молодец, а второй "неудачный оптимист" получит отлуп по блокировке, если механизм блокировки вообще есть. Один из вариантов реализации оптимистичной блокировки является версионирование данных. Каждый entity имеет в БД поле с номером версии, он меняется в БД когда кто-то изменил этот блок данных entity. Соответственно при попытке записаться сравнивается версия исходная с которыми данные получены и версия на момент записи. И если они отличаются, то отказ. За это отвечает та самая аннотация @Version. Это работает как видите и на уровне приложения, и на уровне БД. Теперь, пессимистичная блокировка. Тут работают пессимисты, они не действую по принципу "авось никто не успеет поменять документ, пока я тут его же меняю", они берут данные в работу на изменение и запрещают другим брать эти же данные на изменение, читать - пожалуйста. Но брать на изменение второму не дадут, жди пока первый разблокирует данные. Это гарантирует первому спокойное сохранение какого-то очень важного документа, важного начальника, который не будет повторять дважды и бегать за уведенными тапками. Для такого типа блокировки где-то, в БД или в приложении выставляется признак, что данные взяты на изменение, кем, когда. И все остальные (жаждущие изменить, читать - пожалуйста ) ждут, механизм может поддерживать автоматическую разблокировку через таймаут. Если кто-то взял документ на изменение и ушел в декретный отпуск, а другим его нужно изменять. Оптимистичная блокировка хороша, когда данные не критичны, можно повторить изменения. Получил отлуп, перечитал данные и внес в новую версию уже свое, если вообще потребуется, а то может коллега уже все прописал. И обычно используется когда нет высокой конкуренции. Главное, она не блокирует работу с документом на изменение, она блокирует прием результата изменений, если кто-то успел документ изменить. Плюс: бери документ на изменение кто хочет, кто первый успел, тот молодец. Минусы: при блокировке приходится перечитывать новую измененную версию и повторять всю работу по изменению снова. Пессимистичная блокировка нужна когда данные оперативно меняются в условиях высокой конкуренции или когда важный документ, который переделывать повторно трудозатратно. Плюс: все что вы изменили гарантированно примется. Минусы: остальные документ изменить не могут пока вы его "держите" на изменение. Возможны гибридные варианты стратегии блокировки. Например, какие-то типы документов работают в оптимистической стратегии, какие-то особо важные в пессимистической. Или даже так: первые N часов/минут документ работает в режиме пессимистической блокировки, потом переключается в режим оптимистической. Тогда достигается комбинация положительных сторон двух стратегий и определенный компромисс недостатков (но это уже не про Spring)

    @vladimirblagin3105@vladimirblagin3105 Жыл бұрын
    • очень круто все расписали. спасибо!

      @user-bt9hx3ik6e@user-bt9hx3ik6e Жыл бұрын
  • Спасибо, Макс. Звук лучше стал )

    @kensaitakeso@kensaitakeso Жыл бұрын
    • Ага. Микро подъехал)) Спасибо за фидбек Респект 👍

      @Jetbulb@Jetbulb Жыл бұрын
  • Макс, крутой видос, спасибо. 25:14 это кстати пример не deadlock, а livelock. Deadlock был бы, если бы они шли по коридору, встретились, просто встали на одном месте и начали ждать пока проход освободится.

    @user-pc6oe5cr3b@user-pc6oe5cr3b Жыл бұрын
    • Отличное замечание)) Спасибо 👍 И за фидбек в том числе

      @Jetbulb@Jetbulb Жыл бұрын
  • Спасибо за видео! Немного дополню про мапу, порог называется loadFactor, и он напрямую зависит от initialCapacity. Как было сказано - капасити по умолчанию 16, а лоадфактор 0,75. Это означает, что с 12го элемента мапа будет увеличена вдвое и так в прогрессии.

    @milordplus@milordplus5 ай бұрын
  • Спасибо, Макс

    @user-cf2jo7vo8p@user-cf2jo7vo8p Жыл бұрын
  • Макс, спасибо за видео! Про TDD не согласен. Важно понимать концепцию и пробовать)) но на практике она применяется достаточно редко. Одно дело, удобно имплементировать по TDD доменную логику в доменных объектах - объектах где нет зависимостей. И другое дело предвидеть в тестах какие зависимости (сервисы, репозитории) будет использовать юзкеис-класс. В видео ставится = между многопоточностью и реактивщиной, но это разные понятия.

    @dimavarushyla6772@dimavarushyla6772 Жыл бұрын
    • Привет! >> В видео ставится = между многопоточностью и реактивщиной, но это разные понятия. Не знаю где это усматривается из видео. Поскольку аналогии или эквивалентности нет и речи об этом идти не может. Спасибо за фидбек и твой технический коммент))

      @Jetbulb@Jetbulb Жыл бұрын
  • Топчик. спасибо.

    @user-qx3jt8fw1v@user-qx3jt8fw1v Жыл бұрын
  • Спасибо за видео.

    @user-zo6qk3cy3w@user-zo6qk3cy3w24 күн бұрын
  • Здравствствуйте Максим! Расскажите, пожалуйста, про профайлинг, бенчмарки (JMH) на Java. Спасибо за видео!

    @eld4j@eld4j Жыл бұрын
    • Привет! Хорошая тема. Недавно с коллегой обсуждали один пост про JMH. Спасибо за наводку и фидбек 👍

      @Jetbulb@Jetbulb Жыл бұрын
  • Редко пишу комменты, но тут не могу пройти мимо :) сам ответил примерно на половину вопросов, еще о четверти в курсе) рубрика годная, вопросы актуальные, было интересно послушать. Большое спасибо 👍

    @antonparfenov7126@antonparfenov7126 Жыл бұрын
    • Большое спасибо за отзыв)) Лучшая награда! Респект!

      @Jetbulb@Jetbulb Жыл бұрын
  • Разумеется, я посмотрел видео, и, соответственно, поставил лайк.

    @SplashDmg2011@SplashDmg2011 Жыл бұрын
  • Ерундой не страдайте, работал уже 10 лет в этой профессии и никогда не пригодилось знание сколько элементов в HashMap. Эти вопросы вообще не нужны. Лучше задавать на конкретных задачах, что умеешь делать, как построить архитектуру и тд.

    @maksimivanov8728@maksimivanov8728 Жыл бұрын
    • То есть ты предполагаешь, что человек будет корректно решать поставленные перед ним задачи, не понимая до конца как устроены объекты под капотом, с помощью которых он и будет их решать, тем более мидл?

      @alias77799@alias777998 ай бұрын
    • А как ты будешь отвечать на конкретных задачах, если не знаешь теорию и не знаешь что происходит под капотом? Ты не сможешь оптимизировать код, не поймёшь где случились ошибки... Сеньор на то и сеньор, что умеет во всё вышеперечисленное, а не что умеет решать задачки)

      @Wansery@Wansery7 ай бұрын
    • Все зависит от реализации интерфейса. Секунда времени ткнуть мышкой на класс и посмотреть. Древовидные бакетты или списки, сколько элементов по умолчанию... На мой взгляд эти вопросы выпендреж тех кто проводит собес дабы показать, что он что то знает. 😊

      @user-pk8tz2oy6x@user-pk8tz2oy6x6 ай бұрын
    • @@alias77799 ты читал вообще? Не пригодились знания "сколько количество элементов в хэшмапе" != "не понимает как устроены объекты под капотом"

      @user-pq9zz8gs4s@user-pq9zz8gs4s5 ай бұрын
    • @@user-pq9zz8gs4s это ты читал вообще мой коммент или просто что-то отписать?

      @alias77799@alias777995 ай бұрын
  • Спасибо за видео, очень нравится этот формат!) Про пример deadlock, в коридоре с двумя людьми, если они будут отходить постоянно, это же уже Livelock?)

    @yan-ww4rm@yan-ww4rm Жыл бұрын
    • Да, там косяк вышел)) Речь шла про Livelock Спасибо за отзыв))

      @Jetbulb@Jetbulb Жыл бұрын
  • Меня на джуна сильнее спрашивали, это было 2 года назад :)

    @kirill141@kirill1417 ай бұрын
  • Спасибо!

    @chicago21@chicago2110 ай бұрын
  • Классный видос, спасибо :) P.S. А выпуск по реактивщине не планируется?)

    @user-sj2np1rc4u@user-sj2np1rc4u Жыл бұрын
    • Планируется)) Все по очереди. Сейчас прошло голосование в ТГ и явно коммуна хочет видеть что-то про реактив. Что ж, этому быть и значит будем готовить материал.

      @Jetbulb@Jetbulb Жыл бұрын
  • Классно рассказываешь! Было бы круто с какими то визуальными примерами, не подробное копания для изучения, а чисто увидеть код в той же идее. Не презентация никакая , просто чтоб нормально вспомнить как выглядит))

    @milordplus@milordplus5 ай бұрын
  • Спасибо

    @Das.Kleine.Krokodil@Das.Kleine.Krokodil Жыл бұрын
  • Отличная картинка, Макс. Пора еще одну добавить :)))

    @iharbakhanovich@iharbakhanovich Жыл бұрын
    • Ну зачем ты мне про линт рассказал? Вечер потерян как и самооценка :)))))

      @iharbakhanovich@iharbakhanovich Жыл бұрын
  • Не двигаемся мы в мир реактивщины, учитывая что уже в следующем LTS релизе может быть project loom зарелизен. Достоточно посмотреть количество вакансий с реактивным стеком

    @anti1am3r@anti1am3r Жыл бұрын
  • Привет, Макс. Мне кажется, пока ты работаешь разрабом в тебе умирает очень крутой ведущий. Скандалы, интриги, расследования. Невыдуманные истории о которых невозможно молчать...

    @vitamin2845@vitamin2845 Жыл бұрын
    • Я походу не ту профессию выбрал)))

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb Как можно сравнивать ИТ с ведущим. Почитай как строили первые ЭВМ. Как запускали людей в космос. Все достижения современности были бы невозможны без автоматизации вычислений, роста вычислительной мощности и развития алгоритмов. Ты, может быть, утонул в будничной рутине или выбрал не то направление, но профессия у тебя точно самая интересная из доступных в наше время. Ведущий - это говорящая голова, при всем уважении к хорошим ведущим.

      @doh2535@doh2535 Жыл бұрын
    • @@doh2535 часто ведущие не просто говорят, а ещё и материал программы сами готовят, разбираются в предмете.

      @ruslankrivoshein2893@ruslankrivoshein2893 Жыл бұрын
    • @@doh2535 чтобы понять,что ведущий это не просто голова, рекомендую найти и посмотреть передачи региональных тв или студенческих

      @Das.Kleine.Krokodil@Das.Kleine.Krokodil Жыл бұрын
  • Привет! У тебя есть видео про SDET? Сейчас прохожу bootcamp и голова плавится, представляю что с девелопарами происходит. Это видео реально интересно посмотреть.

    @serhiiudod3604@serhiiudod3604 Жыл бұрын
    • Привет! Такого видео пока нет. Признаюсь и не думали о таком ) Спасибо за фидбек

      @Jetbulb@Jetbulb Жыл бұрын
  • Макс, спасибо! Полезный выпуск. 31:45 - Расскажите, кто имел опыт использования или видел в бизнес коде скоупы request, websocket, application, session? Я за первый год работы ни разу не встречал. Прототайпы встретил только недавно - по всей видимости используются крайне редко.

    @NikiforovJava@NikiforovJava Жыл бұрын
    • Привет! Встречаются. Хотя все зависит от сложности внутренного устройства приложения. Я видел несколько раз: Request и Session Спасибо за фидбек )

      @Jetbulb@Jetbulb Жыл бұрын
  • не уверен, но при простой коллизии нода вроде не перестраивается в дерево. Там есть лимит на количество элементов в бакете (вроде 8) и общее число бакетов (вроде 32). 2 этих условия с логическим и. Порог же вроде loadFactor? Еще по тримапе интересный вопрос можно задать: как в тримапу положить объект, который не реализует comparable и мы не передаем компаратор? На как тогда будут сортироваться ключи?

    @non_holy6286@non_holy6286 Жыл бұрын
  • Привет, подскажи, что у тебя за монитор?

    @user-sf6um2oo4s@user-sf6um2oo4s11 ай бұрын
  • хороший опыт, всем ребят советую сдать для начала OCP17 экзамен по java, а потом получать "коммерческий" опыт. Я на собственном примере понял , что Oracle экзамен это лучшая подготовка к собеседованию и даёт не поверхностное пониманиe того как работает java. Всем мира )

    @ivananna6616@ivananna66169 ай бұрын
  • Спасибо! Но прошу, выравнивай звук на отбивках. Очень жестко по ушам бьет.

    @DartPeredoz@DartPeredoz Жыл бұрын
  • Если мы говорим об общем случае (в Java возможно сценарий не воспроизводится) для цикла в графе ожиданий (deadlock) достаточно одного потока: Например: mutex_lock(m); mutex_lock(m);

    @konstantinkazartsev1633@konstantinkazartsev1633 Жыл бұрын
  • Максим, добрый день! Может вопрос не сюда))) Но подскажите плиз, когда Вы планируете вести курс Java Pro в Hillel?

    @mayanilga8665@mayanilga8665 Жыл бұрын
    • Мая, приветствую)) Точно буду занят текущей группой до НГ. А дальше еще не знаю. Лучше это уточнять в учебном отделе. Они ведают планированием) Спасибо за интерес. Балуете меня ☺️

      @Jetbulb@Jetbulb Жыл бұрын
  • Спасибі за точний та остаточний погляд на війну. І величезне дякую за вашу працю. Стежу за вами вже рік, продовжуйте в тому ж руслі)

    @vitaliiboichuk8287@vitaliiboichuk8287 Жыл бұрын
    • Дякую за фідбек. Будемо працювати і далі 🇺🇦 🙂 Респект!

      @Jetbulb@Jetbulb Жыл бұрын
  • Постепенно разница между джуном и мидлом размывается. Ждем синьеров с двумя годами опыта.

    @racot7145@racot7145 Жыл бұрын
    • Господи! Причём тут год или два! Ты - идиот!

      @yuriytheone@yuriytheone Жыл бұрын
    • Разница между джуном и мидлом - в опыте работы. Джун знает в теории и немного пет- практики, а мидло сталкивается на практике с этими знаниями + ускоренном темпе ознакамливается с действующим приложением. (кафка, рэббит, проекции, предикаты, критерия, кэши первого - второго уровня, лэйзи лоадинг + эксепшен, интегрейшен флоу, разные джобы, мапперы и проблемы с маппингом, перформанс проблемы, пути их решения, поиск ботлнеков и их решения, саппорт реквесты - работа с бизнес флоу, работа с внешними системами, если повезёт, то дадут ещё и облака потрогать)

      @petrivanov1565@petrivanov156510 ай бұрын
  • Я ищу работу Java Junior и то без проблем бы рассказал бы о HashMap

    @OlegNoskov-lv4ku@OlegNoskov-lv4ku Жыл бұрын
  • Поведение Safe Point в Nested транзакции, не ясно когда и в каком месте он должен создастся чтобы к нему откатится? Я так понимаю транзакционность методов на выполнение всех операций внутри него атомарна, либо выполнятся все либо не выполнятся, а в Nested мы дополнительно через Safe Point указываем до какого места откатится?

    @askhat1654@askhat16542 ай бұрын
  • Ещё можно про lost update расскать.

    @MrCosmicAlex@MrCosmicAlex Жыл бұрын
  • Еще небольшая штука с Хэшмап и преобразованием листа в красно-чёрное дерево. 1. При удалении элементов мапа может обратно дерево превратить в лист (по умолчанию 6). 2. Есть минимальный лимит при котором мапа вообще будет превращать лист в дерево (по умолчанию 64). + Был бы хороший вопрос о ребалансе, e.g. что это O(n) операция, которая должна пройтись по всем парам ключ-значение в мапе, пересчитать хэши от ключей и "перетасовать" значения.

    @illiaslobozhanin6285@illiaslobozhanin6285 Жыл бұрын
  • Про интерфейс Мар. Там идет 8 - 1 . То есть 7. Тогда и идет перераспределение

    @reptrept@reptrept Жыл бұрын
  • "@Transactional создает обертку с try catch " - возможно блок трай кетч там и присутствует, но суть не в этом. суть именно в создании транзакции на уровне бд.

    @vlera4198@vlera41984 ай бұрын
  • Спасибо за видео, очень полезно обновить свои знания покрытые толстым слоем пыли)) PS. Отличный плакат за спиной

    @vadympylypchenko5801@vadympylypchenko5801 Жыл бұрын
  • thanks

    @JohnJohn31595@JohnJohn315959 ай бұрын
  • Спасибо за видео. Но я не сказал бы, что это мидл уровень. Сейчас на джунов это все спрашивают. Это еще не было индексов, функционального программирования, докеров, кафки, кубернетисов, sql-запросов. На практике не встречал скоупы реквесты, сессии, да даже протатайп на практике не попадался. Интересно что это за случаи таки когда их используют. А так ответил на все вопросы без подготовки, конечно, не так красиво как автор, но считаю, что даже если и 20 лет в программировании, то всеравно к собеседованиям надо готовится, так как это отдельный скилл по их прохождению. И все вопросы были стандартные, которые задают на собеседованиях.

    @user-hq6nm2tf6j@user-hq6nm2tf6jАй бұрын
  • Спасибо за видео, сам сейчас готовлюсь к. собеседованиям, было полезно. Но некоторые вопросы показались довольно странными. Например, про количество каких-то там бакетов (или их размер) в HashMap. Во-первых, это всего лишь детали реализации и полагаться на них и заострять на них внимание программисту не положено (т. к. это зависит от реализации JVM под конкретную платформу). Во-вторых, это больше похоже на какие-то вопросы, изучаемые зубрежкой специально для собеседований и нигде не нужные на практике, т. е. бесполезные знания, которые благополучно забудутся через неделю после устройства на работу, Ну, или может быть они и нужны, но в очень узком кругу задач, где ты и сам скорее всего реализуешь свою HashMap, если производительность настолько критична. Мне кажется, что лучше спрашивать кандидатов в целом про умению выстраивать абстракции и использовать какие-то принципы или паттерны, нежели про такие мелочи. А то потом такие "эксперты" по языку такие макароны накатают, что после них хоть заново переписывй. Вроде умные ребята, но свой код правильно организовывать совершенно не умеют. Сам я никогда не проводил собеседования, поэтому опыта у меня в этом можно сказать не очень много, но глядя на некоторых коллег, с кодом которых мне приходилось работать, мне кажется это более правильный подход. )

    @sergiocoder@sergiocoder11 ай бұрын
    • я для себя понял что устраиваться на работу и работать это 2 разные вещи. когда готовишся к интервью можно заыть чем ты там занимался и просто гуглить что спрашивают на интервью и учить. после трудоустройства можно выдыхать и все это успешно забывать, а потом по новой учить)) я часто ради прикола спрашиваю знакомых синьоров и тимлидов и про хэшмапу и про SOLID - большинство не знают)) а я знаю, и при этом они более крутые девелоперы чем я

      @vlera4198@vlera41984 ай бұрын
  • Здравствуйте, подскажите: я не знал, что тремпель - это вешалка, но пользовался им; Вопрос: если я не знал термина полимлрфизм, но в работе использовал механизм так называемый … то это говорит, что спрашивать термин нет смысла? Спасибо

    @for_find_me006@for_find_me006 Жыл бұрын
    • Привет ))) Вопрос очень неоднозначный и холиварный, но попробую ответь: «Если человек успешно применят какой-либо прием и даже не подозревает об этом. То это круто! Для меня это сигнал, что человек думает и может сотворять. Однако, есть и другая сторона медали. Сложно назвать человека инженером, если он применяет что-то фундаментальное из своей отрасли, но сам того не подозревая» Это тонкая грань. Одно и второе имеет место быть и вовсе не может характеризовать человека как плохо сотрудника. Это вопрос конкретной позиции и требований выдвигаемых этой позицией.

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb Что можно порекомендовать отвечать, когда уже долго работаешь и теория выветрилась? Так не хочется повторно учить слова, а читать знакомое претит

      @for_find_me006@for_find_me006 Жыл бұрын
    • @@for_find_me006 Как говорится: "Рыбак рыбака видит из далека". Так и тут. Опыт видно из далека. Человек с опытом уже говорит и обосновывает вещи иначе. Я к тому, что притворство очень легко изобличить. Если не знаешь, то это будет видно практически сразу. Дело же не только теории и терминологии

      @Jetbulb@Jetbulb Жыл бұрын
  • работаю долго на первой работе скоро будет почти 15 лет... получается больше как поддержка базы данных и данной системы (отчеты всякие большую часть занимают) не скажу что совсем ничего не интересовался интересовался, читал книги по c++, java, ковырялся в разных проектах (unreal engine, прочие) делал приложения на android где backend на php простенький писал теперь думаю работу другую найти уже как java-разработчик придется идти как начинающий, но даже тут зарплаты могут быть выше чем у меня сейчас по сравнению с c++, в java порядок считай до всяких обновлений в c++ там был ужас, что с stl, что с прочими стандартными библиотеками понятно что с++ нужный язык, на нем саму jvm написали и прочее но он обычно востребован в серьезных конторах, а их немного уже тошнит ходить на работу и этим заниматься... а найти новую еще придется пытаться искать сейчас ковыряю в VueJs, Spring Boot

    @steplerman@steplerman Жыл бұрын
  • Тут ещё важно добавить про уровни изоляции транзакций, что чем ниже уровень изоляции транзакции, тем быстрее они работают, потому что меньше механизмов блокировок задействовано. Если у вас высоконагруженое приложение, и в некоторых местах, если конечно такие есть, можно пожертвовать изоляцией в пользу быстродействия, то почему бы и нет?

    @alexplishkin5811@alexplishkin5811 Жыл бұрын
  • Щось не зрозумів про додавання елемента при колізії в HashMap. Хіба він не додається в кінець списку в бакеті?

    @voalik@voalik Жыл бұрын
    • Елементи в бакет додаются в початок списку. Що саме незрозуміло?)

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb Якщо, є три value наприклад: object1, object2, object3. То при колізії їх ключів, порядок в бакеті буде object1 -> object2 -> object3. Так? Бо якщо додавати на початок списку, то виглядає так, наче порядок має бути такий object3 -> object2 -> object1

      @voalik@voalik Жыл бұрын
  • Максим, а как можно к тебе попасть на собеседование (junior position)?

    @alex0destroyer@alex0destroyer Жыл бұрын
    • Привет ) Можешь написать сюда t.me/iPrody_Online

      @Jetbulb@Jetbulb Жыл бұрын
  • Хотелось бы попробовать такое тестовое собеседование. Считаю себя мидлом, но, кажется, это не совсем так)

    @viktorplatonov3941@viktorplatonov3941 Жыл бұрын
    • Детали интервью: что выбрать, как попасть и прочее ... по ссылке iprody.com/interview :)

      @Jetbulb@Jetbulb Жыл бұрын
  • Прошел несколько собесов на джуна...вопросы абсолютно те же. Незнаю хорошо это или плохо

    @nikky4199@nikky4199 Жыл бұрын
    • Мне и на синьора такие же вопросы как в джуновских разборах собесов вопросы задают часто.

      @ASMRdwarf@ASMRdwarf Жыл бұрын
  • Переменная которая отвечает за увеличения размера Map называется DEFAULT_LOAD_FACTOR, а не THRESHOLD

    @user-nq2ng4er7t@user-nq2ng4er7t2 ай бұрын
  • Прикольно. Пока досмотрел до 33 минуты - ответил на все вопросы, ставя на паузу) К слову, про скоупы бинов можно добавить, что есть еще кастомный и thread (подключаемый отдельно и поэтому особо не используемый). Жаль, что я джун без опыта коммерческой разработки и, соответственно, нафиг никому не нужный.

    @andrey1266@andrey1266 Жыл бұрын
    • Надо верить в себя)) И все получится!

      @Jetbulb@Jetbulb Жыл бұрын
  • Насколько мне известно, «одеревенение» списка в бакете происходит не только при переваливании количества нод за 7, но и при условии что число бакетов больше 64

    @user-dw7sc7iz2z@user-dw7sc7iz2z Жыл бұрын
    • Именно так

      @maxnone2066@maxnone2066 Жыл бұрын
    • не так, за 8

      @alex-petrov@alex-petrov Жыл бұрын
  • про @Transactional: а как же TransactionInterceptor, TransactionManager, EntityManager причем тут прокси и тд? Разве не этого ждешь при вопросе, как работает?

    @Vadim_Ilin@Vadim_Ilin Жыл бұрын
    • Это всего лишь один из вопросов. Не стоит из него делать "центрирование". Конечно же есть и другие вопросы и они тоже задаются.

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb я просто думал) нужно об этом рассказывать, когда задается такой вопрос)

      @Vadim_Ilin@Vadim_Ilin Жыл бұрын
  • Привет! Я разбирала хэшмапу, и не понимаю, почему обязательно один элемент должен быть в бакете, там же список, знатоки, помогайте)

    @user-xv4ke3tp6y@user-xv4ke3tp6y Жыл бұрын
    • Чтобы время было О1.Тк он как только вычислит бакет,сразу заберет элемент.Если будет много элементов выйдет О N.Один элемент это не обязательно,это чисто обеспечение условий скорости О1

      @goggitoggi3510@goggitoggi35103 ай бұрын
  • Я бы хотел попробовать себя на собеседовании и получить рекомендации, что нужно подтянуть и что вообще делать. Стоит ли мне пытаться искать работу или еще поучиться.

    @oopsoops9040@oopsoops9040 Жыл бұрын
    • Тогда надо на собеседование записываться) Мы как раз проводим мок-интервью. Если интересно, детали можно посмотреть interview.jetbulb.com/

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb чет у вас страница с интервью упала((

      @oopsoops9040@oopsoops9040 Жыл бұрын
    • @@oopsoops9040 спасибо) Сейчас проверим

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb не получается получить доступ к сайту всё равно)

      @oopsoops9040@oopsoops9040 Жыл бұрын
    • @@oopsoops9040 Все работает, несколько раз проверяли. Ссылка действующая)

      @Jetbulb@Jetbulb Жыл бұрын
  • То чувство, когда ещё не устраивался на первую работу, но, в принципе, уверенно отвечаешь на 70% вопросов. PS: Там про @Transactional можно глубже даже рассказать про TransactionManager, что есть такое. Благодаря какой либке работает создание проксей и всё такое.

    @user-ib8rv1vr4r@user-ib8rv1vr4r Жыл бұрын
    • @@user-et2hp5en2f Орууу, последние предложения как по больному)))))) Но респект автору ролика, часто и матчасть спрашивают (зачем-то) и алгоритмы, мир собесов и мир реальной работы, параллельны, к сожалению.

      @theAntoshka@theAntoshka Жыл бұрын
    • Шел 2023 стеденты без опыта проходят собесы на мидла :)

      @MrRomanvideo@MrRomanvideo Жыл бұрын
    • @@MrRomanvideo Уже с опытом.)

      @user-ib8rv1vr4r@user-ib8rv1vr4r Жыл бұрын
  • Кто-то использовал трисет в проекте?

    @user-pq9zz8gs4s@user-pq9zz8gs4s5 ай бұрын
  • Про хэшмап перепутал, назвал случай неправильно реализованноых иквалз хешкод коллизией, когда О(н), когда хешкод возвращает константу.

    @MrRomanvideo@MrRomanvideo Жыл бұрын
  • а как же Not_Supported, 7 уровень в пропогации транзакции?

    @liberatdoleg5965@liberatdoleg5965Ай бұрын
  • На Middle не претендую, но то чувство, что я будучи Джуном справился бы лучше на собеседовании)

    @user-le9nf3kg1g@user-le9nf3kg1g Жыл бұрын
    • что не скажешь про джуновскую практику )

      @engend3405@engend3405 Жыл бұрын
  • А есть в голове счётчик расстройств при собеседовании?) Если Макс за собес расстроился более N раз, то кандидат не подходит.

    @petrivanov1565@petrivanov15654 ай бұрын
    • Ахах, просто убил)))

      @Jetbulb@Jetbulb4 ай бұрын
  • TDD - классная штука. Я с ней сталкивался и кое что делал по ней. Есть только один ОЧЕНЬ ВАЖНЫЙ момент: это было не на работе. Поэтому если на собеседовании меня спрашивают про TDD, то с вероятностью 80% это чисто для выноса моего мозга, а не потому, что в проекте реально это используется.

    @ymranaissur@ymranaissur Жыл бұрын
    • А как ты можешь реально проверить, что на проекте TDD не используется?)

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb например, начать в нём работать.

      @ymranaissur@ymranaissur Жыл бұрын
  • В моментах очень высокомерно , при всем том , что на некоторые вопросы товарищ сам отвечает посредственно)

    @user-bt4ew5cc6u@user-bt4ew5cc6u10 ай бұрын
  • Вакансия еще открыта? Поделитесь ссылкой?)

    @pealmanable@pealmanable Жыл бұрын
    • Уже закрыли)) Нашли подходящего кандидата, а точнее кандидатку

      @Jetbulb@Jetbulb Жыл бұрын
    • @@Jetbulb неплохой феминитив

      @ioanntrapeznikov@ioanntrapeznikov Жыл бұрын
  • Очень здорово и полезно, но со звуком беда :( видно, что микрофон хороший, но его надо чуть поднастроить, чтобы по ушам голос не бил. И нормализации в целом очень не хватает

    @enjoyit8499@enjoyit8499 Жыл бұрын
    • В остальном, огромное спасибо. Респект и уважуха :)

      @enjoyit8499@enjoyit8499 Жыл бұрын
    • Спасибо за фидбек))) Будем работать и дальше!

      @Jetbulb@Jetbulb Жыл бұрын
  • Corner case - крайний случай, а не угловой :) ох уж эти мысли на другом языке 😁

    @user-qx3jt8fw1v@user-qx3jt8fw1v Жыл бұрын
    • 😅👍

      @Jetbulb@Jetbulb Жыл бұрын
  • А еще можно про vector спросить. Как, вы не знаете, как работает vector? Ай-ай-ай:))

    @user-gk2kn3ri7z@user-gk2kn3ri7z Жыл бұрын
  • При пессимистичной блокировке запрещены апдейты, а читать можно вполне

    @instl1117@instl11172 ай бұрын
  • Как всегда супер контент!!! кстати заметил что вопрос о коллекциях там сет лист мапа, иквлс хешкод и т.д. почти всегда идут со сторон работ с памятью и гарбдж калекшн)) что бакет что хеш их размешение напрямую относится к памяти и доступ к обджектам или линкам, сравнение по иквлс хешкод тоже зависит на прямую от памяти и ГК почему тогда сразу не спросить как хронятся value и reference в памяти и как они чистятся их цикл, именно неверное сравнение обектов в памяти приводит к ошибке а не то какой интерфейс ти взял за основу скорость обработки практически одинаков у всех O(log n), O(n), O(1) по дефолту а вот шаг, итерация или там паралели в стримах сильно меняют картину.

    @anatolii720@anatolii720 Жыл бұрын
  • Макс, ты не рассказал для чего вообще TreeSet нужен! Что у него есть методы first(), last(), lower(E e), higher(E e). Которых нет в других сетах.

    @EpoxyArt@EpoxyArt2 ай бұрын
KZhead