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

Sdílet
Vložit
  • čas přidán 21. 08. 2024

Komentáře • 110

  • @user-nz8zq3gj1f
    @user-nz8zq3gj1f Před 3 lety +22

    Такс, сразу лайк, и пошли смотреть

  • @andrprv
    @andrprv Před 3 lety +14

    Смотрю все выпуски, что не знаю - сразу в Гугл читать. Очень помогло недавно пройти собеседование. Спасибо вам

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

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

    • @asdasd-fu4ow
      @asdasd-fu4ow Před 3 lety

      Что спрашивали на собесе?

    • @andrprv
      @andrprv Před 3 lety

      @@asdasd-fu4ow core, collections, exceptions, stream API, ооп

    • @asdasd-fu4ow
      @asdasd-fu4ow Před 3 lety

      @@andrprv Спасибо, удивило что только по кору вопросы. А английский как-то проверяли?

    • @user-nz8zq3gj1f
      @user-nz8zq3gj1f Před 3 lety +1

      @@andrprv на какую позицию рассматривались? И что по итогу, взяли? Удачи!

  • @alexsav7427
    @alexsav7427 Před 3 lety +5

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

  • @user-bk3km5ud7m
    @user-bk3km5ud7m Před 3 lety +7

    Евгений, очень импонирует Ваша корректность.

  • @user-yb1vl4po2y
    @user-yb1vl4po2y Před 3 lety +3

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

  • @VladimirDubenco
    @VladimirDubenco Před 3 lety +65

    Пересмотрев видео и прочитав комменты появилось желание отписаться для того что-бы не судили строго. Во-первых я сам себя не узнал - я очень волновался и суетился. Во-вторых у меня нет профильного образования. В этом контексте, считаю что интервью получилось удачным (не считая заминок со связью), более того - всем советую, посмотрев на себя со стороны вы получите массу полезной информации о себе в первую очередь. Спасибо Евгению за проведенное время!

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety +12

      Не стоит переживать :) В любом тестовом собеседовании наши цели:
      1. Определить текущий уровень.
      2. Акцентировать внимание на пробелах.
      3. Скорректировать процесс изучения, чтобы эти пробелы закрыть.
      Остальное - лирика, на которую не стоит обращать внимания. Развитие себя как разработчика - первично :)
      И по моему мнению, для "самоучки", уровень не плохой + момент волнения присутствует на любом собеседовании (особенно публично).

    • @leetovetz
      @leetovetz Před 3 lety +2

      Да. ну отписываться. все ок. лучше целься в звезды. так ты точно в луну попадешь)))

    • @VladimirDubenco
      @VladimirDubenco Před 3 lety +11

      @@leetovetz я имел в виду написать пояснение, а не отписываться от канала ;)

    • @KolomiecSergeyK
      @KolomiecSergeyK Před 3 lety

      @@leetovetz чуток навпаки, цілиться в міцясь і в між зірками точно будеш ;)

    • @DartPeredoz
      @DartPeredoz Před 3 lety

      Смысл отписываться? Ну понервнечал, ну нет знаний. Ну ты ж для этого и пошёл на собеседование.

  • @dentor2005
    @dentor2005 Před 3 lety +3

    Евгений, звук! Звук, Евгений! Вся польза сводится к минимуму, когда учишься приставив ухо к динамику :) Спасибо!

    • @CC-vh4bv
      @CC-vh4bv Před 3 lety

      Смотрел с телефона, со звуком всп норм

  • @MrJeremyMiles
    @MrJeremyMiles Před 3 lety +28

    Евгений, неплохо было бы с микрофоном что-то решать. Потому что качество записи совсем не соответствует качеству содержимого :(

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety +3

      Да, спасибо, никак не могу победить - уже и техника должна позволять, но, качество ещё страдает

    • @ALEKCander86
      @ALEKCander86 Před 3 lety

      согласен, качество аудио и видео оставляет желать лучшего, хотя тут многие и не за этим, просто вызывает некое удивление))

  • @ilyakovalev9392
    @ilyakovalev9392 Před 3 lety +6

    Даешь синиора!
    P.S. Спасибо огромное за труды!

  • @Mr.J248
    @Mr.J248 Před 3 lety

    сижу записываю вопросы.Спасибо Вы очень помогаете тем кто на начальном сложном пути))

  • @inzagher
    @inzagher Před 3 lety +5

    Забавно осознавать, что после шести лет работы разработчиком (из них на Java около 1.5 года, остальное на C#, C++, JS/TS), я на гипотетическом собесе не тяну даже на джуна. Это при том, что работа ведется с достаточно крупными и сложными проектами.

    • @renegat174
      @renegat174 Před 3 lety

      тоже самое)))

    • @Lecomptby
      @Lecomptby Před 3 lety +3

      Побольше бы таких комментариев)

    • @alevadnaya
      @alevadnaya Před 3 lety

      Прохождение собесов - отдельный навык, это точно

  • @BCEMCPATb
    @BCEMCPATb Před 3 lety +2

    Очень нравилось когда в конце говорили подходит на работу или нет... джун или нет!

  • @JohnDoe-km7ch
    @JohnDoe-km7ch Před 3 lety +1

    Сначала лукас, потом смотрим)

  • @user-yu4yd8fr6t
    @user-yu4yd8fr6t Před 3 lety +13

    Волнуется чувак сильно, поэтому поплыл после первой ошибки. Я его прекрасно понимаю, у самого такая же беда.

    • @user-yu4yd8fr6t
      @user-yu4yd8fr6t Před 3 lety

      Кст, в решении задачи string.indexof(“”) будет возвращать 0 в любом случае, так что if не обязательно писать, не?

  • @servalstar
    @servalstar Před 3 lety +2

    В этот раз нормальная задача 👍

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Спасибо!

    • @BookwormYevgen
      @BookwormYevgen Před 3 lety

      В чем ее нормальность? Мне она наоборот совершенно бессмысленной представилась.

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

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

  • @kotikvacia9970
    @kotikvacia9970 Před 3 lety

    Крутяк, с меня подписка)

  • @VinnySanPuhimoto731
    @VinnySanPuhimoto731 Před 3 lety +2

    34:20 Мне казалось, что Servlet - это интерфейс, реализация которого расширяет функциональные возможности сервера, а не класс
    Евгений, ваше мнение ?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Servlet - да, все верно. Интерфейс, у которого есть реализации и http лишь одно из них.

    • @olexiyb4691
      @olexiyb4691 Před 3 lety +2

      Человек пытался говорить про httpServlet, а это абстрактный класс

  • @DartPeredoz
    @DartPeredoz Před 3 lety +1

    Терпения тебе! Даже для меня, только начинающему изучать джаву, это жёстко. :)

  • @kraken645
    @kraken645 Před 3 lety +2

    Как бы узнать правильные ответы на поставленные вопросы? Можно ли текстом выводить на экран ответ? Это было бы супер здорово!!

    • @kisko8981
      @kisko8981 Před 3 lety

      дык выписать вопросы, да погуглить

  • @TheCximus
    @TheCximus Před 3 lety +4

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

  • @FilmicFil
    @FilmicFil Před 3 lety +4

    Что значит "Spring уже в прошлом" ? Серьезно?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Это где было сказано?)

    • @FilmicFil
      @FilmicFil Před 3 lety +1

      @@EugeneSuleimanov Мне показалось что Владимир это сказал 37:21 Может я контекст неправильно понял?)

    • @meison7969
      @meison7969 Před 3 lety

      @@FilmicFil это сервлеты в прошлом имелось

  • @NummeSpnet
    @NummeSpnet Před 3 lety +2

    в этот раз список слов в оглавлении к видео уже более знакомый))))

    • @NummeSpnet
      @NummeSpnet Před 3 lety

      @Иван Ррр а какие данные раскрывать? твоё ФИО да откуда ты? )такие базы у тех кого надо давно есть, к тому же ещё с паспортными данными, номером телефона и тд. если ты хотя бы раз взял кредит или заказал карту в банке. считай твои данные так или иначе слили)

  • @user-yz4cf6ic5r
    @user-yz4cf6ic5r Před 3 lety

    с 2018 года jjwt обновляется не как один пакет, а как много разных. Где можно подробнее про это почитать? Там есть jjwt-root, jjwt-iml, jjwt-api.... что к чему

  • @DARIAPOVIRAEVA
    @DARIAPOVIRAEVA Před 3 lety +4

    Посмотрел HashMap и выключил :(

  • @JohnDoe-km7ch
    @JohnDoe-km7ch Před 3 lety +4

    Меня недавно очень красиво нагнули на первом вопросе: class A{private int x, public int getx(){return x;}}, class B extend A. Есть ли поле х в классе Б? что будет при вызове геттера из объекта Б? И до одного места, что я там знаю про коллекции, многопоточность и тд. Вопрос действительно элементарный, так что гуглите "вопросы на собеседование", господа.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety +1

      Да, такие вопросы тоже встречаются. Особенно, если интервьюер готовится/готовился к сертификации Oracle. Там такие вопросы сплошь и рядом :)

    • @user-oc7py1vy6s
      @user-oc7py1vy6s Před 3 lety +3

      А что сложного в этом вопросе?
      Поле в Х в классе B есть. Но к нему нельзя обратиться.
      При вызове геттера из класса B вызовется вернётся поле X класса В.
      Поправьте меня если я не прав, просто мне этот вопрос не кажется сложным, но я на него может не верно отвечаю.

    • @user-wt1tp2ff3h
      @user-wt1tp2ff3h Před 3 lety +1

      @@user-oc7py1vy6s Если в потомке не переопределен метод getx(), то при вызове этого метода у экземпляра класса потомка будет вызываться реализация этого метода в родителе и вернет значение переменной х родителя. Если нужно получить значение переменной потомка - нужно переопределить в потомке getx() и создать поле х в явном виде.
      Хотя я самоучка с гуманитарным образованием, так что могу и ошибаться.

  • @stormvoid7017
    @stormvoid7017 Před 3 lety

    Хотел бы как нибудь через месяц попробоваться на миддла? Евгений, будет такая возможность или у вас все сильно занято?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Пишите на почту proselytear@yahoo.com - обсудим )

    • @stormvoid7017
      @stormvoid7017 Před 3 lety

      @@EugeneSuleimanov отписал)

  • @MrSimon094
    @MrSimon094 Před 3 lety

    Такая реализация получилась
    public class Test {
    @org.junit.Test
    public void smoke() {
    String[] input = {"abcd", "abc", "abcd", "abc", "abcf"};
    System.out.println(commonPrefix(input));
    }
    private String commonPrefix(final String[] input) {
    if (input == null) {
    throw new NullPointerException();
    }
    if (input.length == 0) {
    return "";
    }
    final String elToCompare = input[0];
    String prefix = "";
    String wishedPrefix = "";
    for(int i = 0; i < elToCompare.length(); i++) {
    wishedPrefix = elToCompare.substring(0, i + 1);
    for (int j = 1; j < input.length; j++) {
    if (!input[j].contains(wishedPrefix)) {
    return prefix;
    }
    }
    prefix = wishedPrefix;
    }
    return prefix;
    }
    }

  • @bogdanskrypnyk9362
    @bogdanskrypnyk9362 Před 3 lety

    Евгений , Добрый день!
    Хочу попасть на тестовое собеседование!
    Я закончил курсы Java Complex от OktenWeb во Львове.
    Сейчас ищу работу , хочу проверить свои знания перед реальным собесом).
    Буду рад любому фидбэку)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Пишите на почту - proselytear@yahoo.com- обсудим детади

  • @igorbolshiy91
    @igorbolshiy91 Před 3 lety

    Почему в комментариях нет умного человека который кратко разложит каждый вопрос по полочкам?

  • @rtsz1151
    @rtsz1151 Před 3 lety

    Евгений, а можно ли пройти у вас собеседование, но без видео и не разглашая фамилию и имя?

  • @retodenis5181
    @retodenis5181 Před 3 lety +4

    Собеседник сказал в конце, что он не знал что учить и что spring уже в прошлом? Это как то странно...

    • @Denis-xc4qz
      @Denis-xc4qz Před 3 lety

      Сприг в прошлом, уже снова все пишут на чистых сервлетах)

    • @durbanpoison8831
      @durbanpoison8831 Před 3 lety +2

      @@Denis-xc4qz Именно! Сейчас такие тенденции во всем. Все опять начали устанавливать в домах стационарные проводные телефоны, а вместо электричества использовать керосиновые лампы и лучины

  • @kurmasasha
    @kurmasasha Před 3 lety

    А зачем два цикла?
    public String longestPrefix(String[] strings) {
    if (strings == null) {
    throw new IllegalArgumentException("Массив не должен быть null!!!");
    }
    if (strings.length == 0) {
    return "";
    }
    int count = 0;
    for (int i = 1; i < strings.length; i++) {
    if (!(strings[0].length() >= i) || !(strings[i].length() >= i)) {
    break;
    } else {
    if (strings[0].substring(0, i).equals(strings[i].substring(0, i))) {
    count++;
    }
    }
    }
    return strings[0].substring(0, count);
    }

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

      Прикинь у тебя в массиве 1000 строк, первая строка в котором "abc". Попробуй выполнить strings[0].substring(0, 999)

  • @caffeinejavacode1475
    @caffeinejavacode1475 Před 3 lety

    По HashMap поправте если я не прав. Вычесляеться hash ключа, допустим он 55664 этои есть наш index и мы сразу зная его получаем value

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Это не совсем индекс, но, на основании ключа мы определяем этот индекс бакета.

    • @caffeinejavacode1475
      @caffeinejavacode1475 Před 3 lety +1

      @@EugeneSuleimanov Точно там есть формула index = hashCode(key) & (n-1).

    • @caffeinejavacode1475
      @caffeinejavacode1475 Před 3 lety

      @Nikita Petrenko эта формула была в старой версии Java если я не ошибаюсь
      (с остатнком от деления) взгляните на сорсы

  • @anjelomanoranjan
    @anjelomanoranjan Před rokem

    Евгений, а ты в Москве живешь?

  • @dzmitrydziachenka4602
    @dzmitrydziachenka4602 Před 3 lety

    Евгений, с будущими джава разработчиками уже все обмусолено, когда будут мидлы и сеньоры? :)

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Как только появятся желающие такого уровня :)

  • @user-zv7wi7kf4i
    @user-zv7wi7kf4i Před 3 lety

    А почему решили, что первый элемент самый короткий?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Такого предположения не было, насколько я помню

  • @mass-any_key-lite
    @mass-any_key-lite Před 3 lety

    Забавные собеседования.

  • @user-hh5ci7rs7s
    @user-hh5ci7rs7s Před 3 lety +1

    что он говорит....

  • @fara0n333
    @fara0n333 Před 3 lety

    Тяжко , ещё учить надо , желательно почитать книги с примерами

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Да, конечно, учить нужно всегда :)

  • @vladyslavstusiak5491
    @vladyslavstusiak5491 Před 3 lety

    Наваял наркоманское решение задачки пока смотрел.
    Вроде работает)
    public static String longestPrefix(String[] strs) {
    char commonSymbolPrefix = strs[0].charAt(0);
    for (int i = 0; true; i++) {
    try {
    for (String word :
    strs) {
    if (word.charAt(i) != commonSymbolPrefix) {
    throw new IndexOutOfBoundsException();
    }
    }
    commonSymbolPrefix = strs[0].charAt(i + 1);
    } catch (IndexOutOfBoundsException e) {
    return strs[0].substring(0, i);
    }
    }
    }

  • @alexanderb5415
    @alexanderb5415 Před 3 lety

    public static String longestPrefix(String [] strs) throws Exception {
    if(Arrays.asList(strs).contains(null)) {
    throw new Exception("Contains null!");
    }
    String donor = strs[0];
    int index = 0;
    for(int i = 0; i < donor.length(); i++) {
    for(int j = 1; j < strs.length; j++) {
    try {
    if(strs[j].charAt(i) != strs[0].charAt(i)) {
    return donor.substring(0, index);
    }
    }
    catch(StringIndexOutOfBoundsException e) {
    return donor.substring(0, index);
    }
    }
    index = i + 1;
    }
    return donor.substring(0, index);
    }

  • @durbanpoison8831
    @durbanpoison8831 Před 3 lety +1

    Я один условие задачи не понял?)

  • @riversong9841
    @riversong9841 Před 3 lety

    class Test {
    public static String longestPrefix(String[] strs) {
    for (String str : strs) {
    if (str == null || str.isEmpty()) {
    return "";
    }
    }
    String shortestString = Arrays.stream(strs).min(Comparator.comparingInt(String::length)).get();
    return checkString(shortestString, strs);
    }
    public static String checkString(String s, String[] strings) {
    String result = s;
    for (String string : strings) {
    if (!string.contains(s)) {
    checkString(s.substring(0, s.length() - 1), strings);
    }
    }
    return result;
    }
    public static void main(String[] args) {
    System.out.println(Test.longestPrefix(new String[]{"abc","abcd","abcsdf","abcefe"}));
    }
    Такая же задача мне попадалась на собесе, только там был не префикс, а просто подстрока. Решила вот таким образом, ограничения на использование стримов не было.

    • @porosyonocheg
      @porosyonocheg Před 3 lety +2

      Что у вас выведет условно для кейса {"a","b"}?

    • @riversong9841
      @riversong9841 Před 3 lety +1

      ​@@porosyonocheg спасибо за ваш комментарий, поняла свою ошибку, выведется первая минимальная строка 'a'

  • @Aticinsane
    @Aticinsane Před 2 lety

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

  • @nicejacket6607
    @nicejacket6607 Před 3 lety +1

    как-то совсем каша в голове у человека, нужно более углублённо изучать основы

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Да, есть определённые пробелы, но, человек изучает полностью самостоятельно, поэтому требовать системности знаний не имеет смысла на текущем этапе.

  • @oleg12395
    @oleg12395 Před 2 lety

    Задачу не могу решить (((

  • @inzagher
    @inzagher Před 3 lety +1

    Можно еще сделать решение стримами. Не очень эффективно по сложности, но более читаемо (мне так кажется). Разъеб приветствуется.
    @SpringBootTest(classes = {ServiceRunner.class})
    public class LongestPrefixTests {
    @Test
    public void test() {
    assertEquals(findLongestPrefix(new String[]{ "ab", "abc", "abeeee"}), "ab");
    assertEquals(findLongestPrefix(new String[]{ "ab", "a", "abeeee"}), "a");
    assertEquals(findLongestPrefix(new String[]{ "abee", "abe", "abeeee"}), "abe");
    assertEquals(findLongestPrefix(new String[]{ "abee", "abe", "agfs"}), "");
    }

    public String findLongestPrefix(String[] array) {
    List list = Arrays.asList(array);
    return list.stream()
    .filter(prefix -> list.stream().allMatch(str -> str.startsWith(prefix)))
    .findFirst()
    .orElse("");
    }
    }

  • @askat25
    @askat25 Před 3 lety

    Нафиг нам это собеседование, где мобильные приложения на java?

  • @johndavids6297
    @johndavids6297 Před 3 lety +2

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

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety +2

      Спасибо, учту. И просто для информации (во время монтажа некоторые моменты были вырезаны + были проблемы со связью и иногда 10-30 секунд выпадают из видео).

    • @johndavids6297
      @johndavids6297 Před 3 lety +1

      @@EugeneSuleimanov Я написал не в упрёк, а для пользы, по себе знаю. )
      P.s. Спасибо за реакцию, отличные видео.

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety +1

      @@johndavids6297 Ещё раз спасибо. Самому себя сложно оценивать, поэтому я всегда крайне положительно отношусь к конструктивной критике :)

  • @ivanb8662
    @ivanb8662 Před 3 lety

    On слышу как Боатенг, думаю прочем тут футболист)

  • @fredor2844
    @fredor2844 Před 3 lety

    gist.github.com/Fedrilko/ebc38f740a34cf7e1a323aa345838830
    Я так зарешал эту задачку

  • @alexsav7427
    @alexsav7427 Před 3 lety

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

  • @misteranderson6058
    @misteranderson6058 Před 3 lety

    Это не настоящее собеседование?

    • @EugeneSuleimanov
      @EugeneSuleimanov  Před 3 lety

      Нет, это тестовое собеседование (mock)

  • @ascar66
    @ascar66 Před 3 lety

    Евгений спортом нужно заниматься хотя бы по 3 км в день проходить быстрым шагом. Вид такой как будто из дома месяц не выходил