Тестовое собеседование Java разработчика #23 - Аскар Сариев

  Рет қаралды 15,202

Eugene Suleimanov

Eugene Suleimanov

Күн бұрын

Кандидат - будущий Java разработчик - Аскар Сариев.
Аскар долгое время занимается изучением Java стека и планирует в ближайшее время стать backend инженером.
Материалы для разработчиков:
proselyte.net/
Телеграмм канал для общения:
t.me/pse_club
00:00:00 Знакомство
00:01:21 Каким образом передаются переменные в методы, по ссылке или по значению?
00:02:05 Какие отличия между примитивными и ссылочными типами данных?
00:02:44 Как устроена память в JVM?
00:06:42 Что такое сборка мусора?
00:10:23 Многопоточность, параллелизм и асинхронность.
Определения и какие между ними отличия?
00:13:11 Разница между виртуальными и реальными потоками.
00:14:51 Future и CompletableFuture. Их назначение и отличия.
00:18:38 Коллекция HashMap. Устройство и особенности работы.
Является ли она потокобезопасной?
00:25:31 Что находится под буквой L в принципах SOLID?
00:30:08 Решение алгоритмической задачи.
00:57:03 Что такое индексы в базах данных?
00:58:53 Особенности удаления данных, связанных через FOREIGN KEY.
01:00:44 Что такое Result Set в JDBC? Особенности его конфигурации.
01:02:39 Что такое хранимые процедуры и какой способ их вызова через JDBC?
01:05:27 Что такое SessionFactory в Hibernate?
01:06:43 Управление уровнями изоляции транзакций в Hibernate.
01:08:07 Как работает аутентификация и авторизация в Spring Security с использованием JWT токена?
01:15:16 Что такое юнит-тестирование?
01:16:14 Ответы на вопросы кандидата.
01:17:17 Финал

Пікірлер: 143
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Ссылка на статью с разбором: proselyte.net/mock-interview-23/ Наше дружное сообщество: t.me/pse_club
@user-oy1kl1vx8q
@user-oy1kl1vx8q Жыл бұрын
К сожалению ссылка не рабочая
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@user-oy1kl1vx8q VPN?
@user-oy1kl1vx8q
@user-oy1kl1vx8q Жыл бұрын
@@EugeneSuleimanov хм, не пробовал. обязательно через впн?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@user-oy1kl1vx8q стоит попробовать, проблема может быть в этом. Сайт рабочий.
@user-oy1kl1vx8q
@user-oy1kl1vx8q Жыл бұрын
@@EugeneSuleimanov видимо пока не судьба, фиг найти рабочий впн, в РФ много заблочееных сервисов...
@derzkii_samogonshik
@derzkii_samogonshik Жыл бұрын
Рад что ты обустроился. Заждались качественного контента.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо!
@noNameNoFear1234
@noNameNoFear1234 Жыл бұрын
Евгений спасибо, что возобновили выпуск видео с собеседованиями. Особенно спасибо за ссылки с разбором вопросов.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@Guhar4k
@Guhar4k Жыл бұрын
Большое спасибо за интервью! Творческих и профессиональных успехов тебе и развития канала!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@alevadnaya
@alevadnaya Жыл бұрын
Огромное спасибо. Про память и тд много нового. Евгений, рада, что ваши видео снова стали выходить.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий!
@Batyrbala
@Batyrbala Жыл бұрын
Супер полезный контент, качественный подход. Мы ценим ваш труд, Евгений!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@KaBy34
@KaBy34 Жыл бұрын
хорошо получилось. Мне нравится ) Спасибо, Женя.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв, Серега :)
@SvetlanaCapri
@SvetlanaCapri Жыл бұрын
Спасибо огромное. Очень полезно и как всегда интересно)
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@twinklegroup8741
@twinklegroup8741 Жыл бұрын
Ооо, с возвращением, легенда!))
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий :)
@user-wd3zb7bb6x
@user-wd3zb7bb6x Жыл бұрын
Спасибо за новый контент, Юджин!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@Devivl
@Devivl Жыл бұрын
Отличные вопросы! Спасибо Евгению и гостю за отличное времяпрепровождение. С удовольствием послушал. Учитывая волнение, на мой взгляд, хорошо сплавился.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Все прошло отлично :) Спасибо за комментарий!
@user-qr4uy2dt5z
@user-qr4uy2dt5z Жыл бұрын
Спасибо что добавил алгоритмическую часть, мало у кого есть такие примеры, пускай даже долго но явно полезно!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@ainurryamov5091
@ainurryamov5091 Жыл бұрын
к слову, большинство задачек на интервью берутся с литкода, коллекция top interview questions)
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@ainurryamov5091 подтверждаю - я не буду исключением :)
@grimmjowdjiajer8166
@grimmjowdjiajer8166 4 ай бұрын
Очень удивился, когда после хороших знаний по кору, собеседуемый застопорился на изи задаче из топа литкода. Видимо, мало праковался именно писать. У меня же - обратная ситуация. Буквально за минуту придумал 2 решения за константную память (сортировка и voting алгоритм), но про асинхронность, параллелизм и тонкости jvm впервые тут услышал))
@user-qy4dt8sx7l
@user-qy4dt8sx7l Жыл бұрын
Спасибо за интервью!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@user-gd1xv7lq6y
@user-gd1xv7lq6y Жыл бұрын
В одном из видео Евгения спросили: "Насколько важно уметь решать алгоритмические задачи?". На что Евгений ответил, что важно, но если времени нет, то лучше получить опыт написания Spring приложений и получить работу. А потом хоть обрешайся. Я абсолютно с ним согласен. Надо понять для себя какую цель ты перед собой ставишь: научиться решать алг.задачи/знать алгоритмы или получить релевантные знания и получить работу? Потому что решение задачек это как качать мышцу - качаешь растет, бросил - атрофировалась. И на накачивание тоже уйдет полгода-год. Решая алг.задачи, мозг работает по одному шаблону. Пишешь приложения - мозг выстраивает другой шаблон работы. Мой мозг не может одномоментно переключиться с одного шаблона на другой. Что касаемо моей задачи, да она была очень простая, но все мысли разбежались по углам :) Потому что решение алг.задач онлайн - это тоже навык. В общем, учить много, а времени нет :) Пока изучаешь технологию, она уже изменилась. То что ты учил уже не актуально. А другие технологии тоже не стоят на месте. И новые появляются. А потом необходимо время на постоянное повторение, иначе всё забудешь и все твои труды и время коту под хвост. Ибо повторение - мать учения! Всем удачи! Евгению еще раз спасибо!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Остаюсь при том же мнении :) Спасибо за твоё время, Аскар!
@sergeysirmays6010
@sergeysirmays6010 9 күн бұрын
Господь, святой Будда! Я восхищаюсь Аскаром! Как вызубрить это все
@user-lx4dc1ls3e
@user-lx4dc1ls3e Жыл бұрын
Как же не легко даётся обучение на java))) Но благодаря качественному контенту, в частности каналу Евгения - этот путь легче осилить!!! Евгений, Вам, как всегда ОГРОМНАЯ благодарность за Ваш труд👍👍👍
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв, Максим :)
@NummeSpnet
@NummeSpnet Жыл бұрын
Java это просто инструмент, и чем раньше ты это поймёшь, тем лучше.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@NummeSpnet здесь нужно время - а потом все становится на свои места :)
@user-bs2on1db6z
@user-bs2on1db6z Жыл бұрын
Жень, спасибо! Этот контент полезен не только джунам))
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо :)
@user-qw1wh4dl2m
@user-qw1wh4dl2m Жыл бұрын
Я человек простой, Евгений выпускает ролик - ставлю лайк
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@user-rn5wx5bm7k
@user-rn5wx5bm7k Жыл бұрын
Аскар красавчик, я бы про Future и JDBC не смог ничего сказать. Евгений, спасибо большое за то что делаешь для нас отличный контент.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@slavaM77
@slavaM77 Жыл бұрын
Круто, что вернулся!)) было бы неплохо, если б сделал разбор касательно Spring Security по OAuth2 (Auth server и тд) для последних версий а то видео найти можно, но в них объясняется мало, что и как там происходит Спасибо)
@slavaM77
@slavaM77 Жыл бұрын
Имею ввиду собственный авторизационный сервер, а не сторонние
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :) Сейчас как раз в работе вдел по SecurityFiterChain + WebFlux.
@radiopapus
@radiopapus 8 ай бұрын
Хорошее интервью. Решение алгоритмических задач это навык, который надо оттачивать. Если человек на собесе способен предложить любое решение и его реализовать и оценить сложность, то зачет. Если придумает тестовые данные, которые рассматривают крайние случаи, то еще плюс. Если он потом предложит идею с оптимизацией, то вообще класс. Если человек пишет алгоритм и не может объяснить или пишет его молча, то это минус.
@EugeneSuleimanov
@EugeneSuleimanov 8 ай бұрын
Боль спасибо за отзыв!
@user-bt9hx3ik6e
@user-bt9hx3ik6e Жыл бұрын
какой хороший собес и толковый джун. аж неловко стало -я бы на половину нормально бы не ответил, есть теперь что почитать. спасибо!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв 😊
@zhaslanq
@zhaslanq Жыл бұрын
Спасибо!!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв!
@johnconnor3553
@johnconnor3553 4 ай бұрын
Евгений,пожалуйста запишите видео Security + jwt +web(rest) ,у вас крутой ролик получился на эту тему,но Security как бешеная собака поменял уже кучу версий ,удалил классы и перешел на функциональщину.Спасибо за Ваш труд!
@Batyrbala
@Batyrbala Жыл бұрын
Что-то так хорошо на теорию отвечал по Core, и на такой простенькой задачке поплыл)
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Волнение и не много опыта в решении задач, вероятнее всего.
@zvuk3316
@zvuk3316 Жыл бұрын
Спасибо за такой контент, очень полезно! Я сам уже 2 года работаю в компании и уже позабыл эти основы. А такие видео как раз хорошо помогают освежить часть памяти, выяснить что совсем забыл. Мне интересно, Евгений Вы сами тщательно готовитесь к интервью или уже всё это очень хорошо знаете и не забываете?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :) По работе постоянно повторяю и подготовка видео тоже помогает быть в тонусе.
@zvuk3316
@zvuk3316 Жыл бұрын
@@EugeneSuleimanov Спасибо за ответ!)
@DasBosch
@DasBosch 4 ай бұрын
Немного необычно видеть одновременно вопросы про сложность хэшмапы и коллизии, и асинхрощину. Для начинающего разработчика, Аскар очень хорош. Я знаю миддлов и синьоров, которые бы куда менее уверенно отвечали на эти вопросы.
@keviny0ung
@keviny0ung Жыл бұрын
если решить задачку за константную память и линейное время, то можоо создать массив freq[200+1] и в цикле увеличивать частоту freq[arr[i]+100]++, ну и максимальную записывать в переменную
@user-ob3yk8be5c
@user-ob3yk8be5c Жыл бұрын
Дорогой Евгений , Господи спасибо что ты вернулся ! 🙂🙂 Обнимаем всей семьей тебя , привет из Томска ❤
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@JavaDevOld
@JavaDevOld Жыл бұрын
Спс , Евгений за контент.... Вы очень терпеливый и корректный человек.... Получил огромное удовольствие от просмотра ..... Но на задачке, парень, видимо растерялся..... Кроме того, видимо, нужно учитывать то обстоятельство, что создание объектов, коллекций и т.д. - это тоже очень нагрузочная операция для системы, поэтому , думаю, что намного более множественные операции с примитивами или с другими возможностями не создания дополнителльных объектов, могут дать снижение нагрузки на процессор и существенное снижение времени выполнения операции. Очень теоретично.... Но задача весьма популярная..... Формально, то использование коллекций для ее решения, - это лучший вариант.... )))))))))))))))))) Жду Вашего следующего контента!!!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :) По задаче - вы правы - она может быть решена без выделения доп. памяти. Я опубликую вариант решения вместе с разбором собеседования. И да - Аскар, вероятнее всего, просто растерялся из-за волнения.
@JavaDevOld
@JavaDevOld Жыл бұрын
@@EugeneSuleimanov Благодарю Вас за ответ.... У меня есть слабость в решении логических задач. Для меня это как поехать в отпуск к гетерам. Поэтому, видимо, прицепился к этому.... Не примите за моветон
@fara0n333
@fara0n333 Жыл бұрын
@@JavaDevOld Привет Олег, это еще не сложные задачки, кругом инты, не флоатов не дабл чисел нет)))
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@GK-tw7nu спасибо за критику. Это важно, вы правы. Но в видео я просто вырезал такие паузы для «динамичности». Они были :)
@JavaDevOld
@JavaDevOld Жыл бұрын
@@GK-tw7nu Мой лайк Вам, коллега. Реально не додумался до такого простого решения этой проблемы. ЗАЧОТ!!!! ))))))))
@lanalystan9581
@lanalystan9581 8 ай бұрын
Понудю немного, но в строчке 28 должен быть не int, a Integer - иначе как проверить на null; а в 37 строчки упадет NPE, данный if-блок нужно включить в блок else.
@user-fv7rg6pu8d
@user-fv7rg6pu8d Жыл бұрын
1) Аскар, молодец. Теоретическую часть хорошо ответил для джуна. С алгоритмическими заданиями у меня тоже плохо. Нужно отдельно тренировать) Минимальные требования к Джуну неплохи😏 . Теперь это Java Core, БД, JPA, Spring. Набор джентельмена😁 Мне вот самому хочется пройти собеседование, но потом думаю, а если я где затуплю, как стыдно будет😏 2) Евгений, спасибо за контент. На ютубе много кто проводит собесы. Но смотрю ваши. Есть чему поучиться✌
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за отзыв :)
@user-gd1xv7lq6y
@user-gd1xv7lq6y Жыл бұрын
Спасибо за отзыв. По правде говоря я тоже боялся публичности и попросил Евгения перед собеседованием не публиковать видео, но Евгений меня переубедил :) Да, мне стыдно за алгоритмический блок, но я все равно не жалею, т.к. опыт важнеее отрицательных мнений других людей. Мы всегда смотрим на то, что подумают о нас другие и строим барьеры. Нужно идти навстречу своим страхам :) Как модно говорить - расширять свою зону комфорта :) Тем более Евгений чутко чувствует где дальнейшее погружение в тему стоит остановить, когда видит плавание в теме. Я это почувствовал. И если что-то не знаешь, то так и говорить.
@user-bs2on1db6z
@user-bs2on1db6z Жыл бұрын
@@user-gd1xv7lq6y Я тебе скажу так. Решение задач онлайн или на собесе, это долбанный стресс, что работодатель не использует как критерий оценки. Больше оценивается не само решение, не важно, верно или нет, а твои размышления, что есть очень важно. Ты ответил достойно, не парься!
@user-gd1xv7lq6y
@user-gd1xv7lq6y Жыл бұрын
​@@user-bs2on1db6z Игорь, спасибо за поддержку :)
@catTomcat
@catTomcat 18 күн бұрын
Привет, ошибаюсь я или нет, если скажу, что вариант алгоритма Бойера-Мура, который вы привели в своем решении по ссылке найдет цифру из которой состоит наиболее длинная последовательность этой цифры подряд, а не цифру, которая встречается чаще всего?
@vitamin2845
@vitamin2845 Жыл бұрын
Жень, а расскажи, как понимать, какая сложность у алгоритма? Это просто заучивается, какая у списка, какая у сета?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Как таблица умножения - заучивается и всегда нужно уметь объяснить почему. Здесь есть базовое объяснение: proselyte.net/algorithms/intro/algorithms-complexity/
@user-bs2on1db6z
@user-bs2on1db6z Жыл бұрын
красава!
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Спасибо за комментарий :)
@user-qy2ik8ju3s
@user-qy2ik8ju3s Жыл бұрын
В решении алгоритмической задачи n не до 104, а до 10^4 (10 в 4-й степени), аналогично с ограничениями на элементы массива -- от -10^9 до 10^9.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Да, вы правы. Спасибо за уточнение.
@ktotam8913
@ktotam8913 Жыл бұрын
алгоритм.задача на алгоритм сортировки подсчетом( кажется ).саму сортировку вырезаем. основные алгоритмы надо знать как Отче наш перед собеседованиями, как я понял) class Lesson { public static void maxQuantitRepeat(int[] array) { final int MAX_VALUE = 5 * 104; int[] count = new int[MAX_VALUE]; int maxQuantity = 0; int maxRepeatElement = 0; for (int i = 0; i < array.length ; i++) { count[array[i]] = count[array[i]] + 1; } for (int i = 0; i < count.length; i++) { if (count[i] > maxQuantity) { maxQuantity = count[i]; maxRepeatElement = i; } } System.out.println(maxRepeatElement); } public static void main(String args[]) { int arr[] = { 2,2,1,1,2,2 }; maxQuantitRepeat(arr); int arr1[] = { 3,1,3 }; maxQuantitRepeat(arr1); } }
@overdrive5772
@overdrive5772 Жыл бұрын
Вот мой результат. public static void main(String[] args) { HashMap map = new HashMap(); int[] nums = new int[]{2, 1, 2, 1, 1, 5, 5, 5, 5}; for(int i = 0; i < nums.length; i++) { int k = 0; if(map.containsKey(nums[i])) k = map.get(nums[i]); map.put(nums[i], ++k); } System.out.println(map.entrySet().stream().max(Comparator.comparing(Map.Entry::getValue)).get().getKey()); }
@ktotam8913
@ktotam8913 Жыл бұрын
@@overdrive5772 мне вот интересно, когда задачи такие на собеседованиях, типа надо показать, как ты знаешь алгоритмы сортировки разные и чтобы за On/Ologn решалось или строчи как хочешь, лишь бы ответ совпал
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Хороший вариант, его можно оптимизировать и сократить код - я опубликую в разборе.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Да, рабочий вариант. Здесь сложность по памяти линейная - это можно оптимизировать.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Обычно, хотят посмотреть и послушать как человек размышляет. А уже потом понимание алгоритмов и структур данных. Хороший инженер должен их знать.
@prayer4675
@prayer4675 9 ай бұрын
Как-то очень долго вы решение задачи рожали. Я уже давно вот это написал и несколько бутербродов съел: public static int majorityElement(int[] nums) { var mapNums = new HashMap(); final var halfLength = nums.length / 2; for (var n : nums) { var count = mapNums.compute(n, (k, v) -> v == null ? 1 : v + 1); if (count > halfLength) { return n; } } throw new RuntimeException("can't find majority element"); }
@user-cx4nj6io8x
@user-cx4nj6io8x 9 ай бұрын
Если я правильно понял задачку, вот мое решение с учетом Constraints -109 109 public int majorityElement(int[] array){ int[] ar = new int[219]; Arrays.fill(ar,0); int maxSize = 0; int maxElement = array[0]; for (int i = 0; i < array.length; i++) { if(++ar[array[i]] > maxSize){ maxElement = array[i]; maxSize = ar[array[i]]; } } return maxElement; }
@karinazhebina9970
@karinazhebina9970 Жыл бұрын
Было бы клёво увидеть интервью с девушкой :)
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Если есть кандидаты, которые хотят пройти собеседование - просто напишите на почту proselytear@yahoo.com Никаких ограничений по полу нет :)
@MrRomanvideo
@MrRomanvideo Жыл бұрын
Чтобы следить за изменениями в сторед процедурах , можно использовать Ликвибнйз или ФлайВей, и покрывать е2е тестами, а не юнит😅. Хотя в любом случае тогда надо создавать другую процедуру.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Конечно, есть варианты, но зачем? Тем более, когда мы сталкиваемся с необходимостью масштабировать систему - с БД это не так и просто :)
@MrRomanvideo
@MrRomanvideo Жыл бұрын
@@EugeneSuleimanov конечно, это я пошутил. А так сам столкнулся с такой фигнёй когда сервисы просто дёргают километровые сторед процедуры на всех эндпоинтах. Это жесть.
@user-qb3hq3mv2d
@user-qb3hq3mv2d Жыл бұрын
21:54 Разве сложность операции не становится равна Log(N) при большом количестве коллизий ? Ведь если все объекты попадают в 1 ячейку, ячейка после преобразования становится TreeSetом, а худшее время у TreeSetа Log(N). Или это не так ?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Вы правы, с учетом оптимизации это так. Без неё - по классике - O(N)
@alex0destroyer
@alex0destroyer Жыл бұрын
А Джун ответил О(1). Главное - уверенно врать.
@anjelomanoranjan
@anjelomanoranjan 10 ай бұрын
Женя, я правильно понял, что когда какое-то приложение (возможно веб-сервис) имеет сбой, тормозит - причина может заключаться в активизации Garbage Collector - удалении ненужного?
@EugeneSuleimanov
@EugeneSuleimanov 10 ай бұрын
Чаще всего, это связано с кодом, который пишут разработчики, а не GC.
@anjelomanoranjan
@anjelomanoranjan 10 ай бұрын
@@EugeneSuleimanov спасибо. Но с gc может быть тоже связанно?
@EugeneSuleimanov
@EugeneSuleimanov 10 ай бұрын
@@anjelomanoranjan да, но крайне маловероятно.
@anjelomanoranjan
@anjelomanoranjan 10 ай бұрын
@@EugeneSuleimanov спасибо. А ещё хочу тебя попросить, сделать харжкорное видео по тому, как разработчики ищут по трассировке стека крыши и правят их. Говорят - это очень сложный процесс. Хочется посмотреть как это все на практике)
@YWNWA-ZXC
@YWNWA-ZXC 10 ай бұрын
По хранимым процедурам я бы добавил что это плохо в случае с Java проектами, точнее с проэктами, которые основаны не на БД software(где всетаки вся логика пишется в самой бд), потому что если нам прийдется менять базу данных(например на nosql, graphdb, ну или другое рбд), то мы потеряем эту логику. И это просто ломает архитекутуру проекта, ведь смысл Spring'a в гибкости и возможности легко заменять слои сервиса(repository/service/controller). А использование процедур это нарушит.
@EugeneSuleimanov
@EugeneSuleimanov 10 ай бұрын
Спасибо за комментарий и хорошее дополнение!
@BolsheDelaMensheSlov
@BolsheDelaMensheSlov Жыл бұрын
Собеседования реально так проходят, или обычно ни кто не разжевывает так ничего?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Зависит от ситуации, но не всегда дают время кандидату на «раскачку»
@kras_mazov
@kras_mazov 11 ай бұрын
Взяли ли кандидата на работу? Что важнее в интервью, хорошо ориентироваться в теоретических вопросах или умение решить задачу?
@EugeneSuleimanov
@EugeneSuleimanov 11 ай бұрын
Спасибо за комментарий! Это мок-собеседование (тренировочное). По важности - важно все в комплексе.
@alexandr6055
@alexandr6055 Жыл бұрын
Первая половина меня просто удивила, думаю вот это мощный парень, про память в джаве как рассказал! А на практике с мапой потёк (( может переволновался просто?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Да, вероятнее всего из-за волнения
@JIockjoy
@JIockjoy Жыл бұрын
Первый вопрос от собеседующего и сразу его поправлю, мы не передаем переменные в методы, мы передаем значения этих переменных. А вот, как передаются эти значения в виде копий или видом ссылок на эти значения, вот тут и вопрос Не понимаю что хочешь получить в ответ, когда ставишь так вопрос. Почитайте что такое переменные.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Ваш ответ не корректный, если я верно все понял. Здесь можно поиграть в семантику, но технически этот комментарий не имеет смысла. Поправьте меня, пожалуйста, если я что-то упустил.
@JIockjoy
@JIockjoy Жыл бұрын
​@@EugeneSuleimanov Спасибо за ваше внимание, да я поправлю с вашего разрешения. Переменная это область памяти, она обозначена именем в котором хранится физический адрес. По адресу в будущем будет сохранено значение определенного типа. Если вы решили создать функцию, то вы создаете адресное пространство с новыми переменными обозначающие свои личные (область видимости) адреса. И нельзя передать переменную от слова совсем. Но можно передать значение этой переменной. Вы же просто спросили - "Как функция принимает переменные?". Правильно поставлен вопрос должен был звучать - "Каким образом, созданные функции в программе, могут принимать значения переменных из другой области видимости, для данного языка программирования?" Именно функции во множественном числе, иначе бы я попросил вас, показать мне ту функцию о которой вы лично спросили.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@JIockjoy я понял о чем вы, спасибо. И как и говорил ранее - здесь семантика. Таким же образом можно усложнить и ваш вопрос (хоть передачи информации о состоянии кварков), но суть от этого не изменится. Для Java разработчиков - это одно и тоже.
@alexandr6055
@alexandr6055 Жыл бұрын
Евгений, какой вердикт? Взяли бы парня, если бы это было реальное собеседование?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
На позицию junior - да
@user-og2ti2wd5o
@user-og2ti2wd5o Жыл бұрын
чудово
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Дякую за відгук!
@user-mz7bj9kb6q
@user-mz7bj9kb6q 9 ай бұрын
По теории очень сильный, по практическому программированию достаточно слабый. Кстати часто встречается после интенсивных курсов где людей по теории натаскивают а практики практически нет.
@EugeneSuleimanov
@EugeneSuleimanov 9 ай бұрын
Спасибо за комментарий! Опыт - дело наживное.
@racot7145
@racot7145 Жыл бұрын
Я не люблю теорию. лучше задачи. А лучше вообще тестовое задание а потом по нему разговаривать.
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
В реальности крайне небольшой процент достойных кандидатов соглашается на выполнение тестового до собеседования. Но вы правы - это хороший подход. Несколько раз сталкивался с ситуацией, когда на собеседовании просто нужно было реализовать простое АПИ (лайв кодинг) и по ходу выполнения как раз общались по коду.
@racot7145
@racot7145 Жыл бұрын
@@EugeneSuleimanov нет мне кажется только синьор будет выебываться и откажется от тестового. А если джун или мидл. Так просто сократишь пул кандидатов. Другое дело, что тогда не удастся сбить зп во время собеса. Кстати апи с секьюрити и jwt ?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@racot7145 нет, там было стандартное АПИ с немного мудрёной логикой.
@user-gd1xv7lq6y
@user-gd1xv7lq6y Жыл бұрын
@@EugeneSuleimanov Буквально вчера проходил собеседование на котором мы обсуждали мой код тестового задания - небольшое CRUD Spring Boot REST приложение. Мы шли по теории ООП, SOLID и Spring Core и одновременно меня просили показать в коде где я это использовал и найти ошибки. Затем меня попросили доработать свой метод, чтобы нам возвращался json с иерархической структурой сущностей @OneToMany. Этот практический блок я снова завалил. Потому что я пока не могу во время собеседования собрать мысли в кучу и сразу выдать решение. Мне нужно сначала подумать, поэкспериментировать с кодом. Затем пошли вопросы по мапе, шаблонам и т.д. В общем волнение очень сильно мешает.
@mustache_mentor
@mustache_mentor 2 ай бұрын
HashMap не коллекция
@EugeneSuleimanov
@EugeneSuleimanov 2 ай бұрын
Не в иерархии Collection интерфейса, но входит в Collection Framework с версии 1.2
@Roman218
@Roman218 6 ай бұрын
Элементарная задача, это тот самый случай, когда кандидат превосходно заучил теорию, но на практике в коде - никакущий, что сразу анулирует все его теор. знания. Поэтому всегда необходимы алгоритмические задачи на собеседованиях.
@anu8is930
@anu8is930 11 ай бұрын
Моє побажання на майбутнє. Русачків не потрібно розвивати, нехай там в болоті в себе самі крутяться
@Kolenkalegend
@Kolenkalegend Жыл бұрын
Ппц, теперь я понял, что ничего не знаю про Java
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Такая же штука :)
@semensemenoff5954
@semensemenoff5954 Жыл бұрын
Коммент для поддержки канала. Задачу можно по короче private int majorityElement (int[] some) { return Arrays.stream(some).boxed().collect(Collectors.groupingBy(Function.identity(), Collectors.counting())) .entrySet().stream() .max(Map.Entry.comparingByValue()) .map(Map.Entry::getKey) .orElse(0); }
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Большое спасибо за поддержку!
@fara0n333
@fara0n333 Жыл бұрын
Привет, Женя а почему ты не спрашиваешь кандидатов гит?
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
Привет! Спасибо за комментарий :) По опыту - если кандидат сильный, то и так знает основные команды. А экзотика нужна крайне редко и легко ищется в доке. И сама необходимость использовать «экзотику» возникает только если процессы выстроены не лучшим образом.
@fara0n333
@fara0n333 Жыл бұрын
@@EugeneSuleimanov Задал вопрос такой))) А сам за рабочий день не один комит не сделал, спасибо за контент!)
@EugeneSuleimanov
@EugeneSuleimanov Жыл бұрын
@@fara0n333 :)
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 190 МЛН
Василиса наняла личного массажиста 😂 #shorts
00:22
Денис Кукояка
Рет қаралды 9 МЛН
OMG🤪 #tiktok #shorts #potapova_blog
00:50
Potapova_blog
Рет қаралды 17 МЛН
Haha😂 Power💪 #trending #funny #viral #shorts
00:18
Reaction Station TV
Рет қаралды 13 МЛН
Многопоточность глазами разработчика
1:36:04
Оптимизация SQL запроса
17:13
Eugene Suleimanov
Рет қаралды 16 М.
Основы системного дизайна за 30 минут
28:46
Eugene Suleimanov
Рет қаралды 25 М.
Sprinting with More and More Money
00:29
MrBeast
Рет қаралды 190 МЛН