Что поспрашивать на позицию SWE на тему C++?

User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Знаю, что многие не очень любят leetcode - style задания.
Так что, с одной стороны, слишком уж отпугнуть человека не хочется, тем более, что он вроде как "архитектор" :D на текущей работе называется. С другой стороны, как-то кодинг хочется проверить.
Попросили именно на тему C++ проверить.
User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Re: Что поспрашивать на позицию SWE на тему C++?

Post by roadman »

Попроси имплементировать std::list и всё что надо увидишь и кодирование и архитектуру.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Херовимчик »

Класс по работе со строкой (разворот строки, изменение поняла слов, и тд). Просто и эффективно, и очень наглядно что потом ожидать в плане качества кода. Очень эффективно в формате, а теперь давай добавим ещё вот этот метод (порядок выбирать так, чтобы требовалось сделать небольшой редактор уже имеющегося кода… если конечно кандидат до этого додумается и не начнёт копи-пастить)
-helloworld-
Уже с Приветом
Posts: 2173
Joined: 03 Dec 2010 02:46
Location: Intermountain West

Re: Что поспрашивать на позицию SWE на тему C++?

Post by -helloworld- »

Я бы спросил - какого хрена вы ещё на плюсах? Алё "архитектор", на дворе 21 век!
Тут-то то и сразу всё раскроется.
User avatar
kyk
Уже с Приветом
Posts: 31438
Joined: 21 Nov 2004 05:12
Location: камбуз на кампусе

Re: Что поспрашивать на позицию SWE на тему C++?

Post by kyk »

не барское это дело, кускай кодеры кодят. А архитектор идеи подаёт и общие указания. Хоть в псевдокоде. Главное чтобы алгоритмы знал и понимал
Лучше переесть, чем недоспать! © Обратное тоже верно :umnik1:
User avatar
liamkin
Уже с Приветом
Posts: 2601
Joined: 19 Jun 2003 20:22
Location: USA

Re: Что поспрашивать на позицию SWE на тему C++?

Post by liamkin »

M. Ridcully wrote: 30 Aug 2021 20:43 Знаю, что многие не очень любят leetcode - style задания.
Так что, с одной стороны, слишком уж отпугнуть человека не хочется, тем более, что он вроде как "архитектор" :D на текущей работе называется. С другой стороны, как-то кодинг хочется проверить.
Попросили именно на тему C++ проверить.
вы его предупредите, что будут код-задачки. Пусть подготовится, вспомнит школьные олимпиады.
Спросите как вызов виртуального метода работает.
Каков смысл sizeof - например при sizeof arrayVar - подводные камушки.
Как ошибки с написанием в чужую память искать? (типа запись за границы массива)
Как утечку памяти искать? Или невызванный delete для каких-нибудь объектов?
Ну и конечно дайте простую задачку. Посмотрите как у него логика и написание кода работает.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

M. Ridcully wrote: 30 Aug 2021 20:43 Знаю, что многие не очень любят leetcode - style задания.
Так что, с одной стороны, слишком уж отпугнуть человека не хочется, тем более, что он вроде как "архитектор" :D на текущей работе называется. С другой стороны, как-то кодинг хочется проверить.
Попросили именно на тему C++ проверить.
А какой стандарт?
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

Херовимчик wrote: 31 Aug 2021 04:38 Класс по работе со строкой (разворот строки, изменение поняла слов, и тд). Просто и эффективно, и очень наглядно что потом ожидать в плане качества кода. Очень эффективно в формате, а теперь давай добавим ещё вот этот метод (порядок выбирать так, чтобы требовалось сделать небольшой редактор уже имеющегося кода… если конечно кандидат до этого додумается и не начнёт копи-пастить)
Кстати классная идея, особенно в плане std:string. Как архитектор он наверняка Вам расскажет саму концепцию, для чего нужны треи (traits), как это помогает поднять уровни косвенности и нафига они вообще. Дальше можно копнуть в аллокаторы, оператор new и его формы итд.
По аналогии со строками можно попросить набросать архитектуру класса, который бы позволял осуществлять обмен данными через различные среды доставки (pipes, tcp/ip, serial port) - в зависимости от реализации проверите частичную специализацию классов или функций-членов и можно обсудить преимужества того или иного выбора.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

Херовимчик wrote: 31 Aug 2021 04:38 Класс по работе со строкой (разворот строки, изменение поняла слов, и тд). Просто и эффективно, и очень наглядно что потом ожидать в плане качества кода. Очень эффективно в формате, а теперь давай добавим ещё вот этот метод (порядок выбирать так, чтобы требовалось сделать небольшой редактор уже имеющегося кода… если конечно кандидат до этого додумается и не начнёт копи-пастить)
А если чувак не понравится и захочете завалить - копните в сторону строковых литералов.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Мальчик-Одуванчик wrote: 31 Aug 2021 20:26 А какой стандарт?
А это важно? Пусть будет современный. Точно не скажу - я это не для нашей группы интервьюировал. У нас C++17.

А архитектор спалился на вопросе про виртуальный деструктор. Я не шучу, решил вот спросить - молодость вспомнить. Теперь всегда буду спрашивать.
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Херовимчик »

M. Ridcully wrote: 31 Aug 2021 21:01 А архитектор спалился на вопросе про виртуальный деструктор. Я не шучу, решил вот спросить - молодость вспомнить. Теперь всегда буду спрашивать.
Архитекты нынче пошли не те… я раньше стремилась интервьюрить людей, у кого отсчёт опыта датирован раньше моей даты рождения, я думала они меня либо замочат, либо оборжут. А они почти все на какой-то фигне валяться
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

M. Ridcully wrote: 31 Aug 2021 21:01
Мальчик-Одуванчик wrote: 31 Aug 2021 20:26 А какой стандарт?
А это важно? Пусть будет современный.
Тогда концепты - самое то обсудить.
M. Ridcully wrote: 31 Aug 2021 21:01 А архитектор спалился на вопросе про виртуальный деструктор. Я не шучу, решил вот спросить - молодость вспомнить. Теперь всегда буду спрашивать.
Вопрос был про полиморфный класс?
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Мальчик-Одуванчик wrote: 01 Sep 2021 01:53 Тогда концепты - самое то обсудить.
Не, ну не настолько современный. :-)
Они хоть в последнем GCC есть - это -std=c++20?

Вообще, задача у собеседования все-таки вполне практичная была - постараться отфильтровать потенциальный балласт, но при этом постараться не запороть полезного кандидата.
При этом таких уж толп, как в гуглобуки, к нам не ломятся, хотя компания и хорошая, так что каждый адекватный кандидат достаточно ценен.
Мальчик-Одуванчик wrote: 01 Sep 2021 01:53 Вопрос был про полиморфный класс?
Ага.
К слову, я его не забраковал на этом, хотя и написал feedback, что это он не ответил. Рекомендовал продолжить собеседовать. Хотя вопрос, конечно, базовый вообще-то.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Херовимчик wrote: 31 Aug 2021 21:20
M. Ridcully wrote: 31 Aug 2021 21:01 А архитектор спалился на вопросе про виртуальный деструктор. Я не шучу, решил вот спросить - молодость вспомнить. Теперь всегда буду спрашивать.
Архитекты нынче пошли не те… я раньше стремилась интервьюрить людей, у кого отсчёт опыта датирован раньше моей даты рождения, я думала они меня либо замочат, либо оборжут. А они почти все на какой-то фигне валяться
Хорошо, когда можно вот так вот "валить" любого.
Неужели к вам прям как в гуглобуки народ прет и можно лучших отбирать?
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

M. Ridcully wrote: 01 Sep 2021 02:10
Мальчик-Одуванчик wrote: 01 Sep 2021 01:53 Вопрос был про полиморфный класс?
Ага.
К слову, я его не забраковал на этом, хотя и написал feedback, что это он не ответил. Рекомендовал продолжить собеседовать. Хотя вопрос, конечно, базовый вообще-то.
Это как бы старый подход (с динамическим полиморфизмом) и его стараются не использовать, поэтому можно и запамятовать.
А если еще смешать с абстрактным классом, то вообще каша образуется.
Вот например смешной вопрос: "Нужно ли в абстрактном полиморфном классе определять виртуальный деструктор?"
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Мальчик-Одуванчик wrote: 01 Sep 2021 02:22 Это как бы старый подход (с динамическим полиморфизмом) и его стараются не использовать, поэтому можно и запамятовать.
Ну частично поэтому я и не стал человека отбраковывать. Тем более, что он довольно разумно заявил, что вообще старается деструкторы по-умолчанию использовать, где возможно, с чем я целиком согласен.
Но все-ж таки, из-за того, что динамический полиморфизм давно известен и обсосан - не делает его менее привлекательным. Иногда он вполне уместен.
Мальчик-Одуванчик wrote: 01 Sep 2021 02:22 Вот например смешной вопрос: "Нужно ли в абстрактном полиморфном классе определять виртуальный деструктор?"
А чего смешного? Если собираешься работать с классом полиморфно - объяви в базе виртуальный деструктор. По-моему все 100% однозначно.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

M. Ridcully wrote: 01 Sep 2021 02:10
Мальчик-Одуванчик wrote: 01 Sep 2021 01:53 Тогда концепты - самое то обсудить.
Не, ну не настолько современный. :-)
Они хоть в последнем GCC есть - это -std=c++20?
В последнем должны быть, но я с ними не разобрался и в голове не уложилось.
Хочу выбрать время и набить руку на примерах чтобы было ясное понимание нафига козе баян.
А вот обсудить со знающим человеком было бы самое оно - тогда бы и самому польза была от интервью.
Особенно если человек позиционирует себя знатоком в разных языках, например с архитектором интересно было бы обсудить концепцию замыкания и как она выражена в разных языках программирования.
С плюсовиком с удовольствием пообщался бы о той части буста, в которой он разбирается хорошо а я не очень.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Мальчик-Одуванчик wrote: 01 Sep 2021 02:33 Хочу выбрать время и набить руку на примерах чтобы было ясное понимание нафига козе баян.
Как я понимаю, по-простецки - для более адекватных сообщений об ошибках компиляции.
Собственно на runtime behavior они не влияют.
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15477
Joined: 27 Sep 2007 22:53

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Мальчик-Одуванчик »

M. Ridcully wrote: 01 Sep 2021 02:32 А чего смешного? Если собираешься работать с классом полиморфно - объяви в базе виртуальный деструктор. По-моему все 100% однозначно.
Просто тут можно привести хороший пример граничного случая - класс из одних чисто виртуальных функций и единственного пустого виртуального деструктора. То есть то, что принято называть интерфейсом. И здесь деструктор нужен только для того чтобы иметь возможность удалять производный класс по указателю на базовый. А если у нас два базовых класса - один обычный, другой - специализированный интерфейс наружу и мы наоборот, хотим запретить саму возможность удаления производного класса по указателю на интерфейс для пользователей этого интерфейса.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Мальчик-Одуванчик wrote: 01 Sep 2021 03:09 Просто тут можно привести хороший пример граничного случая - класс из одних чисто виртуальных функций и единственного пустого виртуального деструктора.
Это не то, чтобы граничный случай.
Пожалуй, это единственный 100% некривой способ использования наследования в современном C++. Это я и имею в виду, когда говорю о динамическом полиморфизме. Есть интерфейсы, а есть конкретные классы, которые их имплементируют.
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Херовимчик »

M. Ridcully wrote: 01 Sep 2021 02:16
Херовимчик wrote: 31 Aug 2021 21:20
M. Ridcully wrote: 31 Aug 2021 21:01 А архитектор спалился на вопросе про виртуальный деструктор. Я не шучу, решил вот спросить - молодость вспомнить. Теперь всегда буду спрашивать.
Архитекты нынче пошли не те… я раньше стремилась интервьюрить людей, у кого отсчёт опыта датирован раньше моей даты рождения, я думала они меня либо замочат, либо оборжут. А они почти все на какой-то фигне валяться
Хорошо, когда можно вот так вот "валить" любого.
Неужели к вам прям как в гуглобуки народ прет и можно лучших отбирать?
Мы конечно и есть гуглобуки, но к нам толп особых нет (С/С++ нынче не в моде). И я особо не валю, я разочаровываюсь, когда архитектор или сильно сеньор не может осилить простую задачу за 30-40 минут, или сам себя запихивает в такой тупик, что потом без помощи вылезти не может

(Я всегда делаю простенькую визуализацию и даю примеры. Активно «присутствую», отвечаю на все вопросы и сразу озвучиваю все условия, не минусуя если человек сам не догадался что-то спросить. А для нерешивших, ещё и ответ в конце пишу и визуализирую)
vdfs
Уже с Приветом
Posts: 676
Joined: 24 Dec 2015 07:50
Location: Madison, WI

Re: Что поспрашивать на позицию SWE на тему C++?

Post by vdfs »

Спрашивайте то, что вам потребуется от человека в его реальной работе. Посмотрите, что в его прошлом опыте близко к тому что вам надо, и дайте ему рассказать детали, задайте вопросы по ходу.

Если он у вас будет код писать, дайте ему код написать - очень упрощенную версию какой-то вашей реальной задачи.
Если не будет код писать, нафига вам человека гонять по коду.
User avatar
M. Ridcully
Уже с Приветом
Posts: 12003
Joined: 08 Sep 2006 20:07
Location: Силиконка

Re: Что поспрашивать на позицию SWE на тему C++?

Post by M. Ridcully »

Херовимчик wrote: 01 Sep 2021 04:04 Мы конечно и есть гуглобуки
Минус сотня-две-три разницы в total comp, и ужасная company culture?
mister-X
Уже с Приветом
Posts: 415
Joined: 31 May 2007 21:39
Location: Atlanta

Re: Что поспрашивать на позицию SWE на тему C++?

Post by mister-X »

Интересно, что такое у вас там на С++? Неужели драйвера, ембедед, компиляторы или новая OS? Все что я видел за последние года на С++ было старье куда никто лезть не хотел. И найти знающих на эту позицию очень не легко. Те кто чтото знает, найдёт работу получше. Так и моя С++, карьера закончилась, давно это было. Пришёл на интервью, а там какой-то гик с жирными волосами и пальцами начал спрашивать какие в printf флаги и параметры. Кто это помнит? Ну и слава богу, а то бы так и застрял в 90-х :D
User avatar
Херовимчик
Уже с Приветом
Posts: 5283
Joined: 27 Sep 2008 21:48
Location: Moscow-Seattle-SFBA

Re: Что поспрашивать на позицию SWE на тему C++?

Post by Херовимчик »

M. Ridcully wrote: 01 Sep 2021 07:00
Херовимчик wrote: 01 Sep 2021 04:04 Мы конечно и есть гуглобуки
Минус сотня-две-три разницы в total comp, и ужасная company culture?
Эээ… нет

Return to “Работа и Карьера в IT”