Тестовое собеседование Java разработчика #9 - Денис Шувалов

  Рет қаралды 34,155

Eugene Suleimanov

Eugene Suleimanov

Күн бұрын

Видеозапись mock интервью с разработчиком, специализирующимся на высоконагруженых системах, Денисом Шуваловім

Пікірлер: 155
@MrRomanvideo
@MrRomanvideo 2 жыл бұрын
00:00​ - Знакомство 00:55 - Ежедневные задачи 3:19 - Отличие Aerospike от Redis 4:14 - Какие существую функциональные фичи в Java 4:41 - Отличие Unmodifiable от Immutable 5:24 - Функциональные интерфейсы 5:50 - Что такое Lambda 6:47 - Метод reduce() 7:22 - чем его преимущество перед циклом 8:43 - HashTable и ConcurrentHashMap - отличия и что эффективнее 9:53 - Классы мониторов для мониторинга многопоточки 10:45 - retry block 12:39 - Шаблон Builder - что такое и для каких задач 13:30 - что будет если конструктор класса будет private , и зачем это нужно 14:00 - Singleton - почему его называют анти-паттерн 14:51 - Как обойтись без synchronized в многопоточке на Singleton”е 15:52 - Что такое Double check 16:58 - Stateful и Stateless сервисы 18:54 - Optimistic vs. Pessimistic locking 20:33 - Задачка 40:07 - Ключевое отличие SQL vs NoSQL DBs 41:03 - Возможно ли изоляция транзакций в распределенных системах 42:27 - Доказать CAP теорему 43:45 - Почему нет смысла гнаться за 100% или 99.999% надежности, если есть 99.99% 44:48 - Что такое Rest 45:14 - Какие минусы Rest в высоконагруженных сис-мах 46:40 - Что такое JRPC 47:04 - Процесс от пуша кода до продакшена 48:32 - Сколько нужно instance`ов чтобы обеспечить CI\CD 49:38 - Заключение
@EugeneSuleimanov
@EugeneSuleimanov 2 жыл бұрын
Спасибо вам, добрый человек :)
@MrRomanvideo
@MrRomanvideo 2 жыл бұрын
@@EugeneSuleimanov и вам за видео! Полгода назад ничего не понял в этом интервью. А сейчас наоборот все зашло. Растем :).
@romanfirsov89
@romanfirsov89 2 жыл бұрын
​@@EugeneSuleimanov а есть ли у вас возможность закрепить этот комментарий с тайм-кодами в верху. УдобоПросматриваемость видео от этого повысится.
@EugeneSuleimanov
@EugeneSuleimanov 2 жыл бұрын
@@romanfirsov89 сделано, спасибо :)
@antonzernov3702
@antonzernov3702 4 жыл бұрын
Аж дух захватывает, и какой контраст по сравнению с собеседованием джуниора. Это видео не только демонстрирует интервью, но и носит обучающий характер. Спасибо, Евгений!!!
@timurkhasanov5978
@timurkhasanov5978 4 жыл бұрын
Очень интересно смотреть интервью с опытными разработчиками. Пока этот парень один из лучших. Быстро и ясно отвечает на все вопросы
@katatonicTheMad
@katatonicTheMad 4 жыл бұрын
Крутой, думающий разработчик., интересно объяснял некоторые вещи. Спасибо за прекрасный контент!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв!
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 4 жыл бұрын
Супер интервью. То, что давно ждал - общение с скилованными разработчиками. Ждем ссылок на ресурсы, где можно это прочитать
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв!
@alexandrshuvaev4046
@alexandrshuvaev4046 4 жыл бұрын
Более того, Денис еще и очень круто формулирует мысли и объясняет. Реально, было бы даже интересно послушать ответы на какие-то простые вопросы.
@Holdy_Couldy
@Holdy_Couldy 4 жыл бұрын
с 2:29 начали что-то на эльфийском
@dark_evil77
@dark_evil77 4 жыл бұрын
Ахаах
@vmir88
@vmir88 3 жыл бұрын
У собеседуемого ещё и иврит местами проскакивает ))
@МаксимТолстобров-э9х
@МаксимТолстобров-э9х 4 жыл бұрын
Евгений, я не поленился зайти сюда и выразить благодарность за труды. Я изучаю паттерны проектирования по твоим видео, прошел курс по hibernate у тебя на сайте (не совсем курс, но этот минимум уже помог мне больше узнать о технологии). Из всех преподавателей на ютубе вы выглядите более толковым их всех, ваш труд помогает нам. Спасибо!!!
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
Большое спасибо Евгению за предоставленную возможность и время. Могу только представить сколько сил отнимает создание подобного контента. Когда я только начинал и не знал как проходит интервью, что спрашивают на что смотрят, мне очень не хватало такого материала. п.с. Саму задачку я потом довольно быстро решил на скале рекурсивно def rev[T](xs: List[T]): List[T] = { xs match { case List() => xs case head :: tail => rev(tail) ::: List(head) } }
@andrewshapovalov484
@andrewshapovalov484 4 жыл бұрын
А зачем рекурсия на плоском списке? На pure Java задача решается без рекурсии например так ===================== package com.jc.interview; public class Main { public static void main(String[] args) { IntLikedNode head = new IntLikedNode(1, null); IntLikedNode item1 = new IntLikedNode(2, null); IntLikedNode item2 = new IntLikedNode(3, null); IntLikedNode item3 = new IntLikedNode(4, null); IntLikedNode item4 = new IntLikedNode(5, null); IntLikedNode item5 = new IntLikedNode(6, null); head.setNext(item1); item1.setNext(item2); item2.setNext(item3); item3.setNext(item4); item4.setNext(item5); System.out.println("==== Source List ===="); printListItems(head); System.out.println("==== New Reversed List ===="); IntLikedNode newReversedList = newReversedList(head); printListItems(newReversedList); IntLikedNode reverseList = reversedList(head); System.out.println("==== Reversed List ===="); printListItems(reverseList); } static IntLikedNode reversedList(IntLikedNode head) { IntLikedNode prevPrev=null; IntLikedNode prev=null; IntLikedNode current = head; while (current!=null && current.hasNext()) { prevPrev=prev; prev = current; current=current.getNext(); if (prevPrev==null) { prev.setNext(null); } else { prev.setNext(prevPrev); } } current.setNext(prev); return current; } static IntLikedNode newReversedList(IntLikedNode head) { IntLikedNode current = head; IntLikedNode prev = null; IntLikedNode newNode = null; if (current!=null) { while (current.hasNext()) { if (prev != null) { newNode.setNext(prev); } prev = newNode; newNode = new IntLikedNode(current.getValue(), null); current = current.getNext(); } } newNode.setNext(prev); prev=newNode; newNode = new IntLikedNode(current.getValue(),null); newNode.setNext(prev); return newNode; } static void printListItems(IntLikedNode head) { IntLikedNode node = head; while (head!=null) { System.out.println(node.value); if (node.hasNext()) { node=node.getNext(); } else { break; } } } } ================ package com.jc.interview; public class IntLikedNode { Integer value; IntLikedNode next; public IntLikedNode(Integer value, IntLikedNode next) { this.value = value; this.next = next; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } public IntLikedNode getNext() { return next; } public void setNext(IntLikedNode next) { this.next = next; } boolean hasNext() { return next!=null; } }
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
@@andrewshapovalov484 На скале, как правило, это более идиоматичный подход. Любой алгоритм можно написать как рекурсивно так и итеративно, чаще при рекурсии меньше дополнительных переменных и состояний. Хотя даже если отбросить производительность, то я бы не дал однозначного ответа когда какой подход лучше. На скале можно и без реукрсии в одну строчку решить через foldLeft, но после драки кулаками не машут :)
@andrewshapovalov484
@andrewshapovalov484 4 жыл бұрын
@@denisshuvalov5726 Ну на Java тоже можно, в одну строчку, подключил Guava и Lists.reverse(). Видидимо таск был из "другого круга понятий"-).
@redeyes256
@redeyes256 4 жыл бұрын
​@@denisshuvalov5726 денис, спасибо за то, что приняли участие в этом интервью. Очень интересно было смотреть
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
Денис дай совет как учить java.util.cuncurrent
@ЛенарИсхаков-л5э
@ЛенарИсхаков-л5э 4 жыл бұрын
Спасибо, Евгений за ваш контент, очень интересно и информативно. Желаю вам успехов!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв и пожелания!
@АлександрШ-й5ж
@АлександрШ-й5ж 4 жыл бұрын
Отличный формат! Услышать, как какие-то вещи представляют и объясняют практикующие специалисты, бесценно!
@danielsedoff
@danielsedoff 3 жыл бұрын
Спасибо вам, это очень интересно и при надлежащем использовании может быть очень полезно.
@zhenyalee2731
@zhenyalee2731 4 жыл бұрын
было бы неплохо, чтоб в описании хотя бы было написано про того, с кем общаетесь Допустим: Время работы джун, мид, синиор
@romanihnatov5629
@romanihnatov5629 4 жыл бұрын
Евгений, очень всё круто, классно, что нашёл материал такого вектора, спасибо вам за старания и работу, отправил письмо на почту, прочтите пожалуйста!
@КоноваловАлександр-т5ж
@КоноваловАлександр-т5ж 4 жыл бұрын
Пурум пурум новый собес
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Запись запускается секунд 10, а заполнить паузу чем-то нужно ))
@РоманК-в5т
@РоманК-в5т 4 жыл бұрын
Какое мотивационное видео! Пошёл учиться!)
@mrshmitt4583
@mrshmitt4583 2 жыл бұрын
Шикарное интревью! Спасибо огромное!
@EugeneSuleimanov
@EugeneSuleimanov 2 жыл бұрын
Спасибо за отзыв!
@mrshmitt4583
@mrshmitt4583 2 жыл бұрын
@@EugeneSuleimanov с нетерпением жду новых выпусков. Очень надеюсь, что будешь продолжать!
@iurii-goncharov
@iurii-goncharov 4 жыл бұрын
Спасибо за видео! Из всей серии это пока лучшее)
@bauyrzhanmaksot3022
@bauyrzhanmaksot3022 4 жыл бұрын
Очень крутое интервью по Java
@undefined310
@undefined310 4 жыл бұрын
парень молодец, держался на позитиве в стрессовой ситуации(собеседование), мне к сожалению такого качества не хватает
@misteranderson6058
@misteranderson6058 4 жыл бұрын
Так он уже миллион собесов прошел.
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
Спасибо, все приходит с годами. Я первое время тоже очень волновался на собеседованиях.
@Alex-gn6xb
@Alex-gn6xb Жыл бұрын
100 собеседований в помощь
@dark_evil77
@dark_evil77 4 жыл бұрын
Евгений почему вам не создать телеграм группу?
@ИванБорзов-л8ф
@ИванБорзов-л8ф 4 жыл бұрын
А вот ни одного вопроса к Денису я не вижу в комментах. Мне, например, интересно было бы узнать, на какой позиции он работает, чем конкретно занимается каждый день. В целом побольше о человеке с профессиональной стороны.
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
@Иван Борзов Работаю как Big Data Engineer в Appsflyer. В основном занимаюсь оптимизацией процессов Spark'a и Druid'a, поиском новых решений для насущных проблем. На данный момент работаю над так называемым capacity planning для одного из наших Druid кластеров. Мы ожидаем много новых клиентов с китайского рынка и хотим понять сможем ли мы выдержать такую нагрузку. К примеру как наш кластер поведет себя при горизонтальном масштабировании, улучшится ли и на сколько performance. А при смене настроек, а с другими типами машин? Какие на текущий момент bottlenecks. А что если паттерн запросов изменится, и как будут взаимодействовать запросы которые сканируют большое количество данных (report queries) с точечными (ad-hoc queries). Будут ли одни влиять на другие, и что с этим делать. Ну и так далее.
@goodwin2223
@goodwin2223 4 жыл бұрын
@@denisshuvalov5726 Если не секрет, для каких задач используете Clickhouse и Aerospike?
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
@@goodwin2223 Не секрет. Aerospike - как key-value, Clickhouse как аналитическую бд ) Мы работаем с данными мобильных аппликаций. Когда пользователь совершает какое-то действие нам приходит событие, как правило мы хотим связать его либо с какой то сессией либо добавить другие данные (enrichment). Это происходит по ключу уникально идентифицирующему пользователя. Aerospike идеально подошел для этой задачи. Clickhouse хранит небольшую часть данных для наших аггрегативных репортов, как правило за последний день. Мы пишем в него данные в режиме real-time, Druid хранит уже все данные и пишут в него ночные batch процессы. Мы пробовали использовать Clickhouse для хранения всех данных, но он подходит когда запросы попадают в primary key, если нет, то он начинаем сканировать слишком много данных и время ответа становится слишком большим. Кода данных в нем немного, то это не слишком заметно.
@finalename7464
@finalename7464 4 жыл бұрын
Рекурсивный разворот связного списка: public static ListNode reverse(ListNode head) { return reverse(null, head); } private static ListNode reverse(ListNode prev, ListNode node) { if (node.getNext() == null) { node.setNext(prev); return node; } ListNode head = reverse(node, node.getNext()); node.setNext(prev); return head; }
@friedbearsburninhell2022
@friedbearsburninhell2022 4 жыл бұрын
Passing be - pushing there my unmodifiable awesome like!
@mikhail6694
@mikhail6694 4 жыл бұрын
public abstract class Enum
@mschief4867
@mschief4867 4 жыл бұрын
Что это за Бог джавы ))
@JustForsaken
@JustForsaken 4 жыл бұрын
Привет. а можно как то с тобой пройти интервью? (2 года опыта java)
@Serge_g900
@Serge_g900 4 жыл бұрын
Я только начал изучать Java, вот сейчас разбираюсь с BufferedReader. Вообще не понимал о чём говорят , но просмотрел все видео, очень интересно было) Вопрос: как это разогреть кеш?
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
@Сергей Маляренко О да, я его помню, он наводит ужас на неокрепшие умы :) Что такое кэш, я думаю, объяснять не надо. Вот представь, ты только запустил свой сервис и пока не придет хотя бы один запрос, ничего в кэшах нет и все запросы лезут в базу данных. После пары десятков запросов уже в них какая то информация закэшировалась, и ,вероятно, из поседющих ста не все полузет в базу. Теперь, когда работаешь с высокой нагрузкой, таких запросов тысячи в первые же минуты. Если все сразу пойдут в базу, то она вполне может и уйти в отказ. Поэтому новым сервисам, обычно, дают небольшую часть нагрузки, что бы кэш прогрелся.
@Serge_g900
@Serge_g900 4 жыл бұрын
@@denisshuvalov5726 ясненько, спасибо большое за ответ =)
@millioner_iz_trushob
@millioner_iz_trushob 4 жыл бұрын
Работаю сисадмином несколько лет.. ансибл , заббикс , баш, vbs , повершелл.. ip телефония - asterisk. Но в последнее время очень задумываюсь об изучении java программирования. Хочется сосредоточится на чем то одном
@bekzatsk
@bekzatsk 2 жыл бұрын
Пом пом помм :) Классный интервью)
@tuareg77
@tuareg77 4 жыл бұрын
Супер,класс!
@РадикГимадиев-ч3и
@РадикГимадиев-ч3и 4 жыл бұрын
Досмотрел до 5:30 - космос.
@dark_evil77
@dark_evil77 4 жыл бұрын
Как всегда лайк
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо :)
@undefined310
@undefined310 4 жыл бұрын
пурумпурумпурум пум, возьму себе на вооружение, спс
@finalename7464
@finalename7464 4 жыл бұрын
7:15 "String НИКУДА join" :-)) Никуда - точка на иврите.
@ИгорьКрасильников-ж3у
@ИгорьКрасильников-ж3у 3 жыл бұрын
Я знаю иврит ..но даже не заметил😃😀😅🤣
@fara0n333
@fara0n333 4 жыл бұрын
Денис инженер ! Крут )респект!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Да, уровень крайне хороший )
@mikhail6694
@mikhail6694 4 жыл бұрын
уже больше месяца нет видео(
@daniilbredesku2047
@daniilbredesku2047 4 жыл бұрын
У Дениса степень по computer science? просто интересно)
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
Нету - я самоучка
@daniilbredesku2047
@daniilbredesku2047 4 жыл бұрын
@@denisshuvalov5726 можно тебе по мейлу или фб задать пару вопросов на счет твоей работы? Я недалеко от Хайфы живу, тема актуальная как никогда)
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
@@daniilbredesku2047 конечно, нет проблем - просто вбей в поиск Denis Shuvalov appsflyer. Просто не хочу почту писать в комментариях.
@maksimus.ssirotkin1124
@maksimus.ssirotkin1124 Жыл бұрын
у меня previous == nextNode
@alexanderk3762
@alexanderk3762 3 жыл бұрын
Я понимаю, что низкоуровневую многопоточность в java используют, но если человек отвечает с задумчивостью, значит опыт его работы не подразумевает большой практики в этом направлении и значит, что сама вакансия не подразумевает брать людей без практики. Стоит ли вообще это спрашивать? НЕ проще ли концепт спросить и современные паттерны, вроде реактора?
@EugeneSuleimanov
@EugeneSuleimanov 3 жыл бұрын
Обычно, подобные вопросы задаются с целью выявить насколько человек любит углубляться при изучении материала. Для некоторых вакансий это качество крайне важно, но, не всегда. В реальной жизни эти знания применяются крайне редко. Здесь мы стаём на тонкий лёд, под которым холивар, но, без этих вопросов также можно оценить уровень подготовки человека :D
@alexanderk3762
@alexanderk3762 3 жыл бұрын
@@EugeneSuleimanov понял, спасибо за ответ.
@mikhail6694
@mikhail6694 4 жыл бұрын
есть какая-то стратегия как и какие воросы задавать или импровизация?
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Безусловно, есть общие принципы, но конкретные вопросы, практически рандомны
@BtXFWkyZBtXFWkyZ
@BtXFWkyZBtXFWkyZ 4 жыл бұрын
А про Object класс не спросил...
@Vlad-cg3yd
@Vlad-cg3yd 4 жыл бұрын
Прум-пум)
@barackobama386
@barackobama386 4 жыл бұрын
для джуна пойдет
@dark_evil77
@dark_evil77 4 жыл бұрын
Чтоо? Он не джун. Он миддл как минимум!
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
Спасибо :)))
@AndreyDeveloper
@AndreyDeveloper 4 жыл бұрын
Senior?
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Да
@caffeinejavacode1475
@caffeinejavacode1475 4 жыл бұрын
я бы оценил его на Senior Dev
@pngun-gd9yb
@pngun-gd9yb 4 жыл бұрын
ты 50 минут монтировал переключение вебок??!?17717!?!7 звучит жёстко
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Нет, это запись от hangouts )
@Ofizerios
@Ofizerios 4 жыл бұрын
А можно вопрос? В чем смысл собеседования вы берете на работу онлайн или как?
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Это mock интервью. Для человека проверить силы, для меня - провести интервью и опубликовать видео, для зрителей - посмотреть, как проходят интервью на практике
@SleePokeR
@SleePokeR 4 жыл бұрын
@@EugeneSuleimanov Это не просто "win-win", а прям "win-win-win" ситуация)
@MrMoshell
@MrMoshell 4 жыл бұрын
6 лет это машина. Давай теперь 15 лет. О чем говорить будете?)
@ВасилийГоловко-д9и
@ВасилийГоловко-д9и 4 жыл бұрын
Количество годов все-таки не показатель. По своему опыту сужу. Т.к. больше зависит от проектов, технологий, какие юзал. Можно и 15 лет проработать в одной конторе без развития, на саппорте какого-то легаси кода. Интереснее пособеседовать разработчиков каких-то топовых контор или реально топовых проектов
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Поговорить всегда есть о чем))
@Thebeamoflight5984
@Thebeamoflight5984 4 жыл бұрын
пум, пум пум
@thegaavr
@thegaavr 4 жыл бұрын
Евгений, думаю многим было бы удобнее, если бы Вы писали уровень разработчика с которым проходит собеседование :-)
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Это крайне субъективно, но здесь, безусловно, senior :)
@BCEMCPATb
@BCEMCPATb 4 жыл бұрын
Eugene Suleimanov ели бы ты щас написал джун я бы бросил учебу ))
@wildjoe6259
@wildjoe6259 4 жыл бұрын
@@BCEMCPATb я бы начал пить )))
@alexandernikolaev174
@alexandernikolaev174 4 жыл бұрын
Код разворота не отработает. Два момента поправить: while (current!=null) и return previous. Интервью отличное, собеседник позитивный и толковый.
@FightingFalcao
@FightingFalcao 4 жыл бұрын
Я так и не понял как это работает, но Вы совершенно правы! gist.github.com/ov-petrov/a97c0e859e108f39916db00cbb8fb891
@kolob204
@kolob204 2 жыл бұрын
или добавить после цикла current.next = prev; так как итерация с последним элементом пропускается
@AnnSadovskaya
@AnnSadovskaya 4 жыл бұрын
Женя и Денис - интервью топ, очень интересно было слушать. И приятно осознавать, что понимаешь с большего нить интервью :)
@Individius
@Individius Жыл бұрын
В решении задачи ошибка. Нужен while(current != null). В случае while(current.next != null) не переворачивается последний элемент исходного массива, у которого current.next == null
@jdevpmo1346
@jdevpmo1346 3 жыл бұрын
с самого начала сnало понятно , что тип шарящий.
@finalename7464
@finalename7464 4 жыл бұрын
Нерекурсивный разворот связного списка: public static ListNode reverse2(ListNode head) { ListNode prev = null; ListNode node = head; while (node != null) { ListNode origNext = node.getNext(); node.setNext(prev); prev = node; node = origNext; } return prev; }
@romanihnatov5629
@romanihnatov5629 4 жыл бұрын
Евгений, хотел бы выразить большую благодарность за set mock интервью, эти видео мне очень помогли при прохождении собеседования, а так же остальные видео по спрингу и design patterns, в итоге получил свою первую работу :)
@AlexeySilichenko
@AlexeySilichenko Жыл бұрын
24:36 При использовании рекурсии сложность по памяти - O(n) за счет использования рекурсивного стека, а без - O(1). 39:45 перед ретурном забыли переуказать next для новой головы, а то она остаётся оторванной =)
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Да, вы правы, спасибо за уточнение, не учёл этот момент.
@nomatterwhoooo
@nomatterwhoooo 4 жыл бұрын
Вышло в рекомендациях, ничего не поняла, но было жутко интересно
@sergeistarodubov2534
@sergeistarodubov2534 4 жыл бұрын
Рекурсивное решение задачи в интервью. Контент реально годный)) public LinkedList reverse(Node head) { if (head == null ) return new LinkedList(); LinkedList result = reverse(head.next); result.addFirst(head); return result; }
@vlas1010
@vlas1010 2 жыл бұрын
По-моему тут надо делать result.add(head) вместо addFirst. Потому что в конце рекурсии, когда head==null, мы начинаем возвращаться по стеку вызовов обратно, т.е. движемся в обратном направлении по элементам head. Поэтому в результат их надо складывать как есть.
@dzmitrydziachenka4602
@dzmitrydziachenka4602 4 жыл бұрын
Наверно это самое сильное собеседование. Вообщем спасибо очередной раз!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Да, уровень, действительно, хороший. Спасибо за отзыв!
@FilmicFil
@FilmicFil 4 жыл бұрын
У парня даже акцент проявляется по мелочи))
@ИгорьКрасильников-ж3у
@ИгорьКрасильников-ж3у 3 жыл бұрын
Он из израиля...у нас такой акцент...плюс в израиле английский в школе высокого уровня это даёт отпечаток
@sirojiddingroup
@sirojiddingroup Жыл бұрын
Which livel thats person ? middle,senior,or Junior
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Senior
@sirojiddingroup
@sirojiddingroup Жыл бұрын
@@EugeneSuleimanov Thank you for ansver and attention . That interview was great .
@МаксимГорячев-м1л
@МаксимГорячев-м1л 4 жыл бұрын
@Denis Shuvalov @Eugene Suleimanov Какие задачи ещё могут быть при прохождении собеседования? У меня с решением задач в подобном формате туговато, хотелось бы потренироваться
@alexandrguravskiy9985
@alexandrguravskiy9985 2 жыл бұрын
Все, задачу не решил на интервью перевод в джуны!!! 😁
@svichkar_tech
@svichkar_tech 4 жыл бұрын
По grpc ... Первая буква в аббревиатуре, говорят, ничего не имеет общего с Гугл)
@TimC0x
@TimC0x 4 жыл бұрын
general-purpose RPC
@svichkar_tech
@svichkar_tech 4 жыл бұрын
@@TimC0x are you sure?
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Возможно, я точной расшифровки не видел нигде, но точно знаю, что разработано компанией Google.
@vladimirvychuzhanin4105
@vladimirvychuzhanin4105 3 жыл бұрын
Yes ! grpc.io/about/ The story behind gRPC gRPC was initially created by Google, which has used a single "general-purpose RPC" infrastructure called Stubby to connect the large number of microservices running within and across its data centers for over a decade
@elpirato5428
@elpirato5428 4 жыл бұрын
Жалко нету видео о MV(C, P, VM) шаблонах, поскольку это самая тяжелая тема, которую каждый объясняет по своему и при этом, на своих готовых проектах, а не с нуля.
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
Хорошо, что меня об этом не спросили, я бы точно поплыл :)
@АлександрБугримов-о1е
@АлександрБугримов-о1е 4 жыл бұрын
Очень крутое собеседование! Спасибо за видео)
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв :)
@kekster2204
@kekster2204 4 жыл бұрын
здравствуйте Евгений, спасибо вам за ваши видео! В тех, что я посмотрел вы используете java 11 и у меня возник вопрос, насколько новичку необходимо знать предыдущие версии версии (5 и 8) и на каком уровне.
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв! Я бы сразу изучал 11+. На данный момент это наиболее актуально.
@lWeRl
@lWeRl 3 жыл бұрын
Норм, ответы супер.
@Vikisnevistay
@Vikisnevistay 4 жыл бұрын
Евгений, спасибо огромное за старания. Потрясающий канал, особенно помогло при подготовке к собеседованию.
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв! Рад, что материал оказался полезен)
@oleh_marchenko
@oleh_marchenko 4 жыл бұрын
Разве ConcurrentHashMap на каждый бакет создает свой Lock? Если я правильно все помню, то ConcurrentHashMap объединяет бакеты в группы и на каждую группу создает Lock.
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Да, верно, локи ставятся по группам.
@denisshuvalov5726
@denisshuvalov5726 4 жыл бұрын
Интересно, можно покопаться в коде, из того что написано тут локи создаютса на бакетах. > ConcurrentHashMap maintains a list of 16 locks by default (number of locks equal to the initial capacity , which is by default 16) each of which is used to lock on a single bucket of the Map Хотя может и поменялось уже. javahungry.blogspot.com/2015/02/how-concurrenthashmap-works-in-java-internal-implementation.html
@englishLevelUpFromA2
@englishLevelUpFromA2 4 жыл бұрын
Евгений, вы лучший
@phil2964
@phil2964 4 жыл бұрын
Супер
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв!
@artemkostrych9537
@artemkostrych9537 4 жыл бұрын
Спасибо огромное, можно побольше интервю с D2 - D3 левелом))
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасиьо за отзыв!
@vadympylypchenko5801
@vadympylypchenko5801 4 жыл бұрын
Качественный контент интервью. Спасибо, Евгений!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв!
@MrDepava
@MrDepava 4 жыл бұрын
Спасибо огромное, посмотрел с удовольствием!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв!
@andreyb4595
@andreyb4595 4 жыл бұрын
Пурум пурум пум и в продакшен) Спасибо за видео!
@EugeneSuleimanov
@EugeneSuleimanov 4 жыл бұрын
Спасибо за отзыв :)
@AlexeySilichenko
@AlexeySilichenko Жыл бұрын
8:51 HashMap не является коллекцией, т.к. не реализует интерфейс Collection. Это всё же принципиально, хотя бы потому что Collection непосредственно связан с процессом итерирования, а мапа не поддерживает итерирование непосредственно. Это как исключение называть ошибкой или полагать что Throwable это интерфейс. Часто мапы приплетают к коллекциям на собеседованиях: либо собеседователи, либо собеседуемые. Было бы намного лучше, если бы эта тема использовалась в качестве вопроса с подвохом.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Она относится к коллекциям (Collections Framework), хоть и не наследуется от интерфейса Collection. Но безусловно - это часть фреймворка. Этот вопрос поднимался много раз в сообществе разработчиков и ответ был дан. docs.oracle.com/javase/tutorial/collections/interfaces/map.html В документации он относится к этому фреймворку. И в смой доке это упоминается.
The joker favorite#joker  #shorts
00:15
Untitled Joker
Рет қаралды 30 МЛН
Основы и секреты Rest API
5:13
Хочу вАйти
Рет қаралды 4,6 М.
Что такое JDBC? Что такое ORM, Hibernate & JPA?
12:59
Sergey Nemchinskiy
Рет қаралды 73 М.
OpenAI’s New ChatGPT: 7 Incredible Capabilities!
6:27
Two Minute Papers
Рет қаралды 191 М.