C++ собеседование в 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
    @cheefoxcheefox237215 күн бұрын

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

  • @vladimir_v_it

    @vladimir_v_it

    15 күн бұрын

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

  • @egoryurchenko7847
    @egoryurchenko784728 күн бұрын

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

  • @vladimir0rus
    @vladimir0rus2 ай бұрын

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

  • @Nop_90h

    @Nop_90h

    11 күн бұрын

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

  • @vladimir0rus

    @vladimir0rus

    11 күн бұрын

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

  • @vladimir0rus

    @vladimir0rus

    6 күн бұрын

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

  • @tommorfin3499

    @tommorfin3499

    13 сағат бұрын

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

  • @dmitrysapelnikov
    @dmitrysapelnikov2 ай бұрын

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

  • @vladimir_v_it

    @vladimir_v_it

    2 ай бұрын

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

  • @Nop_90h

    @Nop_90h

    11 күн бұрын

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

  • @rightmelancholy1170
    @rightmelancholy1170Ай бұрын

    насколько сложно будет найти вакансию джуниора с++ в крупном городе вроде спб или мск, если освоен университетский курс, есть 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

    26 күн бұрын

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

  • @Nop_90h
    @Nop_90h11 күн бұрын

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

  • @zhodzky
    @zhodzky3 күн бұрын

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

  • @vladimir_v_it

    @vladimir_v_it

    2 күн бұрын

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

  • @bohdansolonenko6554
    @bohdansolonenko65542 ай бұрын

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

  • @Kiri110K

    @Kiri110K

    2 ай бұрын

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

  • @bohdansolonenko6554

    @bohdansolonenko6554

    2 ай бұрын

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

  • @elenpeers8365
    @elenpeers83652 ай бұрын

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

  • @cyrilanisimov

    @cyrilanisimov

    2 ай бұрын

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

  • @elenpeers8365

    @elenpeers8365

    2 ай бұрын

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

  • @cyrilanisimov

    @cyrilanisimov

    2 ай бұрын

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

  • @vova_dev

    @vova_dev

    2 ай бұрын

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

  • @elenpeers8365

    @elenpeers8365

    2 ай бұрын

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

  • @evgusk
    @evgusk2 ай бұрын

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

  • @vladimir_v_it

    @vladimir_v_it

    2 ай бұрын

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

  • @user-jj1nk6ng7w
    @user-jj1nk6ng7w13 күн бұрын

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

  • @vladimir_v_it

    @vladimir_v_it

    13 күн бұрын

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

  • @user-jj1nk6ng7w

    @user-jj1nk6ng7w

    13 күн бұрын

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

  • @Nop_90h

    @Nop_90h

    10 күн бұрын

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

  • @Nop_90h

    @Nop_90h

    10 күн бұрын

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

  • @user-jj1nk6ng7w

    @user-jj1nk6ng7w

    3 күн бұрын

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

  • @evilQuister
    @evilQuisterАй бұрын

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

  • @vladimir_v_it

    @vladimir_v_it

    Ай бұрын

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

  • @Nop_90h

    @Nop_90h

    11 күн бұрын

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

  • @cyrilanisimov
    @cyrilanisimov2 ай бұрын

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

  • @Nop_90h
    @Nop_90h11 күн бұрын

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

  • @Nop_90h
    @Nop_90h11 күн бұрын

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

  • @Nop_90h

    @Nop_90h

    11 күн бұрын

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

Келесі