Топ-10 вопросов на Backend Java / Собеседование с разбором ответов и материалами
HTML-код
- Опубликовано: 26 июн 2024
- Мок интервью на Java Backend нового образца с полным разбором ответов и рекомендациям по изучению. Статьи и документацию по всем вопросам можно найти в таймкодах.
Социальные сети участников:
Телеграм Камиля "IT-Отец" t.me/kamil_it_mentor/349
Ютуб Камиля "IT-Отец" / @it-father
t.me/problem_hunter
/ vsratb
Вступай в сообщество для входа и роста в IT: bit.ly/3Vq8nF7
Читай уникальный контент в телеге: bit.ly/3ztzy9i
Узнай как проходит день из жизни ITшника: bit.ly/40Dkbqz
Найди ментора или стань им в один клик: bit.ly/410NrYl
Таймкоды:
0:00 - Приветствие
0:24 - План собеседования
01:09 - О компании и вакансии
03:24 - Обсуждение резюме. Функциональное программирование (Scala)
05:26 - Какой использовал алгоритм проработки архитектуры проектов с нуля?
06:10 - На каком уровне выбирал технологический стек?
07:31 - Почему так часто менял работу в начале карьеры?
09:05 - Какие у тебя сейчас требования к компании?
10:03 - Какие планы по росту на ближайшие 2 года?
11:19 - Назови ТОП-3 сложных задач из твоей практики
15:59 - Какие были факапы?
16:47 - Как ты оцениваешь сроки?
18:26 - Как был устроен релизный цикл и какие были церемонии scrum в твоей компании?
19:49 - Что бы ты хотел поменять на последней работе?
21:32 - Техническая часть. SOLID (принцип подстановки Лисков)
23:10 - DIP, DI, IoC
24:39 - DDD и его абстракции, TDD
26:00 - Какие паттерны проектирования применял?
26:38 - Зачем нужен паттерн Repository?
26:49 - Какая разница между паттернами Factory и Abstract Factory?
27:17 - Слышал ли про паттерн Decorator?
27:50 - В чем суть паттерна Proxy?
28:34 - Типы данных: в чём разница между String и string?
29:10 - В чём разница между int и Integer?
30:34 - Чем отличаются динамический и статический массив? Какие есть реализации динамического массива в Java?
32:43 - Как работают под капотом HashMap и ConcurrentHashMap?
35:05 - Что такое Heap как структура данных?
35:49 - Какие есть виды деревьев и для чего они используются?
36:44 - Лайвкодинг. Задача №1
38:54 - Когда не нужно объявлять переменную через ключевое слово volatile?
39:43 - Что под капотом AtomicInteger?
42:53 - Задача №2
48:16 - Какие клиенты знаешь для создания HTTP-запросов?
50:19 - Как работает Thread Pool?
50:49 - Что такое лямбда в Java?
53:14 - Какие альтернативы StreamAPI знаешь? Расскажи о преимуществах и недостатках StreamAPI и HashMap.
54:05 - Какие функциональные интерфейсы знаешь?
54:53 - Есть ли в Java функции?
01:01:30 - Что такое CompletableFuture и чем отличается от Future?
01:03:25 - Что знаешь про параллельные стримы?
01:05:25 - Final, EffectivelyFinal, Finally, Finalize - в чём отличия?
01:06:43 - Что ты знаешь про замыкания?
01:08:02 - Зачем нужен Finally, если можно написать блок кода после?
01:09:53 - Exception, try/catch. Отличие if/else от try/catch
01:11:33 - Отличия checked от unchecked
01:13:07 - Для чего нужны профили в Spring?
01:13:30 - Embedded и @Embeddable
01:14:14 - Иерархия JPA. С какими реализациями чаще всего работал?
01:15:10 - Hibernate. Lazy Loading vs. Eager Loading - в чём разница?
01:16:21 - Задача №3
01:20:15 - Чем отличается WHERE от ON?
01:27:00 - Какие индексы знаешь?
01:28:11 - Какой индекс стоит в postgres по дефолту, если не указывать тип?
01:28:27 - Какие есть риски в добавлении индекса в высоконагруженную таблицу?
01:30:22 - ACID - что это и как расшифровывается? Уровни изоляции. Serializable, SSI
01:35:00 - Кейс про скорость запроса к базе и способы оптимизации
01:37:52 - Что ты знаешь про денормализацию?
01:38:19 - Какие знаешь нормальные формы?
01:38:47 - Приходилось ли работать с встроенными абстракциями postgres?
01:39:37 - Шардирование и репликация
01:40:28 - Какие моменты нужно учесть в архитектуре для реализации шардирования?
01:42:34 - Кейс: локализация 500 ошибки
01:45:13 - Какие есть способы взаимодействия между микросервисами? Kafka
01:49:23 - Преимущества и недостатки микросервисов
01:51:00 - Какие ты знаешь паттерны микросервисов?
01:51:28 - Паттерны повышения отказоустойчивости
01:51:52 - Паттерны мониторинга
01:52:35 - Паттерны управления данными
01:53:57 - Вопросы кандидата. Вопрос о команде
02:11:19 - Завершение мок-интервью
02:12:12 - Обратная связь от Камиля
02:16:26 - О Камиле и его образовательном проекте "Codemania"
#антонназаров #мокинтервью #программист Развлечения
Спасибо за интервью. Я тоже с 11 года в индустрии и сейчас обратил внимание, что часть тонкостей уже просто забыл. Самое неприятное, что знание этих тонкостей в работе может ничего не давать, поэтому они держатся в памяти только короткое время. И придётся их повторять исключительно для собеседований, что весьма уныло, ведь одно дело, когда осваиваешь что-то новое и совсем другое, когда снова и снова заучиваешь ненужное.
Согласен
Найди ментора или стань им в один клик: bit.ly/410NrYl
Таймкоды:
0:00 - Приветствие
0:24 - План собеседования
01:09 - О компании и вакансии
03:24 - Обсуждение резюме. Функциональное программирование (Scala)
05:26 - Какой использовал алгоритм проработки архитектуры проектов с нуля?
06:10 - На каком уровне выбирал технологический стек?
07:31 - Почему так часто менял работу в начале карьеры?
09:05 - Какие у тебя сейчас требования к компании?
10:03 - Какие планы по росту на ближайшие 2 года?
11:19 - Назови ТОП-3 сложных задач из твоей практики
15:59 - Какие были факапы?
16:47 - Как ты оцениваешь сроки?
18:26 - Как был устроен релизный цикл и какие были церемонии scrum в твоей компании? www.atlassian.com/ru/agile/scrum
19:49 - Что бы ты хотел поменять на последней работе?
21:32 - Техническая часть. SOLID (принцип подстановки Лисков) alexkosarev.name/2023/03/02/solid-in-details-lsp
23:10 - DIP, DI, IoC habr.com/ru/articles/131993
24:39 - DDD и его абстракции, TDD www.geeksforgeeks.org/domain-driven-design-ddd
26:00 - Какие паттерны проектирования применял?
26:38 - Зачем нужен паттерн Repository? habr.com/ru/articles/248505
26:49 - Какая разница между паттернами Factory и Abstract Factory? medium.com/bitmountn/factory-vs-factory-method-vs-abstract-factory-c3adaeb5ac9a
27:17 - Слышал ли про паттерн Decorator? refactoring.guru/ru/design-patterns/decorator
27:50 - В чем суть паттерна Proxy? refactoring.guru/design-patterns/proxy
28:34 - Типы данных: в чём разница между String и string?
29:10 - В чём разница между int и Integer? habr.com/ru/articles/104231
30:34 - Чем отличаются динамический и статический массив? Какие есть реализации динамического массива в Java? otus.ru/nest/post/902
32:43 - Как работают под капотом HashMap и ConcurrentHashMap? progler.ru/blog/raznica-mezhdu-hashmap-i-concurrenthashmap
35:05 - Что такое Heap как структура данных? foxford.ru/wiki/informatika/kucha-heap
35:49 - Какие есть виды деревьев и для чего они используются? codechick.io/tutorials/dsa/dsa-trees
36:44 - Лайвкодинг. Задача №1
38:54 - Когда не нужно объявлять переменную через ключевое слово volatile?
39:43 - Что под капотом AtomicInteger? www.javacodemonk.com/what-is-atomicinteger-class-and-how-it-works-internally-1cda6a56
42:53 - Задача №2
48:16 - Какие клиенты знаешь для создания HTTP-запросов? reflectoring.io/comparison-of-java-http-clients
50:19 - Как работает Thread Pool? habr.com/ru/articles/656515
50:49 - Что такое лямбда в Java? metanit.com/java/tutorial/9.1.php
53:14 - Какие альтернативы StreamAPI знаешь? Расскажи о преимуществах и недостатках StreamAPI и HashMap. habr.com/ru/companies/jugru/articles/307938
54:05 - Какие функциональные интерфейсы знаешь? metanit.com/java/tutorial/9.3.php
54:53 - Есть ли в Java функции? javarush.com/groups/posts/592-java-functional-interfaces
01:01:30 - Что такое CompletableFuture и чем отличается от Future? www.baeldung.com/java-future-completablefuture-rxjavas-observable
annimon.com/article/3462
01:03:25 - Что знаешь про параллельные стримы? www.baeldung.com/java-when-to-use-parallel-stream
01:05:25 - Final, EffectivelyFinal, Finally, Finalize - в чём отличия? www.javatpoint.com/difference-between-final-finally-and-finalize
habr.com/ru/companies/piter/articles/281026/
01:06:43 - Что ты знаешь про замыкания? habr.com/ru/companies/piter/articles/281026/
01:08:02 - Зачем нужен Finally, если можно написать блок кода после?
01:09:53 - Exception, try/catch. Отличие if/else от try/catch www.baeldung.com/java-exceptions
01:11:33 - Отличия checked от unchecked javarush.com/groups/posts/1944-iskljuchenija-checked-unchecked-i-svoi-sobstvennihe#
01:13:07 - Для чего нужны профили в Spring? www.baeldung.com/spring-profiles
01:13:30 - Embedded и @Embeddable www.baeldung.com/jpa-embedded-embeddable
01:14:14 - Иерархия JPA. С какими реализациями чаще всего работал? www.baeldung.com/spring-data-repositories
01:15:10 - Hibernate. Lazy Loading vs. Eager Loading - в чём разница? www.imperva.com/learn/performance/lazy-loading/#:~:text=rendered%20or%20executed.-,Lazy%20Loading%20vs.,entities%20referenced%20by%20a%20resource
01:16:21 - Задача №3 postgrespro.ru/docs/postgresql/9.6/queries-table-expressions
01:20:15 - Чем отличается WHERE от ON? www.pluralsight.com/guides/using-on-versus-where-clauses-to-combine-and-filter-data-in-postgresql-joins
01:27:00 - Какие индексы знаешь? postgrespro.ru/docs/postgresql/9.6/indexes-types
01:28:11 - Какой индекс стоит в postgres по дефолту, если не указывать тип? tproger.ru/articles/indeksy-v-postgresql
01:28:27 - Какие есть риски в добавлении индекса в высоконагруженную таблицу? www.postgresql.org/docs/current/sql-createindex.html
01:30:22 - ACID - что это и как расшифровывается? Уровни изоляции. Serializable, SSI www.ibm.com/docs/en/cics-ts/5.4?topic=processing-acid-properties-transactions
01:35:00 - Кейс про скорость запроса к базе и способы оптимизации appmaster.io/ru/blog/kak-optimizirovat-sql-zaprosy-dlia-rdbms
01:37:52 - Что ты знаешь про денормализацию? habr.com/ru/articles/64524/
01:38:19 - Какие знаешь нормальные формы? habr.com/ru/articles/254773
01:38:47 - Приходилось ли работать с встроенными абстракциями postgres? www.postgresql.org/docs/current/rules-materializedviews.html
www.postgresql.org/docs/current/tutorial-views.html
www.postgresql.org/docs/current/sql-createtrigger.html
01:39:37 - Шардирование и репликация cloud.yandex.ru/docs/glossary/sharding
01:40:28 - Какие моменты нужно учесть в архитектуре для реализации шардирования? habr.com/ru/companies/stm_labs/articles/650327
01:42:34 - Кейс: локализация 500 ошибки
01:45:13 - Какие есть способы взаимодействия между микросервисами? Kafka habr.com/ru/companies/maxilect/articles/677128
01:49:23 - Преимущества и недостатки микросервисов javarush.com/groups/posts/2015-mikroservisnaja-arhhitektura-pljusih-i-minusih
01:51:00 - Какие ты знаешь паттерны микросервисов? microservices.io/patterns/microservices.html
01:51:28 - Паттерны повышения отказоустойчивости
01:51:52 - Паттерны мониторинга
01:52:35 - Паттерны управления данными
01:53:57 - Вопросы кандидата. Вопрос о команде
02:11:19 - Завершение мок-интервью
02:12:12 - Обратная связь от Камиля
02:16:26 - О Камиле и его проекте Codemania
Спасибо Антон и Камиль, очень крутой собес!
Орнул с истории про компанию, круто
Рад что тебе зашло) не зря значит над легендой заморочился
@@it-father реально интересно придумал😂
Ага, круто придумал: все кто смотрели сразу увидели, что это просто придумано. Собеседующие тоже не идиоты. Если человек вежливый, это не значит, что он не понимает, что вы ему врете.
@@vitaliy0192 так это мок интервью, это лишь пример реального собеса
я чуть не умерла от истерики
Спасибо тебе огромное, Антон, за твою работу!❤
Это лучшее mock которое я видел!
Спасибо ребят! Проверил себя.
реально круто!!! спасибо!!!!
Вроде не сложные вопросы, но я бы на собесе на половину не ответил бы по теории. Конечно, это отдельный навык уметь все это сходу так рассказать
Все себя мнят супер психологамии и придераются к фразам, Он сказал плыву по волне а не по течению, и ее еще надо взять, затем он сказал, что берет ноаые задачи и хочет взять тским образом более высокие волны)
да и много хороших слов он сказал, но в любом случае это просто слова
всем привет
про where and on
Камиль прав только от части
1) в целом, без планировщика запросов это чистая вкусовшина
2)в данном примере, запрос отработает не верно - вернет все папки
1) подробнее
планировщики сейчас на столько умные, что они понимаю и могут перестроить запрос внутри полностью
если хочется себя более обезопасить от того, чтоб фильтрация выполнилась ранее джойна, то можно использовать when, но и это планировщик может мутировать во все, что ему угодно
пишите как хотите, если нет доступа к планировщику
если есть, напишите любой пример, посмотрите планировщик(не запуская запрос) и тогда уже тюньте запрос, чтоб ускорить его,
а возможно, стоит добавлять индекс/индексы, но помните, что любой индекс это увеличение таблицы, в больших(по столбцам таблицах) индексы(так как их будет много) могут весить в разы больше, чем данные в самой таблице
2) подробнее
== в постгресе не используется - но это мелочь
запрос вернет все папки, так как любой файл лежит в папке - file.folder_id is not null
значит left join вернет все папки
проверим на вариантах
папка пуста - left join -> эту папку как пустую
папка содержит только ави - left join -> эту папку как содержащую ави
папка содержит ави и другие - left join -> эту папку как содержащую ави
папка содержит другие - left join -> эту папку как пустую(файлов ави нет в ней, значит в выборке 0, значит папка выглядит как пустая)
данный запрос НУЖНО было написать 2 запросами и объединить их через union all
select folder.id, folder.name from folder left join file on folder.id = file.folder_id where file.folder_id is null - это пустые папки
union all - это склеить 2 запроса
select folder.id, folder.name from folder join file on folder.id = file.folder_id where file.name like '%.avi' - это папки где есть ави
group by folder.id, folder.name - иначе для каждой папки с ави, она будет упоминаться столько раз, сколько ави файлов в ней есть
может через union? union all в резльтирующем запросе оставляет дубликаты
Камиль, потрясающая стрижка!
Спасибо!
Всем привет! Меня зовут Камиль, это я проводил интервью. Мы с Димой выжались по полной, но есть 2%-ая вероятность на мелкие недочеты. Их устранение могло бы занять 98% времени. Поэтому если есть какие то вопросы/доуточнения/пожелания, прошу их задавать в ответах на этот комментарий.
Почему лучше так:
- Я специально включу уведомления на ответные комментарии, чтобы быстро реагировать. А не мониторить все комменты подряд
- Вам самим будет удобней, если все конструктивы будут размещены в отдельном топике, чтобы они не перемешались между остальными реакциями
Просьба: если вы хотите похвалить или наоборот зашкварить меня, но без фактов/пруфов/аргументов, то пожалуйста не пишите под этим топиком.
Про расположение условия после оператора on или where. Близко к тектсу "лучше фильтрацию производить до join-a, тк в одной таблице 1000 записей, в другой 1000, полсе уже будет 1_000_000 ...".
Ну мы же не везде cross join используем, точнее сказать в большинстве кейсов его не используем) И откуда тогда мы возьмем n1 * n2 записей?
@@hoi_bj я взял обширный кейс когда просто джойним без доп условий. А так если накидать это все, то конечно не будет миллион
@@it-father понял) За интервью, проделанную колоссальную работу, классную картинку и звук, большое спасибо!
@@hoi_bj да, работа была действительно колоссальная) спасибо за фидбек!
В видео ты сказал, что к нему будет прикреплена ссылка на паттерны проектирования для микросервисов. Не нахожу, продублируй плз.
Не узнал Антона! Помолодел!
Блин, да почему так мало просмотров то!
Контент годнейший
Вопросы и ответы по теме(благодаря этому интервью - я прошел настоящее интервью 😊)
Антох, тебе прост нужна хорошая реклама
отличная идея, не хочешь этим заняться?
Ого, настоящий Дима!
Компаниям нужны работники которые делают работу. А требование-претензия интервьюера чтобы человек хотел расти (обычно в качестве цели роста полагается рост заработка) это экстраполяция себя на него. А если он не такой как я то что-то с ним не то и не так. Как так он не хочет карьерного роста и роста ЗП? Если человек на отлично выполняет свои задачи то ему уже не нужно никуда расти! В смысле он не обязан этого хотеть если его все устраивает.
Про join эксперт недоответил: еще при внешнем join строки которым не нашлось соответствия в сoединяемой таблице останутся при условии в секции on. Если это же условие спустить в секцию where такие строки пропадут из выборки
🎉🎉🎉
такую музыку включают всегда, когда делают массаж в Аланье )
При иннер джойне можно менять местами условия в on и where, но не при внешних джойнах.
почему так? аутер джойн как раз содержит все строки одной или обеих таблиц, так что ему как раз вообще должно быть по барабану как расположены where && on местами
@@LPS-ln1mz условие во внешнем джойне не фильтрует, вот пример:
hub_girls:
id
1
2
3
sat_girls:
id type
1 sexy
2 not_sexy
RESULTS:
select hg.id
from hub_girls hg
left join sat_girls sg
on hg.id=sg.id
and sg.type='sexy'
sexy_girls
id
1
2
select hg.id
from hub_girls hg
left join sat_girls sg
on hg.id=sg.id
where sg.type='sexy'
sexy_girls
id
1
Автар спутал кучу Stack с очередью Queue. В куче LIFO принцип, а не упорядочность по размеру.
18:20 Разница между джуном и мидлом) Хорош! Я тоже так отвечаю, ваши проблемы это ваши проблемы
на самом деле не всегда от грейда зависит. Иногда сеньоры тоже могут прогибаться. Это вопрос характера еще
Если цель компании это бабки, которые всем сверху вниз перепадут по убыванию, то "есть у нас контракт, работаем согласно ему".
А джуны сейчас противоположность здравого смысла, на любые даже скам стартапы готовы за бесплатно влезть ради драхоценного "опыта".
Про расположение условия после оператора on или where. Близко к тектсу "лучше фильтрацию производить до join-a, тк в одной таблице 1000 записей, в другой 1000, полсе уже будет 1_000_000 ...".
Ну мы же не везде cross join используем, точнее сказать в большинстве кейсов его не используем) И откуда тогда мы возьмем n1 * n2 записей?
Думал, на сеньора посложнее собесы ) Пора выходить тоже )
Да камон, какой сеньор, 4 года опыт работы с учетом стажировок..
@@MrJkeely ну напиши 5 лет и убери стажировку. Странный комент на этом канале, где не смотрят на года опыта
@@MrJkeelyдавай напиши автору пускай запишет с тобой видос мок интервью, посмотрим на твою сеньерность
@@LPS-ln1mzа я и не говорил, что претендую на что-то, кто в теме понимает что сеньор это про опыт и за такой малый срок шатаясь из компании в компанию ты просто поверхностно будешь знать всё по чуть-чуть
@@MrJkeelyага, а сеньера получают на пенсии, я правильно понял? Как раз дали сеньера и нотификейшен - вы уволен в позиции сеньера. Желаем всего.
музыка на фоне кайф
всегда со стороны кажется что программисты не понятно за что получают относительно не плохие зар платы, но они находятся в стрессе, или находились раньше, за частую у большинства подорвано здоровье, в основном у тех, кто сразу не понял, что программирование только со с физкультурой совместимо
По поводу Liskov мне кажется наоборот должно быть. Как раз таки у нас есть фигура треугольник и квадрат, который от него наследуется. Поведение метода площадь в результате будет одинаковой, а должен быть разный, так как в квадрате площадь будет a^2 а в треугольники другая..
В результате по принципу мы создаем абрстракт, назовем его фигура, и метод площадь делаем абстрактный, тогда для каждой фигуры мы вынужденны реализовать данный метод и мы просто не сможем накосячить
ЛС обисняют на примере прямоугольник квадрат, наск я помню.
Едрить, больше половины вопросов точно на джуновских собесах спрашивают! Кажется пора готовиться к мидловым собесам)
ну вообще там отличий не более чем на 35%
Так сейчас галеры берут джунов и продают их как синьоров. Поэтому и вопросы для джунов такие
Антон, это на какую примерно позицию собес? Если говорилось в видосе, сори
А где ссылки в описании к видео?
1:21:35 Собеседуемый сказал, что возможно оптимизатор запроса сам поймет, что истественно лучше сначало отфильтровать данные потом джойнить. В таком случае без разницы где условие like в on или where. Так ли это?
Кучу как структуру данных и Кучу как структуру памяти, конечно, не надо путать. Но названы они одинаково, так устроены очень похоже.
И там и там, это граф объектов, которые имеют корень (В JVM их несколько), узлы и ветви связей.
спасибо за дополнение!
В задаче на sql(1:16:45) в итоговом решении в ответе появятся папки хотя бы с одним .avi файлом, а нужно ведь было папки, где ВСЕ файлы .avi
В запросе нужна группировка:
select folder_name
from folder
left join file on folder.id = file.folder_id
group_by folder.id
having max(file.name) = min(file.name) && max(file.name) like '%.avi' or max(file.id) = null
Кандидат не плох, где не знает до конца, говорит что знает - остальное додумывает 😎
выкручивался как мог) тоже навык
я так экзамены давным давно в вузе сдавал. просто каменное лицо и додумываю то, что логически должно быть на мой взгляд
никаких гарантий, что экзаменатор сам знает ответы на свои вопросы
Также volatile можем не использовать если у нас всего 1 ядро, потому что кеш на уровне ядра, соответственной все потоки будут иметь доступ к этому ядру, а не другим ядрам. Но в другом случае может быть вертикальное масштабирование, поэтому все таки volatile
Нет, не можем не использовать. Философия java отрицает программирование под железо и семантика volatile с точки зрения jmm это не про согласованность кэшей в ядрах, а про гарантию отсутствия перестановок компилятора.
Если же без jsr-терминов - то про установления частичного порядка между событиями в разных потоках, благодаря чему можем строить транзитивное замыкание.
Короче для обеспечения гарантии видимости Volatile (или другие hb события) нужен, всегдас даже на 1 ядре
@@neketavorotnikov6743
Согласен, Volatile обеспечивает не только мгновенное обновление, но и другие механизмы и если задача стоит не только в этом, то Volatile действительно необходим как раз как вы упомянули hb и про порядок выполнения. Большое спасибо что поправили
12:11 Кстати найти до чего докопаться чтобы отобрать ранее выданную награду это так себе с этической точки зрения )))) Нужно делать сплит акций то есть не награду отнимать а понижать ее коэффициент )))
1:26:26
Это условие здесь не нужно так как left join, ну и про то что нельзя менять в where и в on во внешних join уже написали, короче собеседующему саму нужно SQL подтянуть
1:39:15 материализованные представления в РСУБД по крайней мере в том числе и в PG не имеет ничего общего с кешом. В двух словах если упростить, СУБД хранит рядом копию этих данных на лету обновляя всегда (соблюдая ACID, то есть там не могут не быть не актуальные данные) когда данные меняются в таблицах что лежат под запросом этой материализованной вью.
Про мат вью в постгресе всё же прав Камиль:
A materialized view cannot subsequently be directly updated, so that fresh data can be generated for the materialized view with:
REFRESH MATERIALIZED VIEW mymatview;
...
This materialized view might be useful for displaying a graph in the dashboard created for salespeople. A job could be scheduled to update the statistics each night using this SQL statement:
...
@@user-pf3xv2cm6o походу да, признаю, большую часть карьеры работал с Ms SQL server, на ПГ год только как перешёл, не думал что такая для меня простая вещь будет так сильно отличаться
Какой же Кевин де Брюйне крутой: и ассисты Холланду раздает и собесы проводит
Greenplam - это OLAP решение. Никогда не тащите эту штуку как обычный Postgres OLTP.
подушню немного 😀
тайминг 34:50
"в конкуррентой хешмапе все потоки могут работать с бакетами" - здесь стоило бы дать уточнение - когда это происходит, потому что вышеозвученная конкурентность всех потоков может быть нарушена ( о чем также ничего не сказано)
"в то время как в обычной хешмае только один поток может работать со всей мапой" - очевидно, что здесь хотели сказать немного иное, потому что формально нет никаких ограничений одновременной работы потоков с обычной хешмапой и утверждение выглядит совсем неверным
О первый пошел, напишу попозже ответочку. Заранее спасибо за душноту ❤
"в то время как в обычной хешмае только один поток может работать со всей мапой" - это больше относится к синхронизированной хэшмапе, поэтому в 34:59 есть уточнение текстом. Да, с обычной мапой как бы можно работать и в несколько потоков, просто результат будет непредсказуемый. Поэтому не стоит использовать HashMap в многопоточной среде.
@@it-fatherда, я это и имел в виду, что сказано было не совсем то, что подразумевалось
@@it-father я понимаю, что притворяться успешным успехом перед неискушенной публикой отнимает много энергии, но настолько палиться в своих скиллах... Что значит непредсказуемый результат в многопоточной среде? А если моя многопоточная среда только читает данные, инициализированные конструктором при входе в main? А если у меня ровно один пишущий поток и множество читающих? А что если у меня ровно два пишущих потока, но у них кооперативное ручное переключение контекста? А почему ты решил, что свойство предсказуемости имеет отношение к исполнению рантайма, а не модели данных, к которым обращаются из рантайма? Что если у меня хэш-таблица, которая реализует исключительно ассоциативную и коммутативную алгебру над своими значениями и не позволяет никакие другие операции, включая удаление и расширение? Она у тебя всё ещё будет иметь непредсказуемый результат?
Собес сложнее чем на сеньора(тот самый душный собес)
Это собеседование на какую позицию?
Сеньор
Да, метил кандидат на сеньора
мой собес это сборная солянка из различных собесов начиная со всякого аутсорса и заканчивая стартапами в валюте@@denmob
Собес по мьюингу не пройден
а вообще с этими паттернами носятся как дурень с писаной торбой. Такое чувство что они нужны только для правильных и красивых слов на собесе. Ни разу не слышал вопросв какие паттерны ты применял при решении этой таски
если инт влезет в 8 бит то.... чет я не понял тут
чувак задает вопросы как из магазина пятерочка, меня когда брали на первую работу им было глубоко плевать чем я раньше занимался, они посмотрели мои знания и их устроило, в торговле и в других низкооплачиваемых сферах очень интересует готов ли ты стать рабом их системы, а поэтому вопросы почему уходил с предыдущих мест, что не устраивало - это вопросы готов ли ты стать рабом нашей системы)
Комент от человека который за всю жизнь прошёл один собес и он оказался успешным с такой выборкой он пришёл делиться знаниями
Человек если получил креды от базы и имеет к ней доступ по сети ограничен только в своей фантазией.
музыка на фоне усыпляет
Причем тут кеш и волотайл, откуда это пошло?
раскрой пожалуйста подробней свой вопрос
@@it-father волотайл не дает гарантий что процессор не воспользуется кешом. Перед процессором и байт кодом есть jvm + OS со своими инструкциями. Волотайл дает гарантии видимости изменений, но никак не влияет на кешировние, о чем нам говорит глава 8 спецификации языка java
@@jollyroger2757 чего ты хочешь от инфоцыгана, чтобы он рантаймы языков знал?
С каких пор Антон Назаров собеседует джавистов?
Посмотри другие интервью на этом канале - вопросов добавится
в ролике тут двое вроде
Ребята, это шутка, что интервьюер похож на Антона, расслабитесь
@@moviefokll733спасибо, где ты был раньше 😂?
что-то очень борзая манера общения от интервьюера
А где топ 10 вопросов? тут 2 часа вопросов
Камиль, а почему ты кидаешь теневой бан на комментарии, которые справедливы в контексте твоих выступлений про успешную жизнь айтишников? Мне не сложно, я продублирую его и здесь: я пролистал весь твой телеграм, который началася с лета 2022 года, и не увидел ни одной ссылки на примеры твоего кода. Максимум, что удалось найти, это вопрос с собеседования про типизацию map в джаваскрипте. А вот всяких розыгрышей, фото-отчетов успешного успеха и похвалы БМщикам, наоборот, удивительно много. Назревает два вопроса: 1) где пруфы, Билли? 2) Ева - твоя жена-коуч, которая тоже случайным образом "вышла на миллион", так же как и ты? Или она свободна и у вас там сообщество миллионеров такое, которое друг друга комментирует для придания видимости активной дискуссии?
А ты легко можешь код посмотреть у тимлидов и сеньоров? Может тебе ещё дадут в Гугле код с работы?
С чего ты взял что лид вообще кодит?
В 1 задаче лайвкодинга ошибка -
1) тут главный поток завершается раньше чем выполняются дочерние - нужны Thread.join -
2) volatile не нужен и AtomicInteger тоже не нужен - так как переменная static
Задача решена не верно и интервьюер ничего про это не сказал...
1) он потом добавил джойны
2) и что, если static? Попробуйте выполнить код, AtomicInteger реально спасает в таких ситуациях.
Другое дело, что оперировать static переменной в non-static методах не рекомендуется
Большая "софтскильная" ошибка Дмитрия в том, что он разрешает обращаться к себе как к Диме.
Воспринимаемая разница примерно как между *Павел* Буре и *Паша* Техник
Или как Дмитрий Нагиев и Дима Медведев
@@madyaraitpayev996 (Не)Димон Медведев и Димо-о-о-о-он из "Бумера"
Джун джуном.
на 18:20 он явно доказал, что уже как минимум мидл+
джуны так не умеют😂😂
Крутые разработчики, а текст для видео банально через редактор с проверкой орфографии не умеют прогнать. Не кАпнуть, а кОпнуть поглубже. Проверочное слово кОпка. Кругом безграмотность и непрофессионализм. Стыдно господа капиталисты!
монтажер еще тот. В школе тоже баловались спецэффектами в программах. Зачем это пьяная вставка с объяснениями.
Меня на собесе спросили только 1 вопрос: вилкой в глаз или просмотр видео Антона Назарова один раз?
Когда операция?
Что то я в вашей компании одноглазых не вижу😂
n*1,5 + 1, а не в два раза ruclips.net/video/UyvbUkVkt7A/видео.html
Не верно. При добавлении одного элемента ArrayList растёт в 1.5 раза с округлением в меньшую сторону.
Например, при initalCapacity=3 он вырастет до 4.
Мда, пошел учить списки методов с лямбдами из стандартной либы, а то на работу не попасть походу, бл... откуда вы беретесь такие
Фигец как мешает и раздражает фоновая музыка. Лучше вилкой в глаз.