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

  Рет қаралды 10,877

Ambushed Raccoon

Ambushed Raccoon

Күн бұрын

Всем привет!
Провели собеседование с Владимиром на позицию 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 Фидбэк

Пікірлер: 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 Жыл бұрын
Да, все верно, Спасибо, я проглядел.
@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 А вот Александреску - Современное проектирование , у меня кто то спёр из уволившихся сотрудников....
@dmit100
@dmit100 Жыл бұрын
Решение через лямбду часто можно видеть на литкоде, и мне оно тоже не нравится. Что можно улучшить: Интервьюеру: перестать употреблять "как бы" через каждое предложение. Кандидату: придумывать/спрашивать несколько тесткейсов и подробно разбирать их перед тем, как что-то кодить.
@ArtyomMG
@ArtyomMG Жыл бұрын
На 25:40 что не понравилось обоим? Uniform initialization вроде уже давно есть. Можно и так проинициализировать, Нет?
@DadundddaD
@DadundddaD 19 күн бұрын
Тот же вопрос.
@syogun544
@syogun544 Жыл бұрын
Привет подскажи пожалуйста как на программном языке работает античит в играх .Потому что именно этот античит не дает запустить игру на линуксе притом что она качается.Проще говоря можно ли его обойти или обмануть чтобы запустить эту игру на линуксе -игра лост Арк
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Привет. Я читами больше не занимаюсь. Да и в любом случае не смогу помочь. Особенно на линуксе.
@jzxdrift
@jzxdrift 10 ай бұрын
Ты хотел сказать рекурсивно а не рекуррентно?
@user-yw7ml8jy9i
@user-yw7ml8jy9i Жыл бұрын
Здравствуй, с какой целью ты проводишь собесы??? И как попасть на них???
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Привет! Цель - создание обучающего контента. Дабы попасть на собеседование следите за новостями канала в телеграме t.me/AmbushedRaccoon Там я объявляю наборы кандидатов.
@user-st3fm6bs5j
@user-st3fm6bs5j Жыл бұрын
Вообще на видео CodeShares картинка уехала вправо (((
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Поправил в следующих видео.
@pavel_trpn
@pavel_trpn Жыл бұрын
CopyAssignExample это POD, зачем для него реализовывать ctor и другие самостоятельно? Потом спрашивать кейсы их вызова? У мидла???
@kimpantnw1834
@kimpantnw1834 Жыл бұрын
большое спасибо за видео,если не сложно,можно тайм коды по вопросам пожайлуста
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Таймкоды готовы.
@kimpantnw1834
@kimpantnw1834 Жыл бұрын
@@ambushedraccoon6408 спасибо
@robbarret9568
@robbarret9568 Жыл бұрын
Нихрена ты его раскатал! Теперь даже джуном не возьмут!
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Ничего не раскатал, нормально кандидат справился.
@user-dk5rx1be6v
@user-dk5rx1be6v Жыл бұрын
👍
@voidptr_t
@voidptr_t Жыл бұрын
А разве не проще в задаче с копированием написать = default?
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Проще. Но такая реализация пригодится на случай Deep copy.
@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-zq9ni6lw5e
@user-zq9ni6lw5e 3 ай бұрын
Кто-то писал, что middle неверно вычисляется? Если оба числа будут близки к максимуму, то будет переполнение, лучше так: int middle = l + (r - l) / 2;
@ambushedraccoon6408
@ambushedraccoon6408 2 ай бұрын
Писали уже, да. В любом случае спасибо.
@yupiter9403
@yupiter9403 2 ай бұрын
соглы, удивился, что кандидат написал так
@georgyg1531
@georgyg1531 Жыл бұрын
Как же долго на простой задаче то
@user-st3fm6bs5j
@user-st3fm6bs5j Жыл бұрын
Нихера не видно в записи в этом CodeShared
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
Да мелковато, но с компьютера можно разглядеть. В следующих видео крупнее.
@user-st3fm6bs5j
@user-st3fm6bs5j Жыл бұрын
@@ambushedraccoon6408 Сделай покпупнее, если дальше будешь, у тебя замечательные видео
@ambushedraccoon6408
@ambushedraccoon6408 Жыл бұрын
@@user-st3fm6bs5j Спасибо) хорошо.
@skynowa2626
@skynowa2626 Жыл бұрын
Это 5-ти минутка
@SergeSavostin
@SergeSavostin Жыл бұрын
Я чего-то не понимаю, или для middle это, мягко говоря, слабовато?
@alexsndralexandr3069
@alexsndralexandr3069 Жыл бұрын
Все вы правильно понимаете,я пока что учусь,но тут до мидла не дотягивает.
@user-vr5im7ts9i
@user-vr5im7ts9i 9 ай бұрын
если это уровень Middle то я Senior
@pandalove6795
@pandalove6795 9 ай бұрын
Фууух я сначала первую задачу решил сам сделать, сделал её как раз просто заменив 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 2 ай бұрын
Интересно а без образования берут?
@ambushedraccoon6408
@ambushedraccoon6408 2 ай бұрын
Берут. Но лучше иметь, чем не иметь. Если вообще нет никакого образования кроме школьного это может показаться странным для работодателя.
@aanoonymouss
@aanoonymouss Жыл бұрын
Фейспалм с обоих... Я себе лицо рукой разбил из-за вас. Больше из-за интервьюера Пометьте, что это комедийный контент, и что к нему не нужно относиться серьезно. А то новички вас всерьёз будут воспринимать
@arthurlouiskarl
@arthurlouiskarl Жыл бұрын
лол, что тебе не нравится в интервьювере-то?
@georgyg1531
@georgyg1531 Жыл бұрын
​​@@arthurlouiskarl это даже не уровень новичка. Это уровень "я прошел 2х недельный курс по с++ и алгоритмам"
@raresongs3788
@raresongs3788 8 ай бұрын
@@georgyg1531 Да какие 2 недели -> за пару часов управиться можно, и то, попутно отвлекаясь на видосы на Ютубе
Собеседование Junior C++
54:00
Ambushed Raccoon
Рет қаралды 38 М.
Собеседование Middle C++
52:34
Ambushed Raccoon
Рет қаралды 20 М.
Cat story: from hate to love! 😻 #cat #cute #kitten
00:40
Stocat
Рет қаралды 16 МЛН
когда достали одноклассники!
00:49
БРУНО
Рет қаралды 4,1 МЛН
🍕Пиццерия FNAF в реальной жизни #shorts
00:41
Miracle Doctor Saves Blind Girl ❤️
00:59
Alan Chikin Chow
Рет қаралды 61 МЛН
Собеседование C++
47:00
Ambushed Raccoon
Рет қаралды 24 М.
Как я неправильно C++ учил
2:59:23
Ambushed Raccoon
Рет қаралды 75 М.
С++ собеседование
47:40
Владимир в IT
Рет қаралды 1,2 М.
Software Engineering Job Interview - Full Mock Interview
1:14:29
freeCodeCamp.org
Рет қаралды 1,3 МЛН
Собеседуем Школьника. C++
57:23
Ambushed Raccoon
Рет қаралды 13 М.
Собеседование C++. Разработчик из Яндекс
53:31
31 nooby C++ habits you need to ditch
16:18
mCoding
Рет қаралды 720 М.
5 Signs You Absolutely Need to Quit Your Job
9:34
Александр Высоцкий
Рет қаралды 941 М.
Cat story: from hate to love! 😻 #cat #cute #kitten
00:40
Stocat
Рет қаралды 16 МЛН