Собеседование Middle C++

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 พ.ย. 2024

ความคิดเห็น • 83

  • @xikxp1
    @xikxp1 ปีที่แล้ว +9

    Проверка, реализованная кандидатом в цикле в первой задаче приводит к нескольким багам:
    1) Если у нас ровно один элемент в массиве и он равен key, то мы не зайдём в цикл и вернём -1, что некорректно. Пример: arr=[3], key=3
    2) Возможна ситуация, когда на одной из итераций right станет меньше left и мы наткнёмся на UB или на бесконечный цикл. Пример: arr=[3,3], key=3
    В подобных реализациях лучше всегда писать такие проверки, которые гарантируют, что правая граница не стала левее левой и помнить, что вырожденный случай, когда они совпадают, тоже корректен

    • @ostrov11
      @ostrov11 ปีที่แล้ว +2

      ... "лучше" враг хорошего

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      Да, все верно, Спасибо, я проглядел.

  • @s.g.7213
    @s.g.7213 ปีที่แล้ว +11

    Чувак реально молодец!!!!
    Это первый чувак ,за 10 лет пока я провожу собеседования , от которого я услышал, что singleton решает проблему порядка инициализации глобальных переменных.
    И кстати именно для этого он и был придуман Маерсом изначально.

    • @wokeupinthefuture
      @wokeupinthefuture ปีที่แล้ว

      разве Маерс придумал синглтон?

    • @s.g.7213
      @s.g.7213 ปีที่แล้ว

      @@wokeupinthefuture А кто по вашему?
      Он был описан в 94 году в книге "банды четырех", но насколько мне известно авторство принадлежит именно Маерсу.

    • @articice7342
      @articice7342 ปีที่แล้ว +1

      @@s.g.7213 В книге четырёх в 6.2, 6.3 описано про появление паттернов. Как я понял паттерны (описанные в книге) есть результат совместной работы. В книге также указывалось, что сингелтон был реализован ещё в smalltalk.
      Если есть ссылка где указано кто конкректно придумал базовые паттерны (хотя бы один), буду признателен если поделитесь.

    • @s.g.7213
      @s.g.7213 ปีที่แล้ว

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

    • @s.g.7213
      @s.g.7213 ปีที่แล้ว +1

      @@cppdeveloper А вот Александреску - Современное проектирование , у меня кто то спёр из уволившихся сотрудников....

  • @dmit100
    @dmit100 ปีที่แล้ว +2

    Решение через лямбду часто можно видеть на литкоде, и мне оно тоже не нравится.
    Что можно улучшить:
    Интервьюеру: перестать употреблять "как бы" через каждое предложение.
    Кандидату: придумывать/спрашивать несколько тесткейсов и подробно разбирать их перед тем, как что-то кодить.

  • @alexandrchioroglo5612
    @alexandrchioroglo5612 ปีที่แล้ว +1

    С новым годом, братья

    • @eliot8707
      @eliot8707 ปีที่แล้ว

      С новым и тебя! 🎉

  • @АльбертОганесян-м6и
    @АльбертОганесян-м6и ปีที่แล้ว

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

  • @АнтонКузнецов-т3т
    @АнтонКузнецов-т3т ปีที่แล้ว +3

    Джунам на заметку!
    Оператор присваивания реализован не оптимально. Сначала необходимо делать проверку не происходит ли самоприсваивание.
    if(this == &other)
    return *this
    ..........
    Если этого не делать, то на больших объектах будете терять драгоценное время. А время - деньги!
    Ну и конструктор копирования лучше реализовать через вызов оператора присваивания

    • @agordov
      @agordov ปีที่แล้ว

      Вообще для примера из видео достаточно будет и представленной реализации, или даже написать = default. А так гораздо удобнее и красивее (имхо) использовать copy-and-swap, особенно если мы возможно часто копируем, но не самих себя, т.е. проверка будет срабатывать очень редко (мы ведь не хотим каждый раз тратить время на бесполезные проверки (хотя тут скорее всего будет срабатывать бранч предиктор и часто реальная проверка не будет произведена)). А если еще и приходится часто копировать, но не часто менять содержимое, то стоит задуматься о COW, т.к. в этом случае может получиться еще лучше по производительности.

    • @АнтонКузнецов-т3т
      @АнтонКузнецов-т3т ปีที่แล้ว +1

      @@agordov Всё зависит от уровня кандидата.
      ИМХО! В рамках поставленной задачи, представленное решение ближе к джуну чем к мидлу.
      Мидл уже самостоятельная, боевая единица команды, и про принцип DRY лучше не забывать.

    • @articice7342
      @articice7342 ปีที่แล้ว +2

      Никогда так не делал, ни в одно большом проекте (с которым работал) такого не встречал. С временем работы програмы из-за этого никогда проблем не было. Имхо, больше аремени будет тратиться на постоянные проверки для всех мелких классов, чем на экономию при выполнении присваивания, которого, у хорошего программиста никогда не должно произойти.

  • @robbarret9568
    @robbarret9568 ปีที่แล้ว +2

    Нихрена ты его раскатал! Теперь даже джуном не возьмут!

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      Ничего не раскатал, нормально кандидат справился.

  • @ГригорийСевергин-у2р
    @ГригорийСевергин-у2р 8 หลายเดือนก่อน

    Кто-то писал, что middle неверно вычисляется? Если оба числа будут близки к максимуму, то будет переполнение, лучше так: int middle = l + (r - l) / 2;

    • @ambushedraccoon6408
      @ambushedraccoon6408  7 หลายเดือนก่อน

      Писали уже, да. В любом случае спасибо.

    • @yupiter9403
      @yupiter9403 7 หลายเดือนก่อน

      соглы, удивился, что кандидат написал так

  • @ArtyomMG
    @ArtyomMG ปีที่แล้ว +1

    На 25:40 что не понравилось обоим? Uniform initialization вроде уже давно есть. Можно и так проинициализировать, Нет?

    • @DadundddaD
      @DadundddaD 5 หลายเดือนก่อน

      Тот же вопрос.

  • @pavel_trpn
    @pavel_trpn ปีที่แล้ว +1

    CopyAssignExample это POD, зачем для него реализовывать ctor и другие самостоятельно? Потом спрашивать кейсы их вызова? У мидла???

  • @jzxdrift
    @jzxdrift ปีที่แล้ว +1

    Ты хотел сказать рекурсивно а не рекуррентно?

  • @МаксимАкимов-в4ж
    @МаксимАкимов-в4ж ปีที่แล้ว +1

    Нихера не видно в записи в этом CodeShared

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +1

      Да мелковато, но с компьютера можно разглядеть. В следующих видео крупнее.

    • @МаксимАкимов-в4ж
      @МаксимАкимов-в4ж ปีที่แล้ว

      @@ambushedraccoon6408 Сделай покпупнее, если дальше будешь, у тебя замечательные видео

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      @@МаксимАкимов-в4ж Спасибо) хорошо.

  • @МаксимАкимов-в4ж
    @МаксимАкимов-в4ж ปีที่แล้ว

    Вообще на видео CodeShares картинка уехала вправо (((

  • @ДмитрийБобров-т5ы
    @ДмитрийБобров-т5ы ปีที่แล้ว

    если это уровень Middle то я Senior

  • @kimpantnw1834
    @kimpantnw1834 ปีที่แล้ว

    большое спасибо за видео,если не сложно,можно тайм коды по вопросам пожайлуста

  • @syogun544
    @syogun544 ปีที่แล้ว

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

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      Привет. Я читами больше не занимаюсь.
      Да и в любом случае не смогу помочь. Особенно на линуксе.

  • @voidptr_t
    @voidptr_t ปีที่แล้ว

    А разве не проще в задаче с копированием написать = default?

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว

      Проще. Но такая реализация пригодится на случай Deep copy.

  • @ArturPukhavoi
    @ArturPukhavoi ปีที่แล้ว

    👍

  • @ЮрийРепин-т4к
    @ЮрийРепин-т4к ปีที่แล้ว

    Здравствуй, с какой целью ты проводишь собесы??? И как попасть на них???

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +5

      Привет!
      Цель - создание обучающего контента.
      Дабы попасть на собеседование следите за новостями канала в телеграме
      t.me/AmbushedRaccoon
      Там я объявляю наборы кандидатов.

  • @georgyg1531
    @georgyg1531 ปีที่แล้ว +2

    Как же долго на простой задаче то

  • @SergeSavostin
    @SergeSavostin ปีที่แล้ว +2

    Я чего-то не понимаю, или для middle это, мягко говоря, слабовато?

    • @alexsndralexandr3069
      @alexsndralexandr3069 ปีที่แล้ว

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

  • @pandalove6795
    @pandalove6795 ปีที่แล้ว

    Фууух я сначала первую задачу решил сам сделать, сделал её как раз просто заменив arr[mid] > value на arr[mid] >= value и сначала испугался т.к. как будто я что-то упускаю, т.к. посмотрел код собеседуемого и послушал комментарии автор, хотя код я протестировал. Но потом отлегло.

  • @skynowa2626
    @skynowa2626 ปีที่แล้ว +1

    Это 5-ти минутка

  • @fil7409
    @fil7409 ปีที่แล้ว

    синглтон - это же антипаттерн ))

    • @goczt
      @goczt ปีที่แล้ว

      В вопросах проектирования автор застрял где то в 2005-ых, видимо работал в геймдеве и с легаси кодом много

    • @ambushedraccoon6408
      @ambushedraccoon6408  ปีที่แล้ว +1

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

    • @goczt
      @goczt ปีที่แล้ว +3

      @@ambushedraccoon6408 может быть и позволяет, но в 2023 году на полном серьёзе отправлять кандидата изучать как реализовывать устаревший паттерн, это практически вредничать. С моей стороны иронии бы не возникло, если бы был хотя бы НАМЁК на то, что с паттерном что-то не так. Да, знать полезно, а ещё полезнее знать, почему от него предпочитают отказываться. Я специально сходил в поисковик и глянул всю первую страницу выдачи. Нигде не сказано ничего не только про то, почему паттерн не стоит использовать, но и что он не соответсвует современному пониманию разработки ПО в принципе.
      Для тех кто знает английский, рекомендую к просмотру запись с конференции CppCon: Retiring the Singleton Pattern: Concrete Suggestions for What to use Instead

  • @omnidroid3783
    @omnidroid3783 ปีที่แล้ว

    Хрюкнул с гринскрина

    • @immickful
      @immickful ปีที่แล้ว

      Ась, о чем речь? Тайминги хоть давайте момента хрюкача.

  • @vada322
    @vada322 7 หลายเดือนก่อน

    Интересно а без образования берут?

    • @ambushedraccoon6408
      @ambushedraccoon6408  7 หลายเดือนก่อน

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

  • @vasiliypupkin6311
    @vasiliypupkin6311 ปีที่แล้ว

    Спасибо за видео, но вот нам в РБ работы нет, как и в Рашке, милой сами устроятся, а что Джуна делать, вечно готовиться ?

    • @h1ghammcsgo698
      @h1ghammcsgo698 ปีที่แล้ว

      Есть вакансии на джунов. Надо искать.

    • @vasiliypupkin6311
      @vasiliypupkin6311 ปีที่แล้ว

      @@h1ghammcsgo698 1 на 1000 человек, обратно на заводик(

    • @vladimirchizh8853
      @vladimirchizh8853 ปีที่แล้ว

      Это не правда) Вакансии есть. Но их конечно гораздо меньше.

    • @h1ghammcsgo698
      @h1ghammcsgo698 ปีที่แล้ว

      @@vasiliypupkin6311 ну зависит от направления. В ue сейчас есть спрос на джунов. Так как рынок просел и не все тянут запросы мидлов.

    • @vasiliypupkin6311
      @vasiliypupkin6311 ปีที่แล้ว

      @@h1ghammcsgo698 по снг 2 компании кто работает с ue, мой вектор ++

  • @aanoonymouss
    @aanoonymouss ปีที่แล้ว +3

    Фейспалм с обоих...
    Я себе лицо рукой разбил из-за вас. Больше из-за интервьюера
    Пометьте, что это комедийный контент, и что к нему не нужно относиться серьезно. А то новички вас всерьёз будут воспринимать

    • @arthurlouiskarl
      @arthurlouiskarl ปีที่แล้ว +2

      лол, что тебе не нравится в интервьювере-то?

    • @georgyg1531
      @georgyg1531 ปีที่แล้ว +1

      ​​@@arthurlouiskarl это даже не уровень новичка. Это уровень "я прошел 2х недельный курс по с++ и алгоритмам"

    • @raresongs3788
      @raresongs3788 ปีที่แล้ว

      @@georgyg1531 Да какие 2 недели -> за пару часов управиться можно, и то, попутно отвлекаясь на видосы на Ютубе

    • @rightmelancholy1170
      @rightmelancholy1170 หลายเดือนก่อน

      ​@@georgyg1531 а что не так, чем плохи такие интервью?