C++ собеседование в 2024 году

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 มิ.ย. 2024
  • О чём спрашивают на рынке труда сейчас?
    На первом интервью в 2024 году мне попалась база С++. А какие вопросы были у тебя?
    Временные метки:
    00:00 - Введение
    00:55 - Контейнеры
    11:28 - Реаллокация у вектора
    14:40 - Конструктор move, std::move, std::forward
    17:03 - Умные указатели
    19:46 - shared_ptr в многопоточном использование
    20:22 - Опыт в многопоточке
    23:30 - Интерфейс
    29:06 - Исключения
    31:02 - Код ошибки vs исключения
    32:07 - Исключение в деструкторе
    34:24 - Паттерны проектирования
    39:00 - Применимость паттернов в практике
    40:26 - SOLID
    42:04 - Практическая задача С++ на программирование
    59:36 - Завершение
    1:00:05 - Проведенные мок интервью
    🙌 Мой канал о мире IT:
    t.me/vladimir_v_it
    ⭐️ Мой канал для подготовки к System Design Interview:
    t.me/system_design_world

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

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

    Дорогие С++ разработчики! Скоро на подкасте буду говорить за С++. Хотелось бы увидеть реальные примеры применения С++, его перспектив в Вашей доменной области. Прошу пройти лёгкий опрос - forms.gle/YLVcvD4P5Q7vuin47
    Результаты все вместе разберём на отдельном видео/стриме. Часть графиков на данный момент - t.me/vladimir_v_it/45

  • @cheefoxcheefox2372
    @cheefoxcheefox2372 15 วันที่ผ่านมา +4

    Собес проходит не очень удачно. Словно студент отвечает на экзамене. Да и советы от автора лучше подходят для экзамена, чем для собеса.
    Очень часто задача интервьюэра за короткое время (30 мин) выяснить потолок кандидата. И если на экзамене потолок априори "знает всё" и экзаменатор выясняет чено не знает экзаминуемый, то на собесе наоборот: интервьюэр априори ставит ноль, а потом выясняет потолок. И если вы за 30 минут не обсудили что-то, то ставится чек, что кандидат этого не знает.
    Так что страиегия должна быть обратной экзаменационной: нужно максимально быстро и чётко отвечать, чтобы интервьюэр быстро проставлял галочки и уходил в более сложные вопросы, которые дадут более высокий потолок.

    • @vladimir_v_it
      @vladimir_v_it  15 วันที่ผ่านมา +1

      Спасибо за комментарий! Могу добавить, что мне понятна схема со скринингом. HR так и говорит, что будет получасовая встреча на скрининг. И тебя гоняют на контейнеры, умный указатели, многопоточность. Я это проходил. И это понятно. Когда идёт уже такое интервью - уже нужно догадываться что от тебя хотят. Не сказали сходу, что будет скрининг. Задают учебные вопросы. Насколько самому интересно, как было отмечено в комментарии, быть в роли студента? Выбрал стратегию - размышлять вслух, не торопиться. Пинговать таким образом - а может здесь хотят в глубину. Если хотят, я этому способствую - отвечаю базу и жду. Либо пойдём дальше по листу. Либо спросят глубже. Ну что ж. Я готов к этому.

  • @egoryurchenko7847
    @egoryurchenko7847 28 วันที่ผ่านมา +1

    Здравствуйте, этот собес был на позицию middle? Компания европейская или россиская? Чем занимается компания и какие обязаности в дальнейшем по работе были оговорены? Уточнялась ли ЗП?

  • @vladimir0rus
    @vladimir0rus 2 หลายเดือนก่อน +6

    std::array статически аллоцируется на стеке, из этого следуют его преимущества и недостатки.
    Поиск в массиве/векторе даже для неупорядоченных данных будет быстрее если он не большого размера (ну и смотря что ты в нем хранишь).
    В случае хэш-таблицы нужно сначала вычислить хэш, обратиться к памяти, там взять указатель и опять обратиться к памяти. После чего в худшем случаае продолжить бегать по памяти если были коллизии (зависит от реализации). Операция обращения к памяти очень дорогая, особенно если данных не было в кешах.
    В случае с деревом тоже нужно прыгать по памяти.

    • @Nop_90h
      @Nop_90h 10 วันที่ผ่านมา

      ты типа поумничать решил. схуя ли он "на стеке" аллоцируется. где аллоцируешь, там и аллоцируется.

    • @vladimir0rus
      @vladimir0rus 10 วันที่ผ่านมา

      @@Nop_90h читай спеки ламо.

    • @vladimir0rus
      @vladimir0rus 6 วันที่ผ่านมา

      @@Nop_90h "Нет-нет, что вы, отнюдь, я такое же быдло, как и вы."

    • @tommorfin3499
      @tommorfin3499 5 ชั่วโมงที่ผ่านมา

      ​@@Nop_90h стандартом гарантируется, что там cstyle array, значит на стеке

  • @dmitrysapelnikov
    @dmitrysapelnikov 2 หลายเดือนก่อน +2

    Про быстрый поиск в неупорядоченном векторе: он может быть быстрее при малом количестве элементов из-за лучшей по сравнению с *set/map-контейнерами когерентности цпу-кэша.

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

      Как-то подобный вопрос был в HFT компанию.

    • @Nop_90h
      @Nop_90h 10 วันที่ผ่านมา

      да ты шо... садись 5

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

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

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

      Я думаю, ты перечислил очень хороший набор для старта. Хочется сначала уточнить - какая сфера тебе интересна?

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

      @@vladimir_v_it у меня сейчас идет стадия написания pet проектов. я сделал пару приложений на qwidgets, сейчас пару дней посвящу QML. после просмотра интервью хочется поработать с потоками. Честно говоря, хочется просто пройти на какое-нибудь место. Получить настоящий опыт и дальше уже определяться со стязей.

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

      @@vladimir_v_it есть pet проекты на qWidgets, сейчас осваиваю QML, после просмотра интервью - хочется освоить мнопоточность. хочется получить первый коммерческий опыт и уже дальше углубляться. конкретного направления пока не знаю, так как мне приятно, что версткой, что бэком заниматься.

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

      @@vladimir_v_it почему то оставляемый комментарий постоянно удаляется. Сейчас у меня написано пара учебных приложений на qWidgets, продолжаю осваивать QML. После интервью появилось желание поработать с потоками. Честно говоря, есть просто желание получить коммерческий опыт, то есть чтобы взяли хоть куда, а дальше уже поработав - определяться со сферой.

    • @HappyMAN-lv5xu
      @HappyMAN-lv5xu 25 วันที่ผ่านมา

      @@vladimir_v_it допустим декстоп и бэкенд

  • @Nop_90h
    @Nop_90h 10 วันที่ผ่านมา

    Давай вместе застримим, я по gamedev если чо. Касательно того, что ты что-то в коде не увидел, к этому я лоялен. Бывает всякое. В целом твои ответы мне понравились. Уровень держишь.

  • @zhodzky
    @zhodzky 2 วันที่ผ่านมา

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

    • @vladimir_v_it
      @vladimir_v_it  วันที่ผ่านมา

      Спасибо за дополнение! Я был на разных собеседованиях. На каких-то рассказывал про cache friendly. Здесь нет. Опять же, мы можем рассматривать собеседование, возможные ответы и вопросы исходя из полных текущих знаний. За небольшое время в реальности можно пройти лишь какое-то подмножество. Здесь я не говорил про это свойство так как не чувствовал, что это требуется. В hft на собеседование чувствовал и говорил. Там же говорил и о false sharing. Когда задача была соответствующая. С нужным контекстом. И просили улучшить пример.

  • @bohdansolonenko6554
    @bohdansolonenko6554 2 หลายเดือนก่อน +2

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

    • @Kiri110K
      @Kiri110K 2 หลายเดือนก่อน +1

      Арей можно же и на куче? int* arr = new int[10]?

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

      Если мы говорим про контейнеры то мы говорим про std::array и std::vector. Если ты имеешь ввиду new int[10] то это C - style работа с массивами, так то ты можешь использовать C - Style массив для реализации например стека, но в современном с++ мы используем std::stack

  • @elenpeers8365
    @elenpeers8365 2 หลายเดือนก่อน +4

    Это на Джуна? Бегло пробежался по кускам видео - максимально дефолтное и лёгкое интервью...

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

      А что, по-вашему, сложное?

    • @elenpeers8365
      @elenpeers8365 2 หลายเดือนก่อน +1

      Буквально что-угодно не взятое с первых сайтов "примеры вопросов на интервью". Те же темы можно раскрыть более глубоко: не просто спросить "как там обстоят дела с shared_ptr в многопоточке?", а типа "как бы вы реализовывали свой enable_shared_from_this и является ли он thread safe?". Не просто "с какими паттернами встречались в проде?", а "как бы вы модифицировали майеровскую реализацию синглтона до thread safe мультитона? Почему майеровская реализация является потокобезопасной только с 11 стандарта?". Ну и да, в c++ полно сложных тем: начиная с барьеров памяти или кеш-линий до нюансов последних стандартов, которые сильно меняют подход к написанию кода вообще (одни только концепты чего стоят?).

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

      @@elenpeers8365 и зачем? Стандарт очень большой и похож на русский язык, который может быть разговорным, высоким (художественным) и пр. В жизни вы пользуетесь разговорным и не испытываете никаких проблем, если не делаете ошибок. Не каждый должен изъясняться, как Пушкин, это наоборот только мешает. Есть стандарт. Что там делал Мейерс в свои молодые годы не обязательно знать, если вы с этим не соприкасались. Задача собеса - взять того, кто соображает, а не взять того, кто «знает всё».

    • @vova_dev
      @vova_dev 2 หลายเดือนก่อน +1

      @@elenpeers8365Про thread-safe синглтон. Имеется ввиду double check locking до C++11 и его не нужность, начиная с С++11 потому что для static ввели guard variable?

    • @elenpeers8365
      @elenpeers8365 2 หลายเดือนก่อน +2

      @@vova_dev да, именно это я имел в виду. (Но вообще, это просто пример того, что я иногда спрашиваю на собесах)

  • @evgusk
    @evgusk 2 หลายเดือนก่อน +1

    А на какого уровня позицию было это интервью?

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

      Позиция старшего разработчика.

  • @user-jj1nk6ng7w
    @user-jj1nk6ng7w 13 วันที่ผ่านมา

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

    • @vladimir_v_it
      @vladimir_v_it  13 วันที่ผ่านมา

      Это какая минута? Какой контекст?

    • @user-jj1nk6ng7w
      @user-jj1nk6ng7w 12 วันที่ผ่านมา

      @@vladimir_v_it это задача с рефакторингом кода

    • @Nop_90h
      @Nop_90h 10 วันที่ผ่านมา

      А вот этот челик прав. Мутеха не хватает.

    • @Nop_90h
      @Nop_90h 10 วันที่ผ่านมา

      @@vladimir_v_it строка 38 где то там, там сравнение идет атомарное, а потом вычитание, но между 2мя операциями может случится другая операция, капишь.? давай вместе застримим. я там выше отписывался

    • @user-jj1nk6ng7w
      @user-jj1nk6ng7w 2 วันที่ผ่านมา

      @@Nop_90h не - мютексы там нельзя ставить - это локфри алгоритмы - там надо было применить и проверить результат и если ушло в минусы отыграть и вернуть фолс.

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

    может я не прав, но как объектный, с++, с этими все шэред/юник птр выгдлядит уродливо. есть java, c#. Имхо применение с/с++ сугубо для скорости/оптимизации ресурсов, а это влечет применение простых примитивов без всего этого

    • @vladimir_v_it
      @vladimir_v_it  หลายเดือนก่อน +1

      Есть хорошая новость) Скоро будет подкаст, на котором поговорим за С++. К нему собираю мнение сообщества) В опросе уже приняло участие 30 С++ разработчиков) Как маститых специалистов, так и новичков. Так что совсем скоро увидите их мнения о С++ - областях его применения сейчас, обоснованности применения, конкурентоспособности, будущем. Поверьте, там достаточно взвешенный взгляд на данный момент. Без фанатизма.
      По умным указателям. Вчера как-раз провёл лекцию на курсе С++ про них) Слёту не так просто вникнуть в суть. Если ты уже разрабатывал на обычных, в принципе, освоить не сложно. В опросе спрашивал - текут ли ваши программы? Как думаете, какой сейчас самый популярный ответ? И что в этом помогает?)
      Какой у Вас язык программирования? Почему выбрали именно его?
      P.S. Для С++ разработчиков, желающих пройти опрос к подкасту - forms.gle/YLVcvD4P5Q7vuin47

    • @Nop_90h
      @Nop_90h 10 วันที่ผ่านมา

      кароч, сматри, есть еще бэйсик, ваще непонтяно, зачем сиподобное хавно нужно

  • @cyrilanisimov
    @cyrilanisimov 2 หลายเดือนก่อน +3

    По-моему, интервьюверы - душнилы. Не интересная беседа

  • @Nop_90h
    @Nop_90h 10 วันที่ผ่านมา

    Отключи проверку на мат. Мат - часть языка. Контент у тебя не тот, чтобы дети это заабьюзили. А мы без мата не говорим.

  • @Nop_90h
    @Nop_90h 10 วันที่ผ่านมา

    каротче, сматри сюда, пачиму тебя не всяли class Accaunt. строка 36 и 38. Скумекал не ?
    там недостаточно атомиков, нужен мутекс

    • @Nop_90h
      @Nop_90h 10 วันที่ผ่านมา

      расширю.. ты сравнил атомик с числом(на этом кабэ все, атомарная операция закончилась), дальше тело условия и следующая атомарная операция вычитания.. вот между этими операциями может что-то произойти, что изменит результат условия. ну т.е. в другой нити вычтут и ты вычел. вот тебе и ХУЙНЯ.