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

Sdílet
Vložit
  • čas přidán 1. 07. 2024
  • Кандидат - будущий 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 Финал

Komentáře • 143

  • @EugeneSuleimanov
    @EugeneSuleimanov  Před rokem +5

    Ссылка на статью с разбором:
    proselyte.net/mock-interview-23/
    Наше дружное сообщество:
    t.me/pse_club

    • @user-oy1kl1vx8q
      @user-oy1kl1vx8q Před rokem

      К сожалению ссылка не рабочая

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@user-oy1kl1vx8q VPN?

    • @user-oy1kl1vx8q
      @user-oy1kl1vx8q Před rokem

      @@EugeneSuleimanov хм, не пробовал. обязательно через впн?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@user-oy1kl1vx8q стоит попробовать, проблема может быть в этом. Сайт рабочий.

    • @user-oy1kl1vx8q
      @user-oy1kl1vx8q Před rokem

      @@EugeneSuleimanov видимо пока не судьба, фиг найти рабочий впн, в РФ много заблочееных сервисов...

  • @derzkii_samogonshik
    @derzkii_samogonshik Před rokem +20

    Рад что ты обустроился.
    Заждались качественного контента.

  • @alevadnaya
    @alevadnaya Před rokem +1

    Огромное спасибо. Про память и тд много нового. Евгений, рада, что ваши видео снова стали выходить.

  • @noNameNoFear1234
    @noNameNoFear1234 Před rokem +2

    Евгений спасибо, что возобновили выпуск видео с собеседованиями. Особенно спасибо за ссылки с разбором вопросов.

  • @Batyrbala
    @Batyrbala Před rokem +3

    Супер полезный контент, качественный подход. Мы ценим ваш труд, Евгений!

  • @Guhar4k
    @Guhar4k Před rokem +9

    Большое спасибо за интервью! Творческих и профессиональных успехов тебе и развития канала!

  • @twinklegroup8741
    @twinklegroup8741 Před rokem +2

    Ооо, с возвращением, легенда!))

  • @KaBy34
    @KaBy34 Před rokem +5

    хорошо получилось.
    Мне нравится )
    Спасибо, Женя.

  • @SvetlanaCapri
    @SvetlanaCapri Před rokem +1

    Спасибо огромное. Очень полезно и как всегда интересно)

  • @Devivl
    @Devivl Před rokem

    Отличные вопросы! Спасибо Евгению и гостю за отличное времяпрепровождение. С удовольствием послушал.
    Учитывая волнение, на мой взгляд, хорошо сплавился.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Все прошло отлично :)
      Спасибо за комментарий!

  • @user-qr4uy2dt5z
    @user-qr4uy2dt5z Před rokem +13

    Спасибо что добавил алгоритмическую часть, мало у кого есть такие примеры, пускай даже долго но явно полезно!

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +2

      Спасибо за отзыв!

    • @ainurryamov5091
      @ainurryamov5091 Před rokem +1

      к слову, большинство задачек на интервью берутся с литкода, коллекция top interview questions)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@ainurryamov5091 подтверждаю - я не буду исключением :)

    • @grimmjowdjiajer8166
      @grimmjowdjiajer8166 Před 4 měsíci

      Очень удивился, когда после хороших знаний по кору, собеседуемый застопорился на изи задаче из топа литкода. Видимо, мало праковался именно писать. У меня же - обратная ситуация. Буквально за минуту придумал 2 решения за константную память (сортировка и voting алгоритм), но про асинхронность, параллелизм и тонкости jvm впервые тут услышал))

  • @user-wd3zb7bb6x
    @user-wd3zb7bb6x Před rokem +2

    Спасибо за новый контент, Юджин!

  • @user-lx4dc1ls3e
    @user-lx4dc1ls3e Před rokem +12

    Как же не легко даётся обучение на java)))
    Но благодаря качественному контенту, в частности каналу Евгения - этот путь легче осилить!!!
    Евгений, Вам, как всегда ОГРОМНАЯ благодарность за Ваш труд👍👍👍

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +3

      Спасибо за отзыв, Максим :)

    • @NummeSpnet
      @NummeSpnet Před rokem +4

      Java это просто инструмент, и чем раньше ты это поймёшь, тем лучше.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +4

      @@NummeSpnet здесь нужно время - а потом все становится на свои места :)

  • @user-qy4dt8sx7l
    @user-qy4dt8sx7l Před rokem

    Спасибо за интервью!

  • @user-gd1xv7lq6y
    @user-gd1xv7lq6y Před rokem +12

    В одном из видео Евгения спросили: "Насколько важно уметь решать алгоритмические задачи?". На что Евгений ответил, что важно, но если времени нет, то лучше получить опыт написания Spring приложений и получить работу. А потом хоть обрешайся.
    Я абсолютно с ним согласен. Надо понять для себя какую цель ты перед собой ставишь: научиться решать алг.задачи/знать алгоритмы или получить релевантные знания и получить работу? Потому что решение задачек это как качать мышцу - качаешь растет, бросил - атрофировалась. И на накачивание тоже уйдет полгода-год.
    Решая алг.задачи, мозг работает по одному шаблону. Пишешь приложения - мозг выстраивает другой шаблон работы. Мой мозг не может одномоментно переключиться с одного шаблона на другой.
    Что касаемо моей задачи, да она была очень простая, но все мысли разбежались по углам :) Потому что решение алг.задач онлайн - это тоже навык.
    В общем, учить много, а времени нет :) Пока изучаешь технологию, она уже изменилась. То что ты учил уже не актуально. А другие технологии тоже не стоят на месте. И новые появляются. А потом необходимо время на постоянное повторение, иначе всё забудешь и все твои труды и время коту под хвост. Ибо повторение - мать учения!
    Всем удачи! Евгению еще раз спасибо!

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Остаюсь при том же мнении :)
      Спасибо за твоё время, Аскар!

  • @user-bs2on1db6z
    @user-bs2on1db6z Před rokem

    Жень, спасибо! Этот контент полезен не только джунам))

  • @slavaM77
    @slavaM77 Před rokem +4

    Круто, что вернулся!))
    было бы неплохо, если б сделал разбор касательно Spring Security по OAuth2 (Auth server и тд) для последних версий
    а то видео найти можно, но в них объясняется мало, что и как там происходит
    Спасибо)

    • @slavaM77
      @slavaM77 Před rokem

      Имею ввиду собственный авторизационный сервер, а не сторонние

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Спасибо за отзыв :)
      Сейчас как раз в работе вдел по SecurityFiterChain + WebFlux.

  • @user-rn5wx5bm7k
    @user-rn5wx5bm7k Před rokem +3

    Аскар красавчик, я бы про Future и JDBC не смог ничего сказать. Евгений, спасибо большое за то что делаешь для нас отличный контент.

  • @sergeysirmays6010
    @sergeysirmays6010 Před 16 dny

    Господь, святой Будда! Я восхищаюсь Аскаром! Как вызубрить это все

  • @user-bt9hx3ik6e
    @user-bt9hx3ik6e Před rokem +12

    какой хороший собес и толковый джун. аж неловко стало -я бы на половину нормально бы не ответил, есть теперь что почитать. спасибо!

  • @radiopapus
    @radiopapus Před 9 měsíci

    Хорошее интервью. Решение алгоритмических задач это навык, который надо оттачивать. Если человек на собесе способен предложить любое решение и его реализовать и оценить сложность, то зачет. Если придумает тестовые данные, которые рассматривают крайние случаи, то еще плюс. Если он потом предложит идею с оптимизацией, то вообще класс. Если человек пишет алгоритм и не может объяснить или пишет его молча, то это минус.

  • @user-qw1wh4dl2m
    @user-qw1wh4dl2m Před rokem +17

    Я человек простой, Евгений выпускает ролик - ставлю лайк

  • @zhaslanq
    @zhaslanq Před rokem +1

    Спасибо!!

  • @johnconnor3553
    @johnconnor3553 Před 4 měsíci +1

    Евгений,пожалуйста запишите видео Security + jwt +web(rest) ,у вас крутой ролик получился на эту тему,но Security как бешеная собака поменял уже кучу версий ,удалил классы и перешел на функциональщину.Спасибо за Ваш труд!

  • @keviny0ung
    @keviny0ung Před rokem +1

    если решить задачку за константную память и линейное время, то можоо создать массив freq[200+1] и в цикле увеличивать частоту freq[arr[i]+100]++, ну и максимальную записывать в переменную

  • @DasBosch
    @DasBosch Před 4 měsíci

    Немного необычно видеть одновременно вопросы про сложность хэшмапы и коллизии, и асинхрощину. Для начинающего разработчика, Аскар очень хорош. Я знаю миддлов и синьоров, которые бы куда менее уверенно отвечали на эти вопросы.

  • @JavaDevOld
    @JavaDevOld Před rokem +8

    Спс , Евгений за контент.... Вы очень терпеливый и корректный человек.... Получил огромное удовольствие от просмотра ..... Но на задачке, парень, видимо растерялся..... Кроме того, видимо, нужно учитывать то обстоятельство, что создание объектов, коллекций и т.д. - это тоже очень нагрузочная операция для системы, поэтому , думаю, что намного более множественные операции с примитивами или с другими возможностями не создания дополнителльных объектов, могут дать снижение нагрузки на процессор и существенное снижение времени выполнения операции. Очень теоретично.... Но задача весьма популярная..... Формально, то использование коллекций для ее решения, - это лучший вариант.... )))))))))))))))))) Жду Вашего следующего контента!!!

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Спасибо за отзыв :)
      По задаче - вы правы - она может быть решена без выделения доп. памяти. Я опубликую вариант решения вместе с разбором собеседования. И да - Аскар, вероятнее всего, просто растерялся из-за волнения.

    • @JavaDevOld
      @JavaDevOld Před rokem +2

      @@EugeneSuleimanov Благодарю Вас за ответ.... У меня есть слабость в решении логических задач. Для меня это как поехать в отпуск к гетерам. Поэтому, видимо, прицепился к этому.... Не примите за моветон

    • @fara0n333
      @fara0n333 Před rokem +1

      @@JavaDevOld Привет Олег, это еще не сложные задачки, кругом инты, не флоатов не дабл чисел нет)))

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +4

      @@GK-tw7nu спасибо за критику. Это важно, вы правы. Но в видео я просто вырезал такие паузы для «динамичности». Они были :)

    • @JavaDevOld
      @JavaDevOld Před rokem

      @@GK-tw7nu Мой лайк Вам, коллега. Реально не додумался до такого простого решения этой проблемы. ЗАЧОТ!!!! ))))))))

  • @zvuk3316
    @zvuk3316 Před rokem +1

    Спасибо за такой контент, очень полезно! Я сам уже 2 года работаю в компании и уже позабыл эти основы. А такие видео как раз хорошо помогают освежить часть памяти, выяснить что совсем забыл. Мне интересно, Евгений Вы сами тщательно готовитесь к интервью или уже всё это очень хорошо знаете и не забываете?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +2

      Спасибо за отзыв :)
      По работе постоянно повторяю и подготовка видео тоже помогает быть в тонусе.

    • @zvuk3316
      @zvuk3316 Před rokem +1

      @@EugeneSuleimanov Спасибо за ответ!)

  • @Batyrbala
    @Batyrbala Před rokem +3

    Что-то так хорошо на теорию отвечал по Core, и на такой простенькой задачке поплыл)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Волнение и не много опыта в решении задач, вероятнее всего.

  • @user-ob3yk8be5c
    @user-ob3yk8be5c Před rokem +1

    Дорогой Евгений , Господи спасибо что ты вернулся ! 🙂🙂 Обнимаем всей семьей тебя , привет из Томска ❤

  • @lanalystan9581
    @lanalystan9581 Před 8 měsíci

    Понудю немного, но в строчке 28 должен быть не int, a Integer - иначе как проверить на null; а в 37 строчки упадет NPE, данный if-блок нужно включить в блок else.

  • @user-bs2on1db6z
    @user-bs2on1db6z Před rokem

    красава!

  • @user-fv7rg6pu8d
    @user-fv7rg6pu8d Před rokem +1

    1) Аскар, молодец. Теоретическую часть хорошо ответил для джуна.
    С алгоритмическими заданиями у меня тоже плохо. Нужно отдельно тренировать)
    Минимальные требования к Джуну неплохи😏 .
    Теперь это Java Core, БД, JPA, Spring. Набор джентельмена😁
    Мне вот самому хочется пройти собеседование, но потом думаю, а если я где затуплю, как стыдно будет😏
    2) Евгений, спасибо за контент. На ютубе много кто проводит собесы.
    Но смотрю ваши. Есть чему поучиться✌

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Спасибо за отзыв :)

    • @user-gd1xv7lq6y
      @user-gd1xv7lq6y Před rokem

      Спасибо за отзыв. По правде говоря я тоже боялся публичности и попросил Евгения перед собеседованием не публиковать видео, но Евгений меня переубедил :) Да, мне стыдно за алгоритмический блок, но я все равно не жалею, т.к. опыт важнеее отрицательных мнений других людей. Мы всегда смотрим на то, что подумают о нас другие и строим барьеры. Нужно идти навстречу своим страхам :) Как модно говорить - расширять свою зону комфорта :)
      Тем более Евгений чутко чувствует где дальнейшее погружение в тему стоит остановить, когда видит плавание в теме. Я это почувствовал. И если что-то не знаешь, то так и говорить.

    • @user-bs2on1db6z
      @user-bs2on1db6z Před rokem

      @@user-gd1xv7lq6y Я тебе скажу так. Решение задач онлайн или на собесе, это долбанный стресс, что работодатель не использует как критерий оценки. Больше оценивается не само решение, не важно, верно или нет, а твои размышления, что есть очень важно. Ты ответил достойно, не парься!

    • @user-gd1xv7lq6y
      @user-gd1xv7lq6y Před rokem

      ​@@user-bs2on1db6z Игорь, спасибо за поддержку :)

  • @catTomcat
    @catTomcat Před 25 dny

    Привет, ошибаюсь я или нет, если скажу, что вариант алгоритма Бойера-Мура, который вы привели в своем решении по ссылке найдет цифру из которой состоит наиболее длинная последовательность этой цифры подряд, а не цифру, которая встречается чаще всего?

  • @vitamin2845
    @vitamin2845 Před rokem +2

    Жень, а расскажи, как понимать, какая сложность у алгоритма? Это просто заучивается, какая у списка, какая у сета?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Как таблица умножения - заучивается и всегда нужно уметь объяснить почему.
      Здесь есть базовое объяснение:
      proselyte.net/algorithms/intro/algorithms-complexity/

  • @user-qy2ik8ju3s
    @user-qy2ik8ju3s Před rokem +1

    В решении алгоритмической задачи n не до 104, а до 10^4 (10 в 4-й степени), аналогично с ограничениями на элементы массива -- от -10^9 до 10^9.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Да, вы правы. Спасибо за уточнение.

  • @MrRomanvideo
    @MrRomanvideo Před rokem +1

    Чтобы следить за изменениями в сторед процедурах , можно использовать Ликвибнйз или ФлайВей, и покрывать е2е тестами, а не юнит😅. Хотя в любом случае тогда надо создавать другую процедуру.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Конечно, есть варианты, но зачем? Тем более, когда мы сталкиваемся с необходимостью масштабировать систему - с БД это не так и просто :)

    • @MrRomanvideo
      @MrRomanvideo Před rokem +1

      @@EugeneSuleimanov конечно, это я пошутил. А так сам столкнулся с такой фигнёй когда сервисы просто дёргают километровые сторед процедуры на всех эндпоинтах. Это жесть.

  • @ktotam8913
    @ktotam8913 Před rokem +1

    алгоритм.задача на алгоритм сортировки подсчетом( кажется ).саму сортировку вырезаем. основные алгоритмы надо знать как Отче наш перед собеседованиями, как я понял)
    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 Před rokem

      Вот мой результат.
      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 Před rokem +1

      @@overdrive5772 мне вот интересно, когда задачи такие на собеседованиях, типа надо показать, как ты знаешь алгоритмы сортировки разные и чтобы за On/Ologn решалось или строчи как хочешь, лишь бы ответ совпал

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Хороший вариант, его можно оптимизировать и сократить код - я опубликую в разборе.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Да, рабочий вариант. Здесь сложность по памяти линейная - это можно оптимизировать.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Обычно, хотят посмотреть и послушать как человек размышляет. А уже потом понимание алгоритмов и структур данных. Хороший инженер должен их знать.

  • @prayer4675
    @prayer4675 Před 9 měsíci

    Как-то очень долго вы решение задачи рожали. Я уже давно вот это написал и несколько бутербродов съел:
    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");
    }

  • @karinazhebina9970
    @karinazhebina9970 Před rokem

    Было бы клёво увидеть интервью с девушкой :)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Если есть кандидаты, которые хотят пройти собеседование - просто напишите на почту proselytear@yahoo.com
      Никаких ограничений по полу нет :)

  • @user-qb3hq3mv2d
    @user-qb3hq3mv2d Před rokem

    21:54
    Разве сложность операции не становится равна Log(N) при большом количестве коллизий ?
    Ведь если все объекты попадают в 1 ячейку, ячейка после преобразования становится TreeSetом, а худшее время у TreeSetа Log(N). Или это не так ?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Вы правы, с учетом оптимизации это так. Без неё - по классике - O(N)

    • @alex0destroyer
      @alex0destroyer Před rokem

      А Джун ответил О(1). Главное - уверенно врать.

  • @YWNWA-ZXC
    @YWNWA-ZXC Před 10 měsíci

    По хранимым процедурам я бы добавил что это плохо в случае с Java проектами, точнее с проэктами, которые основаны не на БД software(где всетаки вся логика пишется в самой бд), потому что если нам прийдется менять базу данных(например на nosql, graphdb, ну или другое рбд), то мы потеряем эту логику. И это просто ломает архитекутуру проекта, ведь смысл Spring'a в гибкости и возможности легко заменять слои сервиса(repository/service/controller). А использование процедур это нарушит.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 10 měsíci

      Спасибо за комментарий и хорошее дополнение!

  • @user-cx4nj6io8x
    @user-cx4nj6io8x Před 9 měsíci

    Если я правильно понял задачку, вот мое решение с учетом 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;
    }

  • @alexandr6055
    @alexandr6055 Před rokem

    Первая половина меня просто удивила, думаю вот это мощный парень, про память в джаве как рассказал! А на практике с мапой потёк (( может переволновался просто?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Да, вероятнее всего из-за волнения

  • @anjelomanoranjan
    @anjelomanoranjan Před 10 měsíci

    Женя, я правильно понял, что когда какое-то приложение (возможно веб-сервис) имеет сбой, тормозит - причина может заключаться в активизации Garbage Collector - удалении ненужного?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 10 měsíci +1

      Чаще всего, это связано с кодом, который пишут разработчики, а не GC.

    • @anjelomanoranjan
      @anjelomanoranjan Před 10 měsíci

      @@EugeneSuleimanov спасибо. Но с gc может быть тоже связанно?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 10 měsíci +1

      @@anjelomanoranjan да, но крайне маловероятно.

    • @anjelomanoranjan
      @anjelomanoranjan Před 10 měsíci

      @@EugeneSuleimanov спасибо. А ещё хочу тебя попросить, сделать харжкорное видео по тому, как разработчики ищут по трассировке стека крыши и правят их. Говорят - это очень сложный процесс. Хочется посмотреть как это все на практике)

  • @kras_mazov
    @kras_mazov Před 11 měsíci

    Взяли ли кандидата на работу?
    Что важнее в интервью, хорошо ориентироваться в теоретических вопросах или умение решить задачу?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 11 měsíci

      Спасибо за комментарий!
      Это мок-собеседование (тренировочное).
      По важности - важно все в комплексе.

  • @JIockjoy
    @JIockjoy Před rokem

    Первый вопрос от собеседующего и сразу его поправлю, мы не передаем переменные в методы, мы передаем значения этих переменных. А вот, как передаются эти значения в виде копий или видом ссылок на эти значения, вот тут и вопрос Не понимаю что хочешь получить в ответ, когда ставишь так вопрос. Почитайте что такое переменные.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      Ваш ответ не корректный, если я верно все понял. Здесь можно поиграть в семантику, но технически этот комментарий не имеет смысла. Поправьте меня, пожалуйста, если я что-то упустил.

    • @JIockjoy
      @JIockjoy Před rokem

      ​@@EugeneSuleimanov Спасибо за ваше внимание, да я поправлю с вашего разрешения. Переменная это область памяти, она обозначена именем в котором хранится физический адрес. По адресу в будущем будет сохранено значение определенного типа. Если вы решили создать функцию, то вы создаете адресное пространство с новыми переменными обозначающие свои личные (область видимости) адреса. И нельзя передать переменную от слова совсем. Но можно передать значение этой переменной. Вы же просто спросили - "Как функция принимает переменные?". Правильно поставлен вопрос должен был звучать - "Каким образом, созданные функции в программе, могут принимать значения переменных из другой области видимости, для данного языка программирования?"
      Именно функции во множественном числе, иначе бы я попросил вас, показать мне ту функцию о которой вы лично спросили.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      @@JIockjoy я понял о чем вы, спасибо. И как и говорил ранее - здесь семантика. Таким же образом можно усложнить и ваш вопрос (хоть передачи информации о состоянии кварков), но суть от этого не изменится. Для Java разработчиков - это одно и тоже.

  • @BolsheDelaMensheSlov
    @BolsheDelaMensheSlov Před rokem

    Собеседования реально так проходят, или обычно ни кто не разжевывает так ничего?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +1

      Зависит от ситуации, но не всегда дают время кандидату на «раскачку»

  • @alexandr6055
    @alexandr6055 Před rokem

    Евгений, какой вердикт? Взяли бы парня, если бы это было реальное собеседование?

  • @user-mz7bj9kb6q
    @user-mz7bj9kb6q Před 9 měsíci

    По теории очень сильный, по практическому программированию достаточно слабый. Кстати часто встречается после интенсивных курсов где людей по теории натаскивают а практики практически нет.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 9 měsíci

      Спасибо за комментарий!
      Опыт - дело наживное.

  • @racot7145
    @racot7145 Před rokem +1

    Я не люблю теорию. лучше задачи. А лучше вообще тестовое задание а потом по нему разговаривать.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      В реальности крайне небольшой процент достойных кандидатов соглашается на выполнение тестового до собеседования. Но вы правы - это хороший подход. Несколько раз сталкивался с ситуацией, когда на собеседовании просто нужно было реализовать простое АПИ (лайв кодинг) и по ходу выполнения как раз общались по коду.

    • @racot7145
      @racot7145 Před rokem

      @@EugeneSuleimanov нет мне кажется только синьор будет выебываться и откажется от тестового. А если джун или мидл. Так просто сократишь пул кандидатов. Другое дело, что тогда не удастся сбить зп во время собеса. Кстати апи с секьюрити и jwt ?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@racot7145 нет, там было стандартное АПИ с немного мудрёной логикой.

    • @user-gd1xv7lq6y
      @user-gd1xv7lq6y Před rokem

      @@EugeneSuleimanov Буквально вчера проходил собеседование на котором мы обсуждали мой код тестового задания - небольшое CRUD Spring Boot REST приложение. Мы шли по теории ООП, SOLID и Spring Core и одновременно меня просили показать в коде где я это использовал и найти ошибки. Затем меня попросили доработать свой метод, чтобы нам возвращался json с иерархической структурой сущностей @OneToMany. Этот практический блок я снова завалил. Потому что я пока не могу во время собеседования собрать мысли в кучу и сразу выдать решение. Мне нужно сначала подумать, поэкспериментировать с кодом. Затем пошли вопросы по мапе, шаблонам и т.д.
      В общем волнение очень сильно мешает.

  • @user-og2ti2wd5o
    @user-og2ti2wd5o Před rokem +1

    чудово

  • @mustache_mentor
    @mustache_mentor Před 2 měsíci

    HashMap не коллекция

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 2 měsíci +1

      Не в иерархии Collection интерфейса, но входит в Collection Framework с версии 1.2

  • @Roman218
    @Roman218 Před 6 měsíci

    Элементарная задача, это тот самый случай, когда кандидат превосходно заучил теорию, но на практике в коде - никакущий, что сразу анулирует все его теор. знания. Поэтому всегда необходимы алгоритмические задачи на собеседованиях.

  • @anu8is930
    @anu8is930 Před 11 měsíci

    Моє побажання на майбутнє. Русачків не потрібно розвивати, нехай там в болоті в себе самі крутяться

  • @Kolenkalegend
    @Kolenkalegend Před rokem +3

    Ппц, теперь я понял, что ничего не знаю про Java

  • @fara0n333
    @fara0n333 Před rokem +2

    Привет, Женя а почему ты не спрашиваешь кандидатов гит?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem +6

      Привет!
      Спасибо за комментарий :)
      По опыту - если кандидат сильный, то и так знает основные команды. А экзотика нужна крайне редко и легко ищется в доке. И сама необходимость использовать «экзотику» возникает только если процессы выстроены не лучшим образом.

    • @fara0n333
      @fara0n333 Před rokem +1

      @@EugeneSuleimanov Задал вопрос такой))) А сам за рабочий день не один комит не сделал, спасибо за контент!)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před rokem

      @@fara0n333 :)

  • @semensemenoff5954
    @semensemenoff5954 Před rokem

    Коммент для поддержки канала. Задачу можно по короче
    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);
    }