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

preview_player
Показать описание
Всем привет!
Провели тренировочное собеседование с Александром на позицию Middle C++ Developer.
Приятного просмотра!

Не забудьте поддержать видео :)

Таймкоды:
00:00 Вступление
00:18 Расскажи о себе
02:48 Задача: экранирование символов
14:28 Заголовочные файлы. Код в них
20:24 extern
22:45 Взвести/Сбросить бит
34:33 Сериализация/Десериализация
40:33 Сериализация двусвязного списка
45:42 union
47:36 1. Про 11-й стандарт. Move-семантика
49:28 Copy on write
47:36 2. Про 11-й стандарт. Move-семантика
51:35 Функтор. Лямбды
53:12 Наследование от stl контейнеров
56:12 Фидбэк
Рекомендации по теме
Комментарии
Автор

Всем привет! Объявляю набор кандидатов на собеседование Middle С++.
Требуются разработчики с опытом 1-3 года. Собеседование проводится только с видео.
Со своей стороны гарантирую, что видео будет выложено только с вашего согласия. Так что не бойтесь.
Будьте внимательнее с темой письма, потому что они очень легко попадают в спам.

ambushedraccoon
Автор

Странно, что в названии написано "Собеседование Middle C++", а первые слова собеседование на позицию junior.

relaxationchanne
Автор

Собеседование: разверни дерево, найди оптимальный путь
Реальность на работе: фикс ошибки из-за отсутствующей запятой, катить самому в прод без техлида в пятницу

MrBratkenSolov
Автор

Этот парень помогает поверить в свои силы.

shamany
Автор

Работаю вместе с джамшутами на стройке. Возле Рублёвки, чистыми выходит ~120. Почему это оказалось у меня в рекомендуемых??

HighlanderMcLeod
Автор

Видео клевое, но хочется тайминги еще :) Ждем материала от вас, вы очень приятно объясняете материал

ЛияДрагомир
Автор

8:00 Почему std::string() ошибка? Это же просто вызов стандартного конструктора. Пустые фигурные скобки ведь тоже приведет к вызову того же стандартного конструктора.

iforand
Автор

Очень классный контент, для Джуна, много вещей, что надо подтянуть, хочется уже быстрее на работу и задонатить, ты делаешь очень многое для начинающих, спасибо!

vasiliypupkin
Автор

Охуительно, посмотрел за ужином, о чем они говорят - х.з. но очень интересно. Спасибо ютюбу за рекомндацию ахахахахахаха... Комменты тоже доставляют. Удачи вам парни!

valtz
Автор

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

Finikovich
Автор

Я являюсь преподавателем C++ в ютубе и работаю игровым разработчиком, поэтому добавлю свои 5 копеек.

Не понимаю, почему автор видео решил, что кандидат подходит ближе к middle-уровню, если он на большое количество "junior"-вопросов не смог ответить. Какая разница, какой у него коммерческий опыт? Я могу за 10 лет поменять 10 компаний, везде быть джуном и рассказывать, что в одной компании я делал одно, в другой другое, и так далее. А на собеседовании не могу ответить на вопросы. Считаю, что кандидат подходит на позицию Trainee/Intern.

Переходим к вопросам.
1. Не понимаю, зачем у кандидатов на позицию junior спрашивать их опыт. Что от этого меняется? Вы будете задавать другие вопросы? Вы вообще их не будете задавать? Я считаю, что на собеседованиях на intern/trainee/junior позиции нужно оценивать только навык программирования. Ну да ладно, это не критично.
2. Не понимаю, почему интервьюер решил сразу начать с сложной (по сравнению с большинством вопросов) задачи, а потом задавать простые вопросы. Кандидат в теории может слиться уже на простых вопросах и тогда незачем будет решать задачу. В теории вы можете так затянуть время собеседования, если кандидат будет нулевым.
3. Не "хИдэр" а "хЭдэр", потому что header читается как "хэдэр". Хоча я не вижу причин в разговоре не говорить "заголовочный файл".
4. Почему кандидату надо знать об extern "C"? Я работал в нескольких компаниях, и ни разу не было причины использовать это. Что мешает junior-разработчику при первом требовании использовать С-функцию, загуглить эту информацию и получить быстрый ответ? Это лишний вопрос.
5. "Битовые задачки - часто возникающая вещь" - вы откуда пришли к такому выводу, можно поинтересоваться?) Надеюсь, вывод не был сделан только с ЛИЧНОГО опыта?)
6. "На какие виды можно разделить сериализацию с точки зрения С++" - максимально непонятный вопрос. Я уверен, что автор его придумал на лету. Готовьте вопросы заранее и убедитесь в их ясности.
7. На счет вопроса по сериализации списка в файле. Я здесь вообще поплыл в ваших (обоих) рассуждениях. "Как понять, какой элемент будет следовать за каким?" Та элементарно - пройтись по списку и просто записывать значение каждого элемента в файл. В файле значения будут хранится как простой набор чисел. А при считывании будет ясно, что первое значение - первый элемент. Второе - второй. Либо я не вообще не понял вашей темы, либо вы оба заблудились в трех соснах.
8. Функтор - это класс/структура, которые должны иметь перезагруженный оператор вызова функции. Все. Функторы могут не иметь "состояния" (полей). На видео была дана неточная формулировка.
9. Предикат - функция, которая анализирует объект/объекты и возвращает ответ анализа в формате "Да/Нет" (то-есть тип bool). Соответственно на 52:46 кандитат ответил точнее, чем интервьюер, потому что предикат должен являться функцией. Функтор - это не функция, хотя функтор может себя вести как функция. Точно так же указатель на функцию также может вести себя как функция, но от не является функтором.
10. Стандартные контейнеры можно засунуть в ваши собственные классы, как поля. Тогда не будет проблем з деструкторами. Хорошо было бы сказать об этом кандидату.

Считаю, что вопросов мало было задано. Но смотрел все ровно с интересом, поэтому спасибо за видео.

BloganProgramming
Автор

Сам я не программист, но всегда восхищаюсь этими ребятами.

igorkl
Автор

Здравствуйте. А будет сборка Quake из исходников ?

Айдер_Нурмухаммедов
Автор

Для вопроса про сериализацию двунаправленного списка можно сделать намного проще:
Обозначаем тип и указываем цикличный этот список или нет, дальше данные кладем в виде массива.
На выходе получаем минимальный объём сериализованных данных + обработку за один проход как для записи, так и для чтения.

arturhisamutdinov
Автор

Не понял, какой вызов функции? Там простой вызов дефолтного конструктора, не важно какие скобки

ic
Автор

Вставка в середину массива, по моему надо использовать linked list

uniers
Автор

В первой задаче не возникло вопроса, что делать с уже существующими в строке слешами

vp_arth
Автор

Очень интересно. Ты располагаешь к тому, чтобы любить c++

idodoqdo
Автор

55:55 можно обьяснить при чем здесь виртуальный деструктор, если человек вроде хотел приватно наследоваться?

it_cpp
Автор

объясните, зачем при сериализации двусвязного списка с чем-то мудрить? Просто по порядку как массив записал значения и все

kokosiki