Тестовое собеседование Java разработчика #25 - Алексей Пригода

Поделиться
HTML-код
  • Опубликовано: 6 сен 2024

Комментарии • 91

  • @Guhar4k
    @Guhar4k Год назад +18

    Женя, спасибо за интервью! Думал, что будет страшно смотреть, но в целом ты прав, что всё получилось хорошо. Было очень приятно пообщаться!
    Конечно, хотелось блеснуть техническими знаниями, но, на мок-интервью я шёл в первую очередь узнать свои пробелы (с чем мы успешно справились). Будем работать)))

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +2

      Тебе спасибо за время, Лёша!
      Взаимно, было очень приятно пообщаться :)

    • @katefedorova624
      @katefedorova624 Год назад +1

      Спасибо, было приятно смотреть интервью, очень уверенные и разумные ответы.
      Скажи пожалуйста, а задачи по типу "сделать автоматическое тестирование через инструкции постман" ты сам себе ставишь или такое от лида/сеньора прилетает?

    • @Guhar4k
      @Guhar4k Год назад

      @@katefedorova624 Спасибо!
      Задача была от лида, и было это когда я только пришёл на проект джуном (допускаю, что возможно это был один из способов занять меня :D).
      У нас скопилась довольно обширная коллекция таких тестов, лид рассматривал это как один из вариантов теста API. Я проверил эту возможность и довёл до рабочего решения. В итоге этот вариант не пригодился и не был интегрирован.

    • @katefedorova624
      @katefedorova624 Год назад

      @@Guhar4k понятно) очень любопытно, как всё устроено в других проектах

  • @user-lx4dc1ls3e
    @user-lx4dc1ls3e Год назад +6

    Было очень интересно!!! Евгению, как всегда огромная благодарность👍👍👍

  • @voker8465
    @voker8465 Год назад +5

    Ещё не смотрел ,но огромное Вам спасибо, Евгений !❤

  • @LacqueredNoCap
    @LacqueredNoCap Год назад +3

    Спасибо большое за такой формат собеседования!! Сам мечу в FAANG, поэтому начинаю разбираться c форматом System Design интервью!

  • @QuickCube
    @QuickCube Год назад +3

    Большое спасибо за проделанную работу. Интересно смотреть интервью мидл, сеньер разработчиков!

  • @user-lk8n0fgjk
    @user-lk8n0fgjk Год назад +3

    Отличное видео! Продолжай данный вид интервью, вопросы про дизайн просто топ!!!

  • @ibraim3197
    @ibraim3197 Год назад +6

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +2

      Спасибо за комментарий! Надеюсь, материал будет полезен :)

    • @UFOBroCaptain
      @UFOBroCaptain Год назад +1

      реферал дать ?

    • @da7e
      @da7e Год назад

      ​@@UFOBroCaptainа можно??

  • @user-pf2hq3un2r
    @user-pf2hq3un2r Год назад +2

    Познавательно. Спасибо. Идея с превью в начале ролика хорошая, передаёт кратко содержимое и настраивает на просмотр.

  • @adeskmath
    @adeskmath Год назад +2

    Отличное собеседование, пробежались по многим темам, самые интересные вопросы - "как вы ... " по текущей работе,
    при этом в вопросах много информации по теме, спасибо.

  • @alevadnaya
    @alevadnaya Год назад +2

    Faang формат интервью тоже очень интересный. Спасибо, Евгений.

  • @MrRomanvideo
    @MrRomanvideo Год назад +6

    1:22 Ха-ха! Тоже 1.5 года на проекте и не понимаю, что он делает 😂

  • @Roman-ec9iw
    @Roman-ec9iw Год назад +3

    Спасибо огромное!

  • @user-qy4dt8sx7l
    @user-qy4dt8sx7l Год назад +2

    Спасибо! Очень интересно!

  • @SP-cx8oq
    @SP-cx8oq Год назад +3

    Отличный формат видео, более оживленный) Евгений, подскажите пожалуйста, что бы вы порекомендовали почитать/посмотреть по system design из актуального сегодня?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +2

      Спасибо за отзыв!
      Я оставлю полный список рекомендаций в разборе интервью. Материалы по системному дизайну будут там.

  • @vetl-foto
    @vetl-foto Год назад +2

    Спасибо за видео 🤝

  • @SvetlanaCapri
    @SvetlanaCapri Год назад

    Спасибо, Ваши видео помогают в обучении.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад

      Спасибо за комментарий! Рад, что материал оказался полезен.

  • @peremysh
    @peremysh 21 день назад

    ща бы систем дизайн у жава мидла спрашивать😀
    Леха - молодец! Хорошо держался

    • @EugeneSuleimanov
      @EugeneSuleimanov  21 день назад

      @@peremysh спасибо за комментарий!

  • @madcalm2024
    @madcalm2024 Год назад +1

    Задачу неповторяющихся символов проще всего через последовательный граф-дерево. Или перепоручить ее BingChat-у: ======> Java: в строке найти длину самой длинной подстроки из неповторяющихся символов =========> Для того чтобы найти длину самой длинной подстроки из неповторяющихся символов в строке на Java, можно использовать алгоритм "скользящего окна". Этот алгоритм работает следующим образом:
    1. Создаем пустой HashSet.
    2. Инициализируем два указателя - left и right - в начало строки.
    3. Перемещаем правый указатель вправо до тех пор, пока не встретим повторяющийся символ.
    4. Запоминаем длину текущей подстроки без повторяющихся символов.
    5. Перемещаем левый указатель вправо до тех пор, пока не удалим повторяющийся символ из HashSet.
    6. Повторяем шаги 3-5 до конца строки и запоминаем максимальную длину подстроки без повторяющихся символов.
    Вот пример кода на Java:
    ```java
    public static int lengthOfLongestSubstring(String s) {
    Set set = new HashSet();
    int left = 0;
    int right = 0;
    int maxLength = 0;
    while (right < s.length()) {
    if (!set.contains(s.charAt(right))) {
    set.add(s.charAt(right));
    maxLength = Math.max(maxLength, set.size());
    right++;
    } else {
    set.remove(s.charAt(left));
    left++;
    }
    }
    return maxLength;
    }
    ```

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

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

    • @lelelelevv
      @lelelelevv Год назад

      тут 2 указателя и всё

  • @nsandrus
    @nsandrus Год назад +1

    Отличное интервью, сделал себе пометки что подтянуть надо, у меня получился чуть другой вариант, без мапы но с "прыгающим" назад курсором. Для любителей кода
    public static void main(String[] args) {
    String s = "abcadefa";

    Set chars = new HashSet();
    int maxLen = 0;

    for(int i=0; i

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад

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

    • @alenagavriluk9663
      @alenagavriluk9663 Год назад +1

      зачем i -= chars.size(); ? Вазш код не работает на первой строке из примера

    • @alenagavriluk9663
      @alenagavriluk9663 Год назад

      public int lengthOfLongestSubstring(String s){
      if(s.length() == 0) return 0;
      Set chars = new HashSet();
      int maxLen = 0;
      for(int i=0; i

    • @igorivanov5115
      @igorivanov5115 8 месяцев назад

      можно ещё проще:
      String s = "bbbbbbb";
      int ans = 0;

      char[] c = s.toCharArray();

      for(int i = 0; i < c.length - 1; i++) {
      for(int j = i + 1; j < c.length; j++) {
      if(c[i] == c[j]) {
      if(ans < j - i) {
      ans = j - i;
      }
      break;
      }
      }
      }

  • @araa3308
    @araa3308 8 месяцев назад

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

  • @gulfstream1800
    @gulfstream1800 Год назад +2

    полезно

  • @shluhogon_42
    @shluhogon_42 Год назад

    Не смотрел ещё, как решил задачу, но для подобного рода задач придумал алгоритм не так давно. Делаешь структуру, например линкед лист. Заводишь инт результат. Проходишься в цикле по строке. Смотришь, есть ли в листе этот символ. Если есть, то удаляешь с начала списка симовлы до тех пор, пока он не будет содержаться там. В любом случае добавляешь елемент в конец и в результат добавляешь маусимум от пары длина списка - результат.
    Но кажется, это не очень быстро

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      Не думаю, что через LinkedList оптимальное решение, ведь поиск по нему - O(n).

    • @shluhogon_42
      @shluhogon_42 Год назад +1

      @@EugeneSuleimanov конечно не оптимально. Но как решение в лоб работает)

  • @IvanIvanov07
    @IvanIvanov07 9 месяцев назад

    Интересное видео, при прохождении курса Java в онлайн школе мы изучали строки и там была такая задачка, мб где то недопонимаю, почему "миддл"? Потому что он знает Spring? А я еще нет?

  • @MrRomanvideo
    @MrRomanvideo Год назад +1

    Формат интервью отличный, но для этого нужен быть синьор на той стороне. Человек за 2 года не понял что его проект делает, а тут ему Ютуб надо написать...

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      Да, формат не самый простой - перегнул с уровнем вопросов в ютом случае.
      И спасибо за отзыв!

  • @user-kh7du4ot2j
    @user-kh7du4ot2j Год назад +1

    Круто

  • @JavaDevOld
    @JavaDevOld Год назад +2

    Здравствуйте, Евгений,... По поводу задачки про стринги, где нужно найти самую длинную из неповторяющихся символов... Здесь, мне кажется, очень помогут Set ..... Через Set решать. Будет мало кода довольно... Хотя, не уверен, что работать будет быстрее... СПС )))))))

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад

      Спасибо за комментарий. Если приведён пример реализации - будет отлично. Я, к сожалению, на данный момент не вижу решения через Set.

    • @JavaDevOld
      @JavaDevOld Год назад +1

      @@EugeneSuleimanov Сейчас попробую.... привести...... СПС..

    • @LacqueredNoCap
      @LacqueredNoCap Год назад +2

      Эту задачу можно решить через sliding window + Map, чтобы запоминать позицию символа в строке, на которую нужно сдвигать наше "окно", если пришел повторяющийся символ. А вообще эта задача с литкода под номером 3))

    • @madcalm2024
      @madcalm2024 Год назад +2

      @@LacqueredNoCap Вот решение на Set-e от BingChat :
      ```
      public static int lengthOfLongestSubstring(String s) {
      Set set = new HashSet();
      int left = 0;
      int right = 0;
      int maxLength = 0;
      while (right < s.length()) {
      if (!set.contains(s.charAt(right))) {
      set.add(s.charAt(right));
      maxLength = Math.max(maxLength, set.size());
      right++;
      } else {
      set.remove(s.charAt(left));
      left++;
      }
      }
      return maxLength;
      }

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      @@madcalm2024 интересно, опробую. Спасибо

  • @user-ur7bn1kd1p
    @user-ur7bn1kd1p 7 месяцев назад

    А какой смысл на интервью рассказывать сценарий решения задачи?
    Обычно происходит так: продумал 5 минут, всё, дальше можно не решать, свободен.
    Не понял задачу, значит на работе не поймёт задачу с первого раза.

  • @konstantinemelyanov1684
    @konstantinemelyanov1684 Год назад +1

    Даёшь System Design !

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      Обязательно, скоро начну публиковать видео отдельно по нему :)

    • @konstantinemelyanov1684
      @konstantinemelyanov1684 Год назад +1

      @@EugeneSuleimanov Недавно проходил System Design в Авито. Всё было хорошо, интервьюер остался доволен. Хвалил. Пришёл отказ. Сейчас для меня очень не понятны критерии таких интервью и материалы для подготовки.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Год назад +1

      @@konstantinemelyanov1684 могли прост обнайтовивший другого кандидата, который запросил более низкую ЗП. Масса вариантов.

  • @lelelelevv
    @lelelelevv Год назад

    Я уж думал, что для джуна сложноватые вопросы, а это миддл) фух)

  • @user-og2ti2wd5o
    @user-og2ti2wd5o Год назад +1

    Отакої

  • @ktotam8913
    @ktotam8913 Год назад

    Люди, подскажите книгу мощную по stream API, а то я щас с ума сойду, как работать со стримом. Весь ютуб в простых примерах, а у меня задания сложные 😪

    • @Guhar4k
      @Guhar4k Год назад

      А есть пример задания?

    • @ktotam8913
      @ktotam8913 Год назад

      @@Guhar4k Дан массив студентов с оценками по предметам. Найти (необходимо получить Map):
      Найти среднее каждого студента по предметам;
      class Student3_1 {
      //1.Дан массив студентов с оценками по предметам. Найти (необходимо получить Map):
      //• Найти среднее каждого студента по предметам;
      //• Найти среднее по предмету среди всех студентов;
      //• Найти среднее среди всех студентов по всем предметам (общее среднее);
      //• Посчитать «оценку» студента, исходя из его общего количества баллов: 0-7 - bad, 8-15 - normal, 16+ - good.
      //• Получить String - название самого легкого предмета среди студентов.
      //• Получить String - самого умного студента.
      String name;
      Map marks;
      public Student3_1(String name, Map marks) {
      this.name = name;
      this.marks = marks;
      }
      }

    • @ktotam8913
      @ktotam8913 Год назад

      @@Guhar4k мне либо с окна прыгать, либо норм книгу искать. 😹Видел решение одного из заданий через стрим с Collection. singletonelist, так это вообще сущий кошмар, как понять, когда его в стримах исп-ть!

    • @MrRomanvideo
      @MrRomanvideo Год назад

      Java 8 in action

    • @ktotam8913
      @ktotam8913 Год назад

      @@MrRomanvideo вау, выглядит внушающе) спасибо!

  • @John.Constantine.777
    @John.Constantine.777 11 месяцев назад

    В 30 лет не может связать 2х слов не вставив "ну"...

    • @John.Constantine.777
      @John.Constantine.777 11 месяцев назад

      и не справился после 2х лет работы?...
      а нафиг вам map? вам же не требуется хранить несколько значений, вы ищите одно.

  • @Revasha228Crime
    @Revasha228Crime Год назад

    Задача с неповторяющимися символами, не нашел такого решения в комментариях, но тесты проходят
    int calc(String str) {
    int maxSize = -1;
    Set unique = new HashSet();
    for (Character s : str.toCharArray()) {
    if (unique.contains(s)) {
    if (maxSize < unique.size()) { //update size
    maxSize = unique.size();
    }
    unique.clear();
    }
    unique.add(s);
    }
    return maxSize == -1 ? unique.size() : maxSize; //prevent 'bbbbb'
    }

    • @user-xu2fb5jk3s
      @user-xu2fb5jk3s Год назад

      ваш метод для строки "ababc" возвращает двойку🙃

    • @user-zr3xj8fy5q
      @user-zr3xj8fy5q Год назад

      А между тем, метод то рабочий, просто нужно return заменить на
      Math.max(unique.size(), maxSize)