Разбор реального собеседования | Java Middle | Микросервисы | Базы данных | Spring | Docker Jetbulb

  Переглядів 18,546

Jetbulb

Jetbulb

День тому

Техническое собеседование на позицию Middle Java Developer.
Иногда приходится проводить или проходить собеседование без каких-либо конкретных требований к кандидату и сведений о проекте. В таком случае выдвигается общий список требований, без учета специфики проекта или команды. Одними из таких требования являются технологии которые необходимо знать: Java, Spring, PostgreSQL, Docker, Gradle.
Такой подход вовсе не означает, что компания плохая, подозрительная или же не знает, что делать с потенциальным кандидатом. Компания просто хочет найти потенциального сотрудника и усадить его за проект, что будет актуален в момент onboarding.
Вот и у нас точна такая ситуация. Компания ищет сотрудника уровнем Middle Java Developer. Нам предстоит задать вопросы, получить на них ответы и разобраться какой шеврон можно присудить кандидату.
Погнали!
Программа
00:00 Описание компании и позиции
02:08 Нововведения последних версий Java
05:50 Java Memory Model, Heap, Stack, Object
08:00 Class Object
14:20 Коллекции, Collections Framework, Fail-fast, Concurrency
18:10 Многопоточность, Happened-before, коллекции, синхронизация
22:12 Spring Boot, стартеры, Spring BOM, валидация данных, Spring Web
30:38 Микросервисы, Docker, Monitoring, Observability
39:40 Выводы
Получи реальный опыт решения коммерческих задач в Agile команде
до 6 человек iprody.com/
Запись на обучение и собеседование:
iprody.com/interview
t.me/iPrody_Online
Мы в социальных сетях:
t.me/jetbulb
/ jetbulb

КОМЕНТАРІ: 91
@faniskhalikov9736
@faniskhalikov9736 Місяць тому
Отличный формат! Очень ёмко и без воды. Спасибо!
@donlinoleum831
@donlinoleum831 3 місяці тому
Крутейший контент! Все по делу и интересно смотреть)
@walcermelodia
@walcermelodia 3 місяці тому
Как всегда огонь! Продолжай в том же духе)))
@user-uq9jp1wk4f
@user-uq9jp1wk4f 3 місяці тому
Классные объяснения!Спасибо!
@baxiskerimzade2690
@baxiskerimzade2690 3 місяці тому
Спасибо,хочется больше материала для мидлов,как и куда )
@Roman-ej3xg
@Roman-ej3xg 3 місяці тому
Отличная лекция чтобы шлифануть мелкие пробелы в знаниях! Макс сделайте выпуск по криптографии, PKI, симметрия асимметрия, соль, OAuth да и вообще интересно что нового и актуального сейчас в этом направлении.
@kolabaka6851
@kolabaka6851 3 місяці тому
Спасибо, хоть понятно мало новичку, но ваши видео невероятно полезны
@SinDat
@SinDat 16 днів тому
ничего не понял, но очень интересно?)
@user-fy8vj7el5q
@user-fy8vj7el5q 28 днів тому
Ох супер, прямо перед интервью посмотрел видос и половина этих вопросов была
@mastermaster293
@mastermaster293 Місяць тому
О, яке круте відео! Можно ще таких побільше
@user-se4gg9sk4b
@user-se4gg9sk4b 3 місяці тому
Спасибо
@alias_5800
@alias_5800 2 місяці тому
Про нововведения: стоит сказать про виртуальные потоки и pattern matching в свитче. Думаю, достаточно
@JohnJohn31595
@JohnJohn31595 Місяць тому
thank you!
@user-gk3ep5mq9r
@user-gk3ep5mq9r 3 місяці тому
Сегодня смотрел что нового в 21. Улучшили свитч, добавили виртуальные потоки. Ещё что-то по мелочам
@twobeerornottwobeer5973
@twobeerornottwobeer5973 2 місяці тому
У нас на работе самая последняя java, вот только пишем мы не на спринг
@user-oi9yf8ve3i
@user-oi9yf8ve3i 2 місяці тому
Собеседование на мидла, выглядит как мое, когда меня на Джуна брали 😀
@user-sm9ck7wc8c
@user-sm9ck7wc8c 3 місяці тому
благодаря Escape Analysis и скаляризации из Java 6, объекты, которые являются исключительно локальными и не возвращаются за пределы выполняемого метода, сохраняются в стеке
@zakharka3938
@zakharka3938 2 місяці тому
Скаляризация это оптимизация JIT-компилятора, которая позволяет в принципе не создавать объект при соблюдении определенных условий. А раз объект (как единое целое) не создается, то и хранить его не надо ни в стеке, ни в куче. Таким образом это работает только при соблюдении определенных условий и только при JIT-компиляции, которая запускается не для каждого метода.
@Implodeside
@Implodeside 3 місяці тому
Топ контент, действительно алмаз среди бисера скамеров аля, как войти в айти за 2 секунды.
@user-mz9oz1oc3l
@user-mz9oz1oc3l 3 місяці тому
Максим, спасибо большое. Интревью на мидла меньше всего в интернете: на джуна дофига, на синьера тоже есть а мидл ну извините))
@user-bt9hx3ik6e
@user-bt9hx3ik6e 2 місяці тому
спасибо большое за видео, как всегда лаконично и подробно. можно ли какой-то познавательный видос по вебсокетам(спринговым и не спринговым) и grpc? интересно было бы узнать, с какими технологияим лучше работать в случае с вебсокетами
@Jetbulb
@Jetbulb 2 місяці тому
Спасибо за идею и то, что смотришь нас. Обязательно рассмотрим и что-то придумаем.
@fnmby
@fnmby Місяць тому
отдельный лайк за картинку на заднем плане
@bratatatata
@bratatatata 2 місяці тому
👍👍👍👍👍👍
@user-007-1
@user-007-1 3 місяці тому
Вроде бы не сложное собеседование, а где искать такие вакансии?
@TheJabberwahh
@TheJabberwahh 3 місяці тому
Только и'теребл :) ударение на первый слог. Так же как в нулэбл например.
@user-lz2ob9vf7v
@user-lz2ob9vf7v 2 місяці тому
Макс, что думаешь на счёт faang-like подхода к собесам, когда есть тех скрин + панелька (алго + сис диз)? Последнее время прихожу к выводу, что такой подход более прагматичный, да и мир не крутится одной Java, можно и с чем-то другим поработать
@Jetbulb
@Jetbulb 2 місяці тому
Это классный подход, когда компания действительно ведет серьезную разработку продуктов, которые обслуживают в буквальном смысле слова весь мир. Например, аэронавтика, космонавтика, медицина, энергия, навигация и так далее. Поскольку решение таких задач ставят перед разработчиков требования выходящие за пределы кода. Тогда продукты будут качественными и главное безопасными. В остальных случаях, это избыточность, бахвальство и пустая трата средств компании на поиски крутых ребят для разработки одностраничников и простых CRUD
@user-lz2ob9vf7v
@user-lz2ob9vf7v 2 місяці тому
Крутой ответ, спасибо. Да, и правда, зависит от компании и её нужд
@user-gl1kd2ds4g
@user-gl1kd2ds4g Місяць тому
Где то читал про менеджера в FAANG, который говорил что они специально придумывают такие сложные интервью, чтобы сотрудники были привязаны к их конторе. FAANG не предоставляют лучших зарплатных/рабочих условий, так что давят "элитарностью" и привязанностью сотрудников через сложный процесс приема
@user-tk7nh1jw3y
@user-tk7nh1jw3y Місяць тому
​@@user-gl1kd2ds4g Наверное ещё играет роль то что в FAANG шанс попасть на интересный/сложный проект значительно выше чем в большинстве других контор. Всё-таки не все программисты хотят всю жизнь катать спринговые бины между фронтендом и базой данных хоть и за бОльшие деньги. К тому же строчка в резюме что ты успешно проработал в FAANG продолжительное время очень благотворно влияет при смене работодателя.
@alexandr6055
@alexandr6055 2 місяці тому
Ты немного затронул реактивщину. Как считаешь, есть ли смысл начинать изучать её, если в джава 21 проект лум по сути ставит целью отказаться от реактивного программирования с помощью легковесных вирт. потоков?
@Jetbulb
@Jetbulb 2 місяці тому
Пока Virtual Thread не отполировали, я бы не списывал реактивщину. Однако, есть у меня соображения что Project Loom все-таки может ее нагнуть. Но как и любой технарь скажу, что надо все смотреть в сравнении. Очень рекомендую почитать приложенную статья. Там четко показывается, что Project Loom не панацея и реактивщине есть место. Но также, что всему есть свое место и применение. dzone.com/articles/demystifying-virtual-thread-performance-unveiling
@igormyatlyuk503
@igormyatlyuk503 3 місяці тому
Макс, классные и стильные очёзы ;D где такие приобрести?
@Jetbulb
@Jetbulb 3 місяці тому
Приезжай в Прагу, тут не проблема найти)
@cucu2212
@cucu2212 Місяць тому
на каком сайте такие обявления искать?
@vasylmoshun8241
@vasylmoshun8241 2 місяці тому
Hello Max, Can you give a link where you explore positions your blog ???
@Jetbulb
@Jetbulb 2 місяці тому
Hi, for instance www.jobs.cz/ www.glassdoor.com/
@artemivanchikov
@artemivanchikov 2 місяці тому
Как все это запомнить и держать в голове есть совет? Вроде несколько раз прочитал, разобрался, прошло время и уже не можешь ответить на этот вопрос. Несколько раз начинал учить с 0 потому что понимаю что знания базы очень - не очень.
@Jetbulb
@Jetbulb 2 місяці тому
Надо применять. Просто читать и\или учить не имеет смысла. Практика лучшая память, поскольку она заставляет нас претерпевать боль и думать, как ее избегать
@vitamin2845
@vitamin2845 2 місяці тому
Привет, Макс. Реально ли устроится куда-то зарубеж без дрочева на алгоритмы, а собеседоваться на то, что реально используется в проекте?
@Jetbulb
@Jetbulb 2 місяці тому
Привет! Конечно реально. Я тому живое подтверждение. Собеседование в компанию при релокации, именно таким и было. Вопросы были по сути проекта
@prayer4675
@prayer4675 Місяць тому
COPY и ADD в Dockerfile отличаются ещё и тем, что ADD распаковывает архивы, то есть не просто копирует.
@walcermelodia
@walcermelodia 3 місяці тому
Первый!
@prayer4675
@prayer4675 Місяць тому
StructuredTaskScope - конечно интересная фича, но она находится в preview даже в недавно вышедшей Java 22. То, что человек нахватался базвородов новых фич не говорит о его способностях к саморазвитию почти ничего. Довольно часто такие люди не знают некоторые базовые вещи. Например о контракте метода equals()
@SlevySoddik
@SlevySoddik 28 днів тому
странно что в вопросе о JMM ни разу не спросили про связь happens before и байткод
@kirillkamelyazev9559
@kirillkamelyazev9559 3 місяці тому
это же вопросы для джуна нет?)
@user-gt4ps4ph6b
@user-gt4ps4ph6b 2 місяці тому
а надо рассказывать про инкубатор фичи, когда спрашивают про «что нового в java?», то есть structured concurrency его вроде пока как бы нет в java? ну то есть оно может откатиться в теории и код перестанет компилиться.. и вообще немного не понимаю насколько хороший тон использовать такие фичи в проекте. объясните плиз кто понимает)
@Jetbulb
@Jetbulb 2 місяці тому
На собеседовании можно говорить и рассказывать все что хочется в рамках контекста вопроса. Отметить заинтересованность и познания в «инкубаторе», лишним не будет. В продакшене надо использовать только stable released feature
@ivan_xalie
@ivan_xalie Місяць тому
33:24 Уточнение: имеется в виду не команды docker, переданные контейнеру, а команды в Dockerfile
@hugayda
@hugayda Місяць тому
Послушал и понял, что занимая должность синьора я еле еле джуниор.
@tomskiy1700
@tomskiy1700 2 місяці тому
Мне кажется, сейчас любой ката-самозванец легко порвет подобный собес, расскажет про сборщик мусора столько, сколько не каждый сеньор знает. Такие вопросы на зп в 4,5 кБакса. Видимо собес был старый.
@PetrKomarov
@PetrKomarov 3 місяці тому
В чём преимущество использования var? Просто экономить две секунды на запись интерфейса/класса? Но при этом когда читаешь код нужно смотреть что там тебе метод вернёт, не понимаю в чём профит
@user-xz7ps7hn1g
@user-xz7ps7hn1g 3 місяці тому
Если для понимания кода нужно иметь запись Map map = fillMap(clientIds); то код написан не очень, можно переименовать метод, который возвращает значение, можно переименовать переменную. var itemsByClient = fillItemsMap(clientIds); В большинстве случаев var экономит время и не добавляет дополнительной когитивной нагрузки
@limbo11111
@limbo11111 3 місяці тому
херня это всё, вкусовщина, вместо того чтобы сразу увидеть тип ты будешь прыгать по методам, где не сразу будет очевидно, что возвращается, всё нужно использовать с умом@@user-xz7ps7hn1g
@petrivanov1565
@petrivanov1565 3 місяці тому
если у тебя есть класс с именем в 100 символов, то проще написать var при объявлении переменной. IDEA в реалтайме тебе рядом заботливо напишет, что за тип у этого var.
@zakharka3938
@zakharka3938 3 місяці тому
@@user-xz7ps7hn1g Вы привели хороший пример того как не надо делать. Имена fillMap и fillItemsMap подразумевают что надо заполнить имеющийся объект типа Map. Таким образом вызов fillMap(clientIds) читается как заполнить мапу clientIds, но при этом совершенно неочевидно чем заполнить и что может вернуться в качестве результата, т.е. var тут только затрудняет чтение и так непонятного кода. А вот в таком контексте: var map = createMap(clientIds) или var map = createItemsMap(clientIds), использование var уже уместно т.к. не затрудняет чтение.
@zakharka3938
@zakharka3938 3 місяці тому
Если из контекста неясно какого типа результат, то использовать var не стоит. Например, хороший пример использования: var arr = new ArrayList() или var userList = loadUserList() потому что здесь из контекста ясно c какими типами имеем дело (хотя во втором случае есть шанс ошибиться).
@user-mb1dj3pk2d
@user-mb1dj3pk2d 3 місяці тому
Это собеседование больше на мидл-, мидл или мидл+?
@Jetbulb
@Jetbulb 3 місяці тому
Скорее что-то между начинающим мидлом и устоявшимся. Но это все субъективно и очень зависит от компании, проекта и собеседущего
@petrivanov1565
@petrivanov1565 3 місяці тому
Как то однобоко выглядят собесы. Расскажи то, что можно загуглить за 5-10 сек. Имхо, не менее важной дисциплиной является "Решать нерешаемое" и посмотреть за алгоритмом мышления человека. - к вам пришли с back 2 back интеграции с 401 ошибкой. Ваши действия. - у вас есть X джоб, которые ранаются N раз каждый час, все бегают на одной бд. Джобы падают в рандомных местах. Ваши действия. - у вас в бд появилось 3 млн записей апдейта для сущностей, которых у вас нет. Ваши действия. - у вас лагает бд. Ваши действия. - вы столкнулись с проблемой, на которую не можете найти готового решения, ваши дейтсвия.
@user-tk7nh1jw3y
@user-tk7nh1jw3y Місяць тому
На всё один ответ - гугулить
@svetlanafedorova654
@svetlanafedorova654 17 днів тому
Хоть бы раз такие легкие вопросы задали на собесе, чаще всё начинается какой-нибудь Кафкой, базовую базу вообще не спрашивают на мидла
@a.egorov85
@a.egorov85 2 місяці тому
Это реально вопросы на позицию мидла? Я в основной массе могу на это ответить. Но как попасть на собеседование если нет опыта?!
@neketavorotnikov6743
@neketavorotnikov6743 2 місяці тому
Нарисовать
@maksgalik8376
@maksgalik8376 2 місяці тому
Добрый день, можно пройти собеседование на эту вакансию? )
@Jetbulb
@Jetbulb 2 місяці тому
Привет! Можно)) Приезжай в 🇪🇺 с правом на работу и врывайся 😎
@maksgalik8376
@maksgalik8376 2 місяці тому
@@Jetbulb уже в eu )
@Jetbulb
@Jetbulb 2 місяці тому
@@maksgalik8376 Все ближе и ближе, от общего к деталям)) Тогда, тебе необходимо перебраться в Прагу. Как с этим обстоят дела?))
@maksgalik8376
@maksgalik8376 2 місяці тому
@@Jetbulb ​ @Jetbulb был в праге 25 декабря и город показался дорогим, возможно потому что был как турист, особых проблем нету, нужно просто понимать что за проект )
@Jetbulb
@Jetbulb 2 місяці тому
@@maksgalik8376 Город дорогой только в недвижимости. В остальном, Восточная Европа. Еда, вещи и досуг недорогие)
@dgvgfg
@dgvgfg 2 місяці тому
почему такие простые вопросы, в реальном собесе чуть не то ответил уже по ведущему собес видно, что он тебя выше джуна не оценивает и в дальнейшем идёт отказ( щас на миддла спрашивают и чуть ли как кубернетес на домашнем компе развернуть и как спринг под капотом работает с этими фабриками, которые реально не думаю что где то часто используются. И нельзя просто сказать что это прокси ну потребуется и запилим логику какую надо.
@user-gl1kd2ds4g
@user-gl1kd2ds4g Місяць тому
Ну как поднять кубер локально - довольно же простой вопрос и для джуна. Если есть докер - делается одним кликом) А насчет внутреннего устройства спринга - аналогично про устройство памяти в джаве. Знать как работает инструмент изнутри. Вот только знания про устройство памяти в джаве вряд ли когда либо будут полезны, а сделать парочку своих аннотаций в спринге иногда может потребоваться. Чтобы разбираться в этом достаточно изучить доклад "Спринг-потрошитель"
@iKorvik
@iKorvik 10 днів тому
Если на любом интервью кроме джуна спрашивают методы класса Object, можно ничего хорошего от интервью не ждать, с торой стороны какой-то задрот теории, неоднократно убеждался в этом. Собеседуют на сеньорскую позицию и спрашивают такие вопросы...
@levvv1000
@levvv1000 2 місяці тому
Объект может и не аллоцироваться в хип при определенных условиях, см. scalar replacement оптимизацию, можно почитать в блоге у Шипелева. Так что до ответа «все, что связано с объектом хранится в хипе» душный интервьюер может и докапаться
@user-zg5cu7ij9f
@user-zg5cu7ij9f 2 місяці тому
открыл пересмотреть на компе, только сейчас заметил картинку на заднем плане с кораблём😁👍
@user-jk4lh4gw6x
@user-jk4lh4gw6x Місяць тому
И это и есть мидл? Походу мне сразу на мидла надо 😂😂
@user-hh1ez8mh9v
@user-hh1ez8mh9v 2 місяці тому
Говорите помедленнее
@alenache1
@alenache1 3 місяці тому
есть ощущение, что половина мидлов и часть синьоров в России такие собесы бы не прошли. До сих пор есть много разрабов, которые так и не умеют в микросервисы и докер. Реально сам видел в чатах как люди с 5-8 летним опытом жалуются, что если нет опыта в м/с и CI хрюши скипают их.
@zakharka3938
@zakharka3938 3 місяці тому
Потому что Java это не только микросервисы. И даже если вы работаете над продуктом с микросервисной архитектурой, далеко не факт что вы будете напрямую работать с архитектурой.
@alenache1
@alenache1 3 місяці тому
@@zakharka3938 1) понятно, что проекты разные, речь о том, что сейчас тренд на микросервисы, при этом на рыночке не умеющих в м/с БОЛЬШЕ, чем умеющих, поэтому при прочих равных скилах выбор делается в пользу умеющих 2) мы говорим о синьорских и лидовских грейдах, поэтому предполагается, что если она работали на проектах с м/с, то были в курсе что и как там работает 🙂
@alias_5800
@alias_5800 2 місяці тому
​@@zakharka3938думаю за 5-8 лет не прочитать ни одной книжечки по мс архитектуре это не профпригодно
@tomskiy1700
@tomskiy1700 2 місяці тому
не верю, что сеньор с 5-8 летним опытом не сможет осилить базу по микрам и докеру. тут же вопрос про самообучаемость скорее. если не может, то нафиг он такой нужен. поэтому, все честно, мне кажется.
@user-hr2dk6jy1k
@user-hr2dk6jy1k 2 місяці тому
лучше не уметь в микросервисы, но уметь в модули, чем наоборот
@donpedro2125
@donpedro2125 14 днів тому
var без причины - признак дурачины
@user-ub5yg5sf6z
@user-ub5yg5sf6z 27 днів тому
Много неточностей в деталях и часто ведущий думает одно, но говорит другое....
@Implodeside
@Implodeside 2 місяці тому
Проблема почему этот несмотря на свою годность, имеет небольшие охватывался просмотрам. Макс рассказывает интересно сложные темы, которые непонятны для массы которое на ютьюбе(а это зачастую даже не junior lvl), а те кто сталкивается с этими задачами вряд ли ищут ответы на ютьюбе(middle = stackoverflow) возможно этот канал будет первопроходцев ру сегменте, который проложит дорогу действительно качественному контенту, а не то что сейчас наблюдается, тысячное видео какой язык выбрать, как за час стать тем,
@fromthegreatunknown
@fromthegreatunknown 2 місяці тому
Картинка на заднем фоне отличная, респект!!!
Піхотинець - про рутину на фронті
00:46
Суспільне Новини
Переглядів 293 тис.
skibidi toilet 73 (part 2)
04:15
DaFuq!?Boom!
Переглядів 27 млн
Про Kafka (основы)
49:23
Владимир Богдановский
Переглядів 343 тис.
Что такое Hibernate для Java-разработчика?
14:39
Sergey Nemchinskiy
Переглядів 11 тис.
Топ-10 вопросов на Backend Java / Собеседование с разбором ответов и материалами
2:17:45
Антон Назаров | Осознанная Меркантильность
Переглядів 30 тис.
Он Нашел Самый Большой Алмаз #shorts
0:39
ARNAUT 🔥
Переглядів 4,9 млн
Гумор
0:10
такое
Переглядів 368 тис.
Девушка ест золото😳
0:54
Kino_sh
Переглядів 10 млн