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

  Рет қаралды 20,650

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

Пікірлер: 94
@faniskhalikov9736
@faniskhalikov9736 2 ай бұрын
Отличный формат! Очень ёмко и без воды. Спасибо!
@baxiskerimzade2690
@baxiskerimzade2690 3 ай бұрын
Спасибо,хочется больше материала для мидлов,как и куда )
@donlinoleum831
@donlinoleum831 3 ай бұрын
Крутейший контент! Все по делу и интересно смотреть)
@user-uq9jp1wk4f
@user-uq9jp1wk4f 3 ай бұрын
Классные объяснения!Спасибо!
@walcermelodia
@walcermelodia 3 ай бұрын
Как всегда огонь! Продолжай в том же духе)))
@kolabaka6851
@kolabaka6851 3 ай бұрын
Спасибо, хоть понятно мало новичку, но ваши видео невероятно полезны
@SinDat
@SinDat Ай бұрын
ничего не понял, но очень интересно?)
@user-fy8vj7el5q
@user-fy8vj7el5q Ай бұрын
Ох супер, прямо перед интервью посмотрел видос и половина этих вопросов была
@user-gk3ep5mq9r
@user-gk3ep5mq9r 3 ай бұрын
Сегодня смотрел что нового в 21. Улучшили свитч, добавили виртуальные потоки. Ещё что-то по мелочам
@twobeerornottwobeer5973
@twobeerornottwobeer5973 3 ай бұрын
У нас на работе самая последняя java, вот только пишем мы не на спринг
@alias_5800
@alias_5800 3 ай бұрын
Про нововведения: стоит сказать про виртуальные потоки и pattern matching в свитче. Думаю, достаточно
@user-oi9yf8ve3i
@user-oi9yf8ve3i 3 ай бұрын
Собеседование на мидла, выглядит как мое, когда меня на Джуна брали 😀
@user-sm9ck7wc8c
@user-sm9ck7wc8c 3 ай бұрын
благодаря Escape Analysis и скаляризации из Java 6, объекты, которые являются исключительно локальными и не возвращаются за пределы выполняемого метода, сохраняются в стеке
@zakharka3938
@zakharka3938 3 ай бұрын
Скаляризация это оптимизация JIT-компилятора, которая позволяет в принципе не создавать объект при соблюдении определенных условий. А раз объект (как единое целое) не создается, то и хранить его не надо ни в стеке, ни в куче. Таким образом это работает только при соблюдении определенных условий и только при JIT-компиляции, которая запускается не для каждого метода.
@user-mz9oz1oc3l
@user-mz9oz1oc3l 3 ай бұрын
Максим, спасибо большое. Интревью на мидла меньше всего в интернете: на джуна дофига, на синьера тоже есть а мидл ну извините))
@mastermaster293
@mastermaster293 Ай бұрын
О, яке круте відео! Можно ще таких побільше
@user-007-1
@user-007-1 3 ай бұрын
Вроде бы не сложное собеседование, а где искать такие вакансии?
@Implodeside
@Implodeside 3 ай бұрын
Топ контент, действительно алмаз среди бисера скамеров аля, как войти в айти за 2 секунды.
@user-bt9hx3ik6e
@user-bt9hx3ik6e 3 ай бұрын
спасибо большое за видео, как всегда лаконично и подробно. можно ли какой-то познавательный видос по вебсокетам(спринговым и не спринговым) и grpc? интересно было бы узнать, с какими технологияим лучше работать в случае с вебсокетами
@Jetbulb
@Jetbulb 3 ай бұрын
Спасибо за идею и то, что смотришь нас. Обязательно рассмотрим и что-то придумаем.
@user-se4gg9sk4b
@user-se4gg9sk4b 3 ай бұрын
Спасибо
@TheJabberwahh
@TheJabberwahh 3 ай бұрын
Только и'теребл :) ударение на первый слог. Так же как в нулэбл например.
@viktor.florinskiy
@viktor.florinskiy 11 күн бұрын
спасибо за видео. Есть вопрос, а зачем вообще нужен класс object? зачем нам нужен дефолтный потомок у всех классов? какая проблема была что решили его создать?
@Jetbulb
@Jetbulb 8 күн бұрын
Абстракция
@noki1614
@noki1614 Күн бұрын
видос имба
@JohnJohn31595
@JohnJohn31595 2 ай бұрын
thank you!
@fnmby
@fnmby 2 ай бұрын
отдельный лайк за картинку на заднем плане
@prayer4675
@prayer4675 2 ай бұрын
COPY и ADD в Dockerfile отличаются ещё и тем, что ADD распаковывает архивы, то есть не просто копирует.
@user-lz2ob9vf7v
@user-lz2ob9vf7v 3 ай бұрын
Макс, что думаешь на счёт faang-like подхода к собесам, когда есть тех скрин + панелька (алго + сис диз)? Последнее время прихожу к выводу, что такой подход более прагматичный, да и мир не крутится одной Java, можно и с чем-то другим поработать
@Jetbulb
@Jetbulb 3 ай бұрын
Это классный подход, когда компания действительно ведет серьезную разработку продуктов, которые обслуживают в буквальном смысле слова весь мир. Например, аэронавтика, космонавтика, медицина, энергия, навигация и так далее. Поскольку решение таких задач ставят перед разработчиков требования выходящие за пределы кода. Тогда продукты будут качественными и главное безопасными. В остальных случаях, это избыточность, бахвальство и пустая трата средств компании на поиски крутых ребят для разработки одностраничников и простых CRUD
@user-lz2ob9vf7v
@user-lz2ob9vf7v 3 ай бұрын
Крутой ответ, спасибо. Да, и правда, зависит от компании и её нужд
@user-gl1kd2ds4g
@user-gl1kd2ds4g 2 ай бұрын
Где то читал про менеджера в FAANG, который говорил что они специально придумывают такие сложные интервью, чтобы сотрудники были привязаны к их конторе. FAANG не предоставляют лучших зарплатных/рабочих условий, так что давят "элитарностью" и привязанностью сотрудников через сложный процесс приема
@user-tk7nh1jw3y
@user-tk7nh1jw3y Ай бұрын
​@@user-gl1kd2ds4g Наверное ещё играет роль то что в FAANG шанс попасть на интересный/сложный проект значительно выше чем в большинстве других контор. Всё-таки не все программисты хотят всю жизнь катать спринговые бины между фронтендом и базой данных хоть и за бОльшие деньги. К тому же строчка в резюме что ты успешно проработал в FAANG продолжительное время очень благотворно влияет при смене работодателя.
@vitamin2845
@vitamin2845 3 ай бұрын
Привет, Макс. Реально ли устроится куда-то зарубеж без дрочева на алгоритмы, а собеседоваться на то, что реально используется в проекте?
@Jetbulb
@Jetbulb 3 ай бұрын
Привет! Конечно реально. Я тому живое подтверждение. Собеседование в компанию при релокации, именно таким и было. Вопросы были по сути проекта
@SlevySoddik
@SlevySoddik Ай бұрын
странно что в вопросе о JMM ни разу не спросили про связь happens before и байткод
@alexandr6055
@alexandr6055 3 ай бұрын
Ты немного затронул реактивщину. Как считаешь, есть ли смысл начинать изучать её, если в джава 21 проект лум по сути ставит целью отказаться от реактивного программирования с помощью легковесных вирт. потоков?
@Jetbulb
@Jetbulb 3 ай бұрын
Пока Virtual Thread не отполировали, я бы не списывал реактивщину. Однако, есть у меня соображения что Project Loom все-таки может ее нагнуть. Но как и любой технарь скажу, что надо все смотреть в сравнении. Очень рекомендую почитать приложенную статья. Там четко показывается, что Project Loom не панацея и реактивщине есть место. Но также, что всему есть свое место и применение. dzone.com/articles/demystifying-virtual-thread-performance-unveiling
@cucu2212
@cucu2212 2 ай бұрын
на каком сайте такие обявления искать?
@artemivanchikov
@artemivanchikov 3 ай бұрын
Как все это запомнить и держать в голове есть совет? Вроде несколько раз прочитал, разобрался, прошло время и уже не можешь ответить на этот вопрос. Несколько раз начинал учить с 0 потому что понимаю что знания базы очень - не очень.
@Jetbulb
@Jetbulb 3 ай бұрын
Надо применять. Просто читать и\или учить не имеет смысла. Практика лучшая память, поскольку она заставляет нас претерпевать боль и думать, как ее избегать
@ivan_xalie
@ivan_xalie 2 ай бұрын
33:24 Уточнение: имеется в виду не команды docker, переданные контейнеру, а команды в Dockerfile
@igormyatlyuk503
@igormyatlyuk503 3 ай бұрын
Макс, классные и стильные очёзы ;D где такие приобрести?
@Jetbulb
@Jetbulb 3 ай бұрын
Приезжай в Прагу, тут не проблема найти)
@user-jp6dk4lx9y
@user-jp6dk4lx9y 8 күн бұрын
У email аннотации по дефолту регулярка ".*", то есть ни на какой имейл паттерн она не проверяет, а лишь на отсутстыие нала
@vasylmoshun8241
@vasylmoshun8241 3 ай бұрын
Hello Max, Can you give a link where you explore positions your blog ???
@Jetbulb
@Jetbulb 3 ай бұрын
Hi, for instance www.jobs.cz/ www.glassdoor.com/
@kirillkamelyazev9559
@kirillkamelyazev9559 3 ай бұрын
это же вопросы для джуна нет?)
@bratatatata
@bratatatata 3 ай бұрын
👍👍👍👍👍👍
@user-gt4ps4ph6b
@user-gt4ps4ph6b 3 ай бұрын
а надо рассказывать про инкубатор фичи, когда спрашивают про «что нового в java?», то есть structured concurrency его вроде пока как бы нет в java? ну то есть оно может откатиться в теории и код перестанет компилиться.. и вообще немного не понимаю насколько хороший тон использовать такие фичи в проекте. объясните плиз кто понимает)
@Jetbulb
@Jetbulb 3 ай бұрын
На собеседовании можно говорить и рассказывать все что хочется в рамках контекста вопроса. Отметить заинтересованность и познания в «инкубаторе», лишним не будет. В продакшене надо использовать только stable released feature
@petrivanov1565
@petrivanov1565 3 ай бұрын
Как то однобоко выглядят собесы. Расскажи то, что можно загуглить за 5-10 сек. Имхо, не менее важной дисциплиной является "Решать нерешаемое" и посмотреть за алгоритмом мышления человека. - к вам пришли с back 2 back интеграции с 401 ошибкой. Ваши действия. - у вас есть X джоб, которые ранаются N раз каждый час, все бегают на одной бд. Джобы падают в рандомных местах. Ваши действия. - у вас в бд появилось 3 млн записей апдейта для сущностей, которых у вас нет. Ваши действия. - у вас лагает бд. Ваши действия. - вы столкнулись с проблемой, на которую не можете найти готового решения, ваши дейтсвия.
@user-tk7nh1jw3y
@user-tk7nh1jw3y Ай бұрын
На всё один ответ - гугулить
@a.egorov85
@a.egorov85 3 ай бұрын
Это реально вопросы на позицию мидла? Я в основной массе могу на это ответить. Но как попасть на собеседование если нет опыта?!
@neketavorotnikov6743
@neketavorotnikov6743 3 ай бұрын
Нарисовать
@user-mb1dj3pk2d
@user-mb1dj3pk2d 3 ай бұрын
Это собеседование больше на мидл-, мидл или мидл+?
@Jetbulb
@Jetbulb 3 ай бұрын
Скорее что-то между начинающим мидлом и устоявшимся. Но это все субъективно и очень зависит от компании, проекта и собеседущего
@tomskiy1700
@tomskiy1700 3 ай бұрын
Мне кажется, сейчас любой ката-самозванец легко порвет подобный собес, расскажет про сборщик мусора столько, сколько не каждый сеньор знает. Такие вопросы на зп в 4,5 кБакса. Видимо собес был старый.
@prayer4675
@prayer4675 2 ай бұрын
StructuredTaskScope - конечно интересная фича, но она находится в preview даже в недавно вышедшей Java 22. То, что человек нахватался базвородов новых фич не говорит о его способностях к саморазвитию почти ничего. Довольно часто такие люди не знают некоторые базовые вещи. Например о контракте метода equals()
@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 какими типами имеем дело (хотя во втором случае есть шанс ошибиться).
@maksgalik8376
@maksgalik8376 3 ай бұрын
Добрый день, можно пройти собеседование на эту вакансию? )
@Jetbulb
@Jetbulb 3 ай бұрын
Привет! Можно)) Приезжай в 🇪🇺 с правом на работу и врывайся 😎
@maksgalik8376
@maksgalik8376 3 ай бұрын
@@Jetbulb уже в eu )
@Jetbulb
@Jetbulb 3 ай бұрын
@@maksgalik8376 Все ближе и ближе, от общего к деталям)) Тогда, тебе необходимо перебраться в Прагу. Как с этим обстоят дела?))
@maksgalik8376
@maksgalik8376 3 ай бұрын
@@Jetbulb ​ @Jetbulb был в праге 25 декабря и город показался дорогим, возможно потому что был как турист, особых проблем нету, нужно просто понимать что за проект )
@Jetbulb
@Jetbulb 3 ай бұрын
@@maksgalik8376 Город дорогой только в недвижимости. В остальном, Восточная Европа. Еда, вещи и досуг недорогие)
@svetlanafedorova654
@svetlanafedorova654 Ай бұрын
Хоть бы раз такие легкие вопросы задали на собесе, чаще всё начинается какой-нибудь Кафкой, базовую базу вообще не спрашивают на мидла
@hugayda
@hugayda Ай бұрын
Послушал и понял, что занимая должность синьора я еле еле джуниор.
@dgvgfg
@dgvgfg 3 ай бұрын
почему такие простые вопросы, в реальном собесе чуть не то ответил уже по ведущему собес видно, что он тебя выше джуна не оценивает и в дальнейшем идёт отказ( щас на миддла спрашивают и чуть ли как кубернетес на домашнем компе развернуть и как спринг под капотом работает с этими фабриками, которые реально не думаю что где то часто используются. И нельзя просто сказать что это прокси ну потребуется и запилим логику какую надо.
@user-gl1kd2ds4g
@user-gl1kd2ds4g 2 ай бұрын
Ну как поднять кубер локально - довольно же простой вопрос и для джуна. Если есть докер - делается одним кликом) А насчет внутреннего устройства спринга - аналогично про устройство памяти в джаве. Знать как работает инструмент изнутри. Вот только знания про устройство памяти в джаве вряд ли когда либо будут полезны, а сделать парочку своих аннотаций в спринге иногда может потребоваться. Чтобы разбираться в этом достаточно изучить доклад "Спринг-потрошитель"
@walcermelodia
@walcermelodia 3 ай бұрын
Первый!
@iKorvik
@iKorvik Ай бұрын
Если на любом интервью кроме джуна спрашивают методы класса Object, можно ничего хорошего от интервью не ждать, с торой стороны какой-то задрот теории, неоднократно убеждался в этом. Собеседуют на сеньорскую позицию и спрашивают такие вопросы...
@levvv1000
@levvv1000 3 ай бұрын
Объект может и не аллоцироваться в хип при определенных условиях, см. scalar replacement оптимизацию, можно почитать в блоге у Шипелева. Так что до ответа «все, что связано с объектом хранится в хипе» душный интервьюер может и докапаться
@user-jk4lh4gw6x
@user-jk4lh4gw6x 2 ай бұрын
И это и есть мидл? Походу мне сразу на мидла надо 😂😂
@user-zg5cu7ij9f
@user-zg5cu7ij9f 3 ай бұрын
открыл пересмотреть на компе, только сейчас заметил картинку на заднем плане с кораблём😁👍
@alenache1
@alenache1 3 ай бұрын
есть ощущение, что половина мидлов и часть синьоров в России такие собесы бы не прошли. До сих пор есть много разрабов, которые так и не умеют в микросервисы и докер. Реально сам видел в чатах как люди с 5-8 летним опытом жалуются, что если нет опыта в м/с и CI хрюши скипают их.
@zakharka3938
@zakharka3938 3 ай бұрын
Потому что Java это не только микросервисы. И даже если вы работаете над продуктом с микросервисной архитектурой, далеко не факт что вы будете напрямую работать с архитектурой.
@alenache1
@alenache1 3 ай бұрын
@@zakharka3938 1) понятно, что проекты разные, речь о том, что сейчас тренд на микросервисы, при этом на рыночке не умеющих в м/с БОЛЬШЕ, чем умеющих, поэтому при прочих равных скилах выбор делается в пользу умеющих 2) мы говорим о синьорских и лидовских грейдах, поэтому предполагается, что если она работали на проектах с м/с, то были в курсе что и как там работает 🙂
@alias_5800
@alias_5800 3 ай бұрын
​@@zakharka3938думаю за 5-8 лет не прочитать ни одной книжечки по мс архитектуре это не профпригодно
@tomskiy1700
@tomskiy1700 3 ай бұрын
не верю, что сеньор с 5-8 летним опытом не сможет осилить базу по микрам и докеру. тут же вопрос про самообучаемость скорее. если не может, то нафиг он такой нужен. поэтому, все честно, мне кажется.
@user-hr2dk6jy1k
@user-hr2dk6jy1k 3 ай бұрын
лучше не уметь в микросервисы, но уметь в модули, чем наоборот
@user-hh1ez8mh9v
@user-hh1ez8mh9v 3 ай бұрын
Говорите помедленнее
@user-ub5yg5sf6z
@user-ub5yg5sf6z Ай бұрын
Много неточностей в деталях и часто ведущий думает одно, но говорит другое....
@donpedro2125
@donpedro2125 Ай бұрын
var без причины - признак дурачины
@Implodeside
@Implodeside 3 ай бұрын
Проблема почему этот несмотря на свою годность, имеет небольшие охватывался просмотрам. Макс рассказывает интересно сложные темы, которые непонятны для массы которое на ютьюбе(а это зачастую даже не junior lvl), а те кто сталкивается с этими задачами вряд ли ищут ответы на ютьюбе(middle = stackoverflow) возможно этот канал будет первопроходцев ру сегменте, который проложит дорогу действительно качественному контенту, а не то что сейчас наблюдается, тысячное видео какой язык выбрать, как за час стать тем,
@fromthegreatunknown
@fromthegreatunknown 3 ай бұрын
Картинка на заднем фоне отличная, респект!!!
The Worlds Most Powerfull Batteries !
00:48
Woody & Kleiny
Рет қаралды 23 МЛН
格斗裁判暴力执法!#fighting #shorts
00:15
武林之巅
Рет қаралды 93 МЛН
CSS Auto-Complete Hack? in Pycharm
2:57
Sharp Skills | Quotes
Рет қаралды 12
Docker Для Начинающих за 1 Час | Docker с Нуля
52:43
Программисты разучились оптимизировать
23:43
ХОРОШО ЧТО ПЕРЕПРОВЕРИЛ😂😂😂 #юмор #пранк
0:44
СЕМЬЯ СТАРОВОЙТОВЫХ 💖 Starovoitov.family
Рет қаралды 2,1 МЛН
Охрана года 😎 #кино #фильмы #сериалы
0:55
Китайка и Пчелка 4 серия😂😆
0:19
KITAYKA
Рет қаралды 949 М.
Охрана года 😎 #кино #фильмы #сериалы
0:55
ДЖОХАН 2 | толық фильм
1:25:26
Жахан Утаргалиев
Рет қаралды 651 М.
Школьники в тюряге 😂 #сериал #тренды
0:55
Топ по Ивановым
Рет қаралды 9 МЛН