- 64
- 168 754
Павел Сорокин
เข้าร่วมเมื่อ 2 ธ.ค. 2023
Рассказываю про IT, Backend и Java разработку
Какой LiveCoding начали спрашивать на Java собеседованиях?
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
Мой курс по Java разработке: sorokinpavel.ru/
Telegram канал: t.me/S0R0KlN
Первая часть собеседования: th-cam.com/video/BEhBHHPNeqc/w-d-xo.html
В этом видео показываю как проходит процесс собеседования Java разработчика.
Какие вопросы могут задавать и как на них можно отвечать.
Таймкоды:
00:00 - вступление
00:28 - первая задача алгоритмы
27:51 - вторая задача на SQL
Мой курс по Java разработке: sorokinpavel.ru/
Telegram канал: t.me/S0R0KlN
Первая часть собеседования: th-cam.com/video/BEhBHHPNeqc/w-d-xo.html
В этом видео показываю как проходит процесс собеседования Java разработчика.
Какие вопросы могут задавать и как на них можно отвечать.
Таймкоды:
00:00 - вступление
00:28 - первая задача алгоритмы
27:51 - вторая задача на SQL
มุมมอง: 3 379
วีดีโอ
Тебя это спросят на JUNIOR JAVA разработчика
มุมมอง 3.6Kหลายเดือนก่อน
Тебя это спросят на JUNIOR JAVA разработчика
Собеседование на middle Java разработчика
มุมมอง 7K2 หลายเดือนก่อน
Собеседование на middle Java разработчика
Что же такое ACID и транзакции в БД простыми словами..
มุมมอง 1.9K2 หลายเดือนก่อน
Что же такое ACID и транзакции в БД простыми словами..
И ЭТО спрашивают по МНОГОПОТОЧКЕ на собеседованиях..
มุมมอง 5K2 หลายเดือนก่อน
И ЭТО спрашивают по МНОГОПОТОЧКЕ на собеседованиях..
К чему готовиться по Java Core на собеседовании
มุมมอง 2.6K2 หลายเดือนก่อน
К чему готовиться по Java Core на собеседовании
Как пройти middle собеседование | Java mock собеседовние
มุมมอง 3.5K2 หลายเดือนก่อน
Как пройти middle собеседование | Java mock собеседовние
Что спросят на собеседовании у Java Junior?
มุมมอง 1.4K3 หลายเดือนก่อน
Что спросят на собеседовании у Java Junior?
Для чего нужна и как устроена Kafka? Вся база для собеседований
มุมมอง 2.9K3 หลายเดือนก่อน
Для чего нужна и как устроена Kafka? Вся база для собеседований
Middle Java Собеседование LIVECODING часть
มุมมอง 2.7K3 หลายเดือนก่อน
Middle Java Собеседование LIVECODING часть
Spring Boot Гайд | Полный курс с 0 [2024] [NEW]
มุมมอง 3.5K3 หลายเดือนก่อน
Spring Boot Гайд | Полный курс с 0 [2024] [NEW]
Собеседование на middle Java разработчика
มุมมอง 8K3 หลายเดือนก่อน
Собеседование на middle Java разработчика
Основы микросервисов на простых примерах | Плюсы и Минусы
มุมมอง 2.1K3 หลายเดือนก่อน
Основы микросервисов на простых примерах | Плюсы и Минусы
LIVECODING собеседование на Java разработчика
มุมมอง 1.5K3 หลายเดือนก่อน
LIVECODING собеседование на Java разработчика
Авторизация в микросервисах | JWT токены и сессии
มุมมอง 4.2K3 หลายเดือนก่อน
Авторизация в микросервисах | JWT токены и сессии
Собеседование Java | Backend mock interview
มุมมอง 2.7K4 หลายเดือนก่อน
Собеседование Java | Backend mock interview
Все о ИНДЕКСАХ | Ускоряем БД | BTREE HASH GIN
มุมมอง 6K4 หลายเดือนก่อน
Все о ИНДЕКСАХ | Ускоряем БД | BTREE HASH GIN
Как работает Backend | Архитектура приложений
มุมมอง 10K4 หลายเดือนก่อน
Как работает Backend | Архитектура приложений
JAVA СОБЕСЕДОВАНИЕ | BACKEND-mock интервью
มุมมอง 3.8K5 หลายเดือนก่อน
JAVA СОБЕСЕДОВАНИЕ | BACKEND-mock интервью
Задача с РЕАЛЬНОГО собеседования | JAVA LIVECODING
มุมมอง 1.6K5 หลายเดือนก่อน
Задача с РЕАЛЬНОГО собеседования | JAVA LIVECODING
Разворачиваем java на сервере | JAVA TELEGRAM BOT
มุมมอง 1.7K6 หลายเดือนก่อน
Разворачиваем java на сервере | JAVA TELEGRAM BOT
Многопоточность и рефакторинг кода | TELEGRAM BOT JAVA
มุมมอง 1.2K6 หลายเดือนก่อน
Многопоточность и рефакторинг кода | TELEGRAM BOT JAVA
JAVA TELEGRAM BOT | Переводим голосовые в текст
มุมมอง 1.1K6 หลายเดือนก่อน
JAVA TELEGRAM BOT | Переводим голосовые в текст
Собеседование Яндекс Java | АЛГОРИТМЫ LIVECODING РАЗБОР ЗАДАЧ
มุมมอง 6K7 หลายเดือนก่อน
Собеседование Яндекс Java | АЛГОРИТМЫ LIVECODING РАЗБОР ЗАДАЧ
Java livecoding | Backend-mock интервью
มุมมอง 4.3K8 หลายเดือนก่อน
Java livecoding | Backend-mock интервью
SENIOR Java Собеседование | Backend-Mock интервью
มุมมอง 16K9 หลายเดือนก่อน
SENIOR Java Собеседование | Backend-Mock интервью
Собеседование Яндекс Java | ТЕОРИЯ+LIVECODING РАЗБОР ЗАДАЧ
มุมมอง 22K9 หลายเดือนก่อน
Собеседование Яндекс Java | ТЕОРИЯ LIVECODING РАЗБОР ЗАДАЧ
1:01:30 почему что-то сломается при обновлении версии java, если есть обратная совместимость?
какой оркестратор дядь? шлет ответы микросервис какой оркестратор? оркестартор в докере..
Девочка красивая
Map не коллекция. А структурв данных
можете снять маленький видос показать реальное приложение на спрингбуте плюс всякое по верхам спасибо- заинтерисовало бы очень для дальнейшего обучения
Кафка это не просто брокер, а распределенная стриминговая платформа. Зачем спрашивать у человека кафку, если он сразу сказал, что с кафкой никак.
а про Lost updated почему ничего не сказано? в википедии эта аномалия присутствует на уровне read uncommited
1:57 Map это не коллекция.
Про Java Memory Model глубоко копают? Стоит ли в него углубляться?
select name from customers where id in (select distinct customerId from customers);
Знания для мидла хромают конечно, но девушка восхитительно красивая
Что он несёт)) сеньер....😂
Хорошо прошли по многопоточке
Собес на джуниора.
не очень понятно про общий офсет, на картинке каждый консьюмер читает из своей партиции, как тогда они могут одно сообщение обработать?
скучно
42:54 Ни интервьюер, ни кандидат не понимают что такое консистентность. Консистентность не определяется бизнес правилами. Что по вашему означает выражение: "Этот человек консистентин в своих взглядах"? Что его взгляды определены бизнес правилами? То что описывается в видео называется интегральные ограничения. Именно они определяются бизнес правилами. Например дата смерти не может быть раньше даты рождения. Такие ограничения можно задать на уровне приложения и самой базы. Консистентность означает, что в системе в один момент времени существует только 1 правда для всех. Если в один момент времени мы посылаем 2 одинаковых запроса мы гарантировано получим один и тот же ответ и этот ответ будет единственным. Т.е. по запросу юзер с id Х вы получите только 1 юзера, 1 строчку из БД. Помимо ACID для реляционных (SQL) баз существует BASE для NoSQL. BA - Basic Availability S - Soft State E - Eventually Consistent Soft State может настать если вы поменяете аватар в соц сети, попросите друга оценить аватарку, а он скажет что она старая. В этом случае делается запрос на один ресурс, но мы получаем 2 разных ответа. 2 HTML странички с разными аватарками. Eventually Consistent значит, что в какой-то конечный момент времени база сама станет консистентной и начнет возвращать новую аватарку всем.
Через CountDownLatch ждать с 3 до 0. Добавлять Runnable в массив сразу в нужное место. Потом через Feature брать из массива.
Не хватило примеров как в коде использовать кафку, хотя бы базово
У собеседуемого очень хорошие soft-skills и способность точно доносить свои мысли. Чудесное собеседование! 😁
Дополняешь ответы👍
2:26 Процесс А может использовать память Процесса Б, операционная система может такое разрешить Иначе бы не было, вирусов, читов и ПО для профилирования/инструментирования
Есть большая разница между двумя умениями: работать и проходить собеседование. Далеко не всегда это один и тот же человек, а еще, что важно, может быть такой тип, который умеет проходить собеседование, но не умеет работать. так что все комментаторы, которые говорят, что Алексей слабоват - вы бы не торопились с выводами. Ну или пойдите к Паше на такое же собеседование и покажите как нужно его проходить правильно. Я на первую работу свою устроился вообще случайно. Мне в LinkedIn написал рекрутер и предложил меня подать в пару мест. В первые же 10 минут собеседования, меня спросили про коммерческий опыт и ответил, что я самоучка и не работал по найму, как и было сказано в CV. Меня поблагодарили за честность и сказали, что продолжать нет смысла, но так как я честный и вообще приятный парень, а на собеседование выделили час и есть еще 45 минут пообщаться, то я могу задать какие-то вопросы сам и рассказать что-то о себе, чем занимаюсь. Я рассказал, у меня есть 4 "личинки программиста", которых я менторю - даю задания, делаю код ревью. Мне предложили сделать тестовое. Сделал, позвали на еще одно собеседование, а по итогу взяли на работу с зп 150тр на руки. Потом я уехал из РФ и уволился, так меня на тот де проект, но уже к заказчику пригласили вообще без собеседования и платили уже 250тр. За время работы еще в первом успел заменять и тимлида, пока он был в отпуске пару недель. При всем этом, я собеседования проходить не умею. Впадаю в ступор, ничего не помню. А на работе нормально. Так что не судите, кейсы разные бывают. @Павел Сорокин спасибо за видео. Интересные вопросы. Классно, что даешь объяснение.
Вопросов для мидлов нет, все эти вопросы давно на джун вакансиях спрашивают
Кто-то еще собесит ддунов?
Вроде как volatile отключает оптимизацию которая на этапе трансляции может заменить переменную вычисленным значением указывая что содержимое переменной может быть изменено вне потока. Отсюда иногда и без volatile работает а иногда и с ним не работает
С volatile просто есть гарантия happens-before, как внутри реализовано это уже детали и может даже быть по-разному в разных реализациях
Вот это прорыв, никто не мог придумать структуру которая бы за O(1) работала как со вставкой так и с получением min/max в динамике, а тут на коленке смогли, лучший ментор 😂
Задача решена корректно, по крайней мере концептуально. И она решается за О(1). Есть некоторые недочеты, например со строгим неравенством при сравнениях минимального с текущим элементом. Если я не прав, то где ошибка?
@@sorokinpavelесли добавили 1,2,3 , удалили 1, то минимальный больше не найдет, так как все элементы больше минимального не попадали во вторую структуру
@@bob-gd9kg Это стек, удаление элементов идет только сверху. Если добавляли в порядке 1 2 3, то удаление с верхушки стека будет в порядке 3 2 1
@@sorokinpavel если удаление произвольного элемента не требуется, то ты прав, решение верное👍
В первой задаче не учтены дубли. На добавление нужно нестрогое неравенство, либо счëтчик на каждое значение добавить. Первый вариант, очевидно, проще.
По идее можно использовать простой массив для стека и для мин элемента и при добавлении делать проверку Math.min для value и minStack ну и если меньше то обновлять а если нет то нет. Ну и метод getMin будет возвращать minStack. Кто что думает?
вообще, по хорошему, хранить бы мин значение для каждого элемента, ну или хотя бы равенство добавить при добавлении в мин (высчитывать мин с тем, что лежит в minValues и которое добавляем и этот min ложить напротив добавляемого числа) и потом, как только удаляется элемент в основной структуре удалять и верхний из мин. Так у нас всегда будет консистентное состояние. В их же решении, при некоторых случаях, метод getMin не будет возвращать наименьшее значение (например: 6, 6, 7, 8, 9 и 3, 4, 5, 3, 8, 9) как только мы начнем забирать элементы из стэка(конца списка) и дойдем до 3 и 6 соответственно мы удалим их из minValues, а значения в самом стеке у нас еще есть).
@@МаксимШильвян-ж4ы ну я так и предложил, добавлять в минВал значения от макс до мин, и потом когда забирать из стека удалять последний єлемент в минВал
Вообще лучше первую задачу сделать через ноды , чтобы не нагружать доп коллекцией и сделать через дженерики
Это интервью на джуна или мидла?
на терпилу
какого джуна? какого мидла? чел не знает left join без связей. это трейни.
На поржать.
С hashSet еще проще было бы 😅
Как называется плагин который ему помогает с написанием кода?
Да, подскажите пожалуйста
Это не плагин,в самой idea функция
@@kergshi9847 как называется? у него идеа сама дописывает код
Такой токсично-серьезный настрой специально показать как обычно на собесах сеньоры относятся к затупам новичков, забывая что они сами этого не знали когда-то? К сожалению часто так непрофессионально себя ведут разрабы на реальных собесах . И почему на литкод не дать ссылки?
ну первая задача конечно не без багов решена. мы при пуше отбрасываем элементы если они не минимальные в данный момент, соответственно содержимое массива мин элементов потеряло целостность. мне кажется правильное решение было бы иметь одну внутреннюю структуру для элементов стэка где элементы будут в отсортированном виде и отдельно структуру индексов элементов которая обеспечит получение элементов по протоколу стэка. то есть при вставке отсортировываем и вставляем в нужное место, при этом минимальный обновится на вершине если нужно. вставка будет за двоичное время, получение элементов и получение мин элемента - константное время. или я не прав?
Все верно, только не двоичное, а логарифмическое, нам не нужно сортировать каждый раз, достаточно найти позицию для вставки
А как pop и push на базе ArrayList за константное время работать будут? LinkedList так может, ArrayList - нет.
Pop - это просто удаления последнего элемента по индексу, после удаления, все что нам нужно сделать это переместить указатель, на новый конец массив. Push, да, иногда может приводить созданию нового массива, большего размера, но во-первых, мы считаем, что это происходит достаточно редко, следовательно время выполнения этой операции размазывается на все предыдущие вставки. Во-вторых копирование старого массива происходит достаточно быстро, из-за того, что все элементы массива лежат в памяти последовательно и ОС видит, что мы читаем данные последовательно и может подгружать заранее новые элементы массива в свой кэш
@@ПавелОрашковпо поводу pop согласен, дополнительной релокации массива не происходит если пишем в конец, не стал смотреть дальше когда про ArrayList услышал . По поводу push: оценка сложности, обычно, осуществляется с помощью O большое. Что происходит под капотом - детали. По факту операция не имеет константного времени выполнения.
@@ЯрославМаринов О большое для вставки в конец arrayList - 0(1)
@@ПавелОрашков The size, isEmpty, get, set, iterator, and listIterator operations run in constant time. The add operation runs in amortized constant time, that is, adding n elements requires O(n) time. All of the other operations run in linear time (roughly speaking). The constant factor is low compared to that for the LinkedList implementation. Амортизированное O(n) все еще не O(1). Интересно, что в документации операция удаления не упомянута в перечне константных.
@@АлександрКононов-п5т чем сложность n для n операций отличается от n операций сложностью O(1)? Ну и в догонку, почему тогда рекомендуемая с точки зрения быстроты имплементации стека в java это arrayDeque?
Молодец что выкрутился с первой задачей, но видно не знает что такое PriorityQueue. С ней было бы проще
Что-то мне подсказывает, что байт-код хранится не в метаспэйс, а в куче. Но в целом похер.
Павел, большое спасибо, великолепное объяснение. 💪
Было очень интересно 😮
сеттеров
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds
БЕСПЛАТНО материалы по изучению Java и подготовки к собеседованиям от меня: t.me/JavaLearnBot?start=c1724626210163-40-ds