Тёмный

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

Ambushed Raccoon
Подписаться 11 тыс.
Просмотров 11 тыс.
50% 1

Всем привет!
Провели собеседование с Владимиром на позицию Middle C++ Developer.
Интервью по большей части состоит из лайв-кодинга.
Левую часть кода обрезало при записи, но вся значащая информация сохранилась.
Приятного просмотра!
Twitch-канал: / ambushedraccoontv
Telegram: t.me/ambushedraccoon
Полезные ссылки:
Три возраста паттерна синглтон:
habr.com/ru/post/147373/
Синглтон Майерса и многопоточность:
ru.stackoverflow.com/question...
Не забудьте поддержать видео :)
Таймкоды:
00:00 Вступление
01:58 Бинарный поиск. Левая граница
23:47 Конструктор копирования
28:49 Конструктор и присваивание. Разница
31:20 Singleton
39:55 Singleton Майерса
41:45 Фидбэк

Опубликовано:

 

28 июн 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 82   
@user-ik7om3hh8r
@user-ik7om3hh8r Год назад
Спасибо за видео!
@alexandrchioroglo5612
@alexandrchioroglo5612 Год назад
С новым годом, братья
@eliot8707
@eliot8707 Год назад
С новым и тебя! 🎉
@xikxp1
@xikxp1 Год назад
Проверка, реализованная кандидатом в цикле в первой задаче приводит к нескольким багам: 1) Если у нас ровно один элемент в массиве и он равен key, то мы не зайдём в цикл и вернём -1, что некорректно. Пример: arr=[3], key=3 2) Возможна ситуация, когда на одной из итераций right станет меньше left и мы наткнёмся на UB или на бесконечный цикл. Пример: arr=[3,3], key=3 В подобных реализациях лучше всегда писать такие проверки, которые гарантируют, что правая граница не стала левее левой и помнить, что вырожденный случай, когда они совпадают, тоже корректен
@ostrov11
@ostrov11 Год назад
... "лучше" враг хорошего
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Да, все верно, Спасибо, я проглядел.
@dmit100
@dmit100 Год назад
Решение через лямбду часто можно видеть на литкоде, и мне оно тоже не нравится. Что можно улучшить: Интервьюеру: перестать употреблять "как бы" через каждое предложение. Кандидату: придумывать/спрашивать несколько тесткейсов и подробно разбирать их перед тем, как что-то кодить.
@s.g.7213
@s.g.7213 Год назад
Чувак реально молодец!!!! Это первый чувак ,за 10 лет пока я провожу собеседования , от которого я услышал, что singleton решает проблему порядка инициализации глобальных переменных. И кстати именно для этого он и был придуман Маерсом изначально.
@wokeupinthefuture
@wokeupinthefuture Год назад
разве Маерс придумал синглтон?
@s.g.7213
@s.g.7213 Год назад
@@wokeupinthefuture А кто по вашему? Он был описан в 94 году в книге "банды четырех", но насколько мне известно авторство принадлежит именно Маерсу.
@articice7342
@articice7342 Год назад
@@s.g.7213 В книге четырёх в 6.2, 6.3 описано про появление паттернов. Как я понял паттерны (описанные в книге) есть результат совместной работы. В книге также указывалось, что сингелтон был реализован ещё в smalltalk. Если есть ссылка где указано кто конкректно придумал базовые паттерны (хотя бы один), буду признателен если поделитесь.
@s.g.7213
@s.g.7213 Год назад
​@@articice7342 паттерны есть результат совместной работы, но не только тех людей, которые значатся авторами книги , а близкого к стандарту сообщества в целом, которое общается между собой. Тут есть небольшое недопонимание, потому как я говорил , о синглтоне Маерса в с++ ,а не паттерне в широком смысле этого слова. Если говорить о синглтоне Маерса в с++ .То первая его реализация, не запрещала копирование объекта, потому как решала проблему не однозначности порядка создания глобальных переменных в первую очередь.
@s.g.7213
@s.g.7213 Год назад
@@cppdeveloper А вот Александреску - Современное проектирование , у меня кто то спёр из уволившихся сотрудников....
@user-ri8dx3cc1b
@user-ri8dx3cc1b Год назад
Джунам на заметку! Оператор присваивания реализован не оптимально. Сначала необходимо делать проверку не происходит ли самоприсваивание. if(this == &other) return *this .......... Если этого не делать, то на больших объектах будете терять драгоценное время. А время - деньги! Ну и конструктор копирования лучше реализовать через вызов оператора присваивания
@agordov
@agordov Год назад
Вообще для примера из видео достаточно будет и представленной реализации, или даже написать = default. А так гораздо удобнее и красивее (имхо) использовать copy-and-swap, особенно если мы возможно часто копируем, но не самих себя, т.е. проверка будет срабатывать очень редко (мы ведь не хотим каждый раз тратить время на бесполезные проверки (хотя тут скорее всего будет срабатывать бранч предиктор и часто реальная проверка не будет произведена)). А если еще и приходится часто копировать, но не часто менять содержимое, то стоит задуматься о COW, т.к. в этом случае может получиться еще лучше по производительности.
@user-ri8dx3cc1b
@user-ri8dx3cc1b Год назад
@@agordov Всё зависит от уровня кандидата. ИМХО! В рамках поставленной задачи, представленное решение ближе к джуну чем к мидлу. Мидл уже самостоятельная, боевая единица команды, и про принцип DRY лучше не забывать.
@articice7342
@articice7342 Год назад
Никогда так не делал, ни в одно большом проекте (с которым работал) такого не встречал. С временем работы програмы из-за этого никогда проблем не было. Имхо, больше аремени будет тратиться на постоянные проверки для всех мелких классов, чем на экономию при выполнении присваивания, которого, у хорошего программиста никогда не должно произойти.
@user-dk5rx1be6v
@user-dk5rx1be6v Год назад
👍
@robbarret9568
@robbarret9568 Год назад
Нихрена ты его раскатал! Теперь даже джуном не возьмут!
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Ничего не раскатал, нормально кандидат справился.
@kimpantnw1834
@kimpantnw1834 Год назад
большое спасибо за видео,если не сложно,можно тайм коды по вопросам пожайлуста
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Таймкоды готовы.
@kimpantnw1834
@kimpantnw1834 Год назад
@@ambushedraccoon6408 спасибо
@ArtyomMG
@ArtyomMG Год назад
На 25:40 что не понравилось обоим? Uniform initialization вроде уже давно есть. Можно и так проинициализировать, Нет?
@DadundddaD
@DadundddaD Месяц назад
Тот же вопрос.
@syogun544
@syogun544 Год назад
Привет подскажи пожалуйста как на программном языке работает античит в играх .Потому что именно этот античит не дает запустить игру на линуксе притом что она качается.Проще говоря можно ли его обойти или обмануть чтобы запустить эту игру на линуксе -игра лост Арк
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Привет. Я читами больше не занимаюсь. Да и в любом случае не смогу помочь. Особенно на линуксе.
@user-yw7ml8jy9i
@user-yw7ml8jy9i Год назад
Здравствуй, с какой целью ты проводишь собесы??? И как попасть на них???
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Привет! Цель - создание обучающего контента. Дабы попасть на собеседование следите за новостями канала в телеграме t.me/AmbushedRaccoon Там я объявляю наборы кандидатов.
@user-zq9ni6lw5e
@user-zq9ni6lw5e 4 месяца назад
Кто-то писал, что middle неверно вычисляется? Если оба числа будут близки к максимуму, то будет переполнение, лучше так: int middle = l + (r - l) / 2;
@ambushedraccoon6408
@ambushedraccoon6408 3 месяца назад
Писали уже, да. В любом случае спасибо.
@yupiter9403
@yupiter9403 2 месяца назад
соглы, удивился, что кандидат написал так
@jzxdrift
@jzxdrift 11 месяцев назад
Ты хотел сказать рекурсивно а не рекуррентно?
@pavel_trpn
@pavel_trpn Год назад
CopyAssignExample это POD, зачем для него реализовывать ctor и другие самостоятельно? Потом спрашивать кейсы их вызова? У мидла???
@user-st3fm6bs5j
@user-st3fm6bs5j Год назад
Вообще на видео CodeShares картинка уехала вправо (((
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Поправил в следующих видео.
@voidptr_t
@voidptr_t Год назад
А разве не проще в задаче с копированием написать = default?
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Проще. Но такая реализация пригодится на случай Deep copy.
@skynowa2626
@skynowa2626 Год назад
Это 5-ти минутка
@georgyg1531
@georgyg1531 Год назад
Как же долго на простой задаче то
@user-vr5im7ts9i
@user-vr5im7ts9i 10 месяцев назад
если это уровень Middle то я Senior
@user-st3fm6bs5j
@user-st3fm6bs5j Год назад
Нихера не видно в записи в этом CodeShared
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Да мелковато, но с компьютера можно разглядеть. В следующих видео крупнее.
@user-st3fm6bs5j
@user-st3fm6bs5j Год назад
@@ambushedraccoon6408 Сделай покпупнее, если дальше будешь, у тебя замечательные видео
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
@@user-st3fm6bs5j Спасибо) хорошо.
@SergeSavostin
@SergeSavostin Год назад
Я чего-то не понимаю, или для middle это, мягко говоря, слабовато?
@alexsndralexandr3069
@alexsndralexandr3069 Год назад
Все вы правильно понимаете,я пока что учусь,но тут до мидла не дотягивает.
@pandalove6795
@pandalove6795 10 месяцев назад
Фууух я сначала первую задачу решил сам сделать, сделал её как раз просто заменив arr[mid] > value на arr[mid] >= value и сначала испугался т.к. как будто я что-то упускаю, т.к. посмотрел код собеседуемого и послушал комментарии автор, хотя код я протестировал. Но потом отлегло.
@fil7409
@fil7409 Год назад
синглтон - это же антипаттерн ))
@goczt
@goczt Год назад
В вопросах проектирования автор застрял где то в 2005-ых, видимо работал в геймдеве и с легаси кодом много
@ambushedraccoon6408
@ambushedraccoon6408 Год назад
Вброс на троечку. Синглтон позволяет покрыть много интересных для собеседования моментов в познаниях кандидата. А прежде чем спрашивать, что с Паттерном не так я предпочитаю выяснить, что кандидат знает .
@goczt
@goczt Год назад
@@ambushedraccoon6408 может быть и позволяет, но в 2023 году на полном серьёзе отправлять кандидата изучать как реализовывать устаревший паттерн, это практически вредничать. С моей стороны иронии бы не возникло, если бы был хотя бы НАМЁК на то, что с паттерном что-то не так. Да, знать полезно, а ещё полезнее знать, почему от него предпочитают отказываться. Я специально сходил в поисковик и глянул всю первую страницу выдачи. Нигде не сказано ничего не только про то, почему паттерн не стоит использовать, но и что он не соответсвует современному пониманию разработки ПО в принципе. Для тех кто знает английский, рекомендую к просмотру запись с конференции CppCon: Retiring the Singleton Pattern: Concrete Suggestions for What to use Instead
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
Спасибо за видео, но вот нам в РБ работы нет, как и в Рашке, милой сами устроятся, а что Джуна делать, вечно готовиться ?
@h1ghammcsgo698
@h1ghammcsgo698 Год назад
Есть вакансии на джунов. Надо искать.
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
@@h1ghammcsgo698 1 на 1000 человек, обратно на заводик(
@vladimirchizh8853
@vladimirchizh8853 Год назад
Это не правда) Вакансии есть. Но их конечно гораздо меньше.
@h1ghammcsgo698
@h1ghammcsgo698 Год назад
@@vasiliypupkin6311 ну зависит от направления. В ue сейчас есть спрос на джунов. Так как рынок просел и не все тянут запросы мидлов.
@vasiliypupkin6311
@vasiliypupkin6311 Год назад
@@h1ghammcsgo698 по снг 2 компании кто работает с ue, мой вектор ++
@omnidroid3783
@omnidroid3783 Год назад
Хрюкнул с гринскрина
@immickful
@immickful Год назад
Ась, о чем речь? Тайминги хоть давайте момента хрюкача.
@vada322
@vada322 3 месяца назад
Интересно а без образования берут?
@ambushedraccoon6408
@ambushedraccoon6408 3 месяца назад
Берут. Но лучше иметь, чем не иметь. Если вообще нет никакого образования кроме школьного это может показаться странным для работодателя.
@aanoonymouss
@aanoonymouss Год назад
Фейспалм с обоих... Я себе лицо рукой разбил из-за вас. Больше из-за интервьюера Пометьте, что это комедийный контент, и что к нему не нужно относиться серьезно. А то новички вас всерьёз будут воспринимать
@arthurlouiskarl
@arthurlouiskarl Год назад
лол, что тебе не нравится в интервьювере-то?
@georgyg1531
@georgyg1531 Год назад
​​@@arthurlouiskarl это даже не уровень новичка. Это уровень "я прошел 2х недельный курс по с++ и алгоритмам"
@raresongs3788
@raresongs3788 9 месяцев назад
@@georgyg1531 Да какие 2 недели -> за пару часов управиться можно, и то, попутно отвлекаясь на видосы на Ютубе
Далее
Собеседование Junior C++
54:00
Просмотров 39 тыс.
Собеседование Middle C++
52:34
Просмотров 20 тыс.
это самое вкусное блюдо
00:12
Просмотров 2,1 млн
Собеседование C++
47:00
Просмотров 24 тыс.
Собеседуем Школьника. C++
57:23
Просмотров 13 тыс.
Open Source Для Начинающих
15:11
Просмотров 8 тыс.
Собеседование Middle C++
1:01:50
Просмотров 27 тыс.