Как пройти собеседование?
-
- Уже с Приветом
- Posts: 13716
- Joined: 20 Nov 2009 04:01
Re: Как пройти собеседование?
Смешно, самом деле. Устраивать экзамен на знание основ - это самый дурацкий способ найти успешного кандидата. Ну как проще спросить о предыдущих достижениях рассказать.
-
- Уже с Приветом
- Posts: 13716
- Joined: 20 Nov 2009 04:01
Re: Как пройти собеседование?
Недавний пример. Мой ребёнок прпросил помощи в интегрироивании в криволинейных координатах. Мне понадобилось полчаса, чтобы вспомнить основы, после чего я смог оказать ему помощь, даже в самых заковыристых задачах. Ну не каждый день я интегрирую в криволинейных координатах.
Т.е. интервьюеры, спрашивающие такие детальные вопросы - лишь узнают чем занимался претендент прямо перед интервью, а не его способности. Причём разница во вникание специфики - может быть только час-два, пока отвергнутый претендет не досатигнет уровня прошедшего.
Т.е. интервьюеры, спрашивающие такие детальные вопросы - лишь узнают чем занимался претендент прямо перед интервью, а не его способности. Причём разница во вникание специфики - может быть только час-два, пока отвергнутый претендет не досатигнет уровня прошедшего.
-
- Уже с Приветом
- Posts: 9195
- Joined: 04 Mar 2011 03:04
- Location: SFBA
Re: Как пройти собеседование?
Для получения суммы со всех элементов в контейнере? Или это вопрос на то, что кандидат ожидает от "скалярного" типа? Вроде того что int some_type::getInt() ему должен ему представляться. Это опять конфуз, вроде того, с его тема начиналась.Мальчик-Одуванчик wrote: Насколько задача покажется сложнее если int заменить на произвольный скалярный тип ?
... and even then it's rare that you'll be going there...
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
Я наверное не совсем точно пояснил свою мысль. Под скалярным типом имеется виду любое числовой тип { short int, int, long, double, ... float }. Операция приведения cуммы к типу int не рассматривается.
scalar_type result = F(begin, end);
std::map<std::string, double> mp;
std::deque<long> dp;
std::vector<int> vp;
..... инициализация контейнеров
double d1 = F(mp.begin(),mp.end());
long l1 = F(dp.begin(),dp.end());
int i1 = F(vp.begin(),vp.end());
Повторюсь, входные данные только итераторы начала и конца контейнера. Тип контейнера в фунцию не передается и из типа итератора не выводится (впрочем это и не требуется).
scalar_type result = F(begin, end);
std::map<std::string, double> mp;
std::deque<long> dp;
std::vector<int> vp;
..... инициализация контейнеров
double d1 = F(mp.begin(),mp.end());
long l1 = F(dp.begin(),dp.end());
int i1 = F(vp.begin(),vp.end());
Повторюсь, входные данные только итераторы начала и конца контейнера. Тип контейнера в фунцию не передается и из типа итератора не выводится (впрочем это и не требуется).
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
Мальчик-Одуванчик, навскидку и без буста, где-то так
Code: Select all
template<class T>
class ValueTypeTraits
{
public:
typedef T value_type;
static value_type& value(T& v)
{
return v;
}
};
template<class Key, class Value>
class ValueTypeTraits<pair<Key, Value>>
{
public:
typedef Value value_type;
static value_type& value(pair<Key, Value>& v)
{
return v.second;
}
};
template<class Iter>
typename ValueTypeTraits<typename Iter::value_type>::value_type Sum(Iter begin, Iter end)
{
ValueTypeTraits<typename Iter::value_type>::value_type result = ValueTypeTraits<typename Iter::value_type>::value_type();
for (Iter it = begin; it != end; ++it)
result += ValueTypeTraits<typename Iter::value_type>::value(*it);
return result;
}
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
тип значения может быть любым, лишь бы был конструктор по умолчанию, оператор = и +=
на простых понятное дело будет работать по умолчанию
на простых понятное дело будет работать по умолчанию
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
Ну как раз буст и не желателен.
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( четверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
Что еще посоветуете проверять: SFINAE, trampoline ...?
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( четверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
Что еще посоветуете проверять: SFINAE, trampoline ...?
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
спрашивать нужно так (имхо): зацепиться за что-то более менее простое, например, текущая задача (хотя я думаю она чуточку больше, чем просто основы) и далее ковырять вглубь и ширь пока кандидат не начнет плаватьМальчик-Одуванчик wrote:Ну как раз буст и не желателен.
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( черверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и натренированный на стандартных интервью говнокодер через него легко перескочит.
Что еще посоветуете проверять: SFINAE, trampoline ...?
по сути SFINAE - это основа всех извращений с шаблонами, так что понимание быть должно
ну и основы понятное дело - шаблоны, шаблоны шаблонов, специализации, ...
т.е. ваша задача как интервьюера - понять границы знаний кандидата и что уже было в опыте
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
так вы ему еще вопросы позадавайте по шаблонам и сразу будет видно выучил он конкретную задачку или обладает навыкамиВы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
-
- Уже с Приветом
- Posts: 15526
- Joined: 27 Sep 2007 22:53
Re: Как пройти собеседование?
Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
как по мне, так нормальная задачка, не сложная, но и не на 100% тривиальнаяМальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
-
- Уже с Приветом
- Posts: 9275
- Joined: 14 Dec 2001 10:01
- Location: Российская Федерация
Re: Как пройти собеседование?
Даже в футболе мало уметь бить обоими ногами, обводить и иные тех. элементы (читай опыт и знания). Профи в футболе обязан думать, не говоря уже об иных важных качествах.
Миру мир
-
- Уже с Приветом
- Posts: 15850
- Joined: 01 Mar 2008 15:14
- Been thanked: 1 time
Re: Как пройти собеседование?
Задача из самых типичных на интервью, но вопрос уже из категории "сложных". Алкесандер я так понял поболее меня натаскался на интервью, поэтому он решит быстро, я не уверен что написал бы решение на листике, но как тестовое задание - легко.Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Обычно на решение таких задач предлагают 5-10 минут. Решение нужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару. Думать особенно не о чем.
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
OtherSide wrote:Задача из самых типичных на интервью, но вопрос уже из категории "сложных". Алкесандер я так понял поболее меня натаскался на интервью, поэтому он решит быстро, я не уверен что написал бы решение на листике, но как тестовое задание - легко.Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Обычно на решение таких задач предлагают 5-10 минут. Решение нужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару. Думать особенно не о чем.

я правильно написал, так как в студии написал, а потом просто на форум скопировал, на листике написал бы с арфаграфическеме ашипками


задача совсем не об этом. то, что в map значение - это пара, об этом знают примерно 100% кандидатов, а вот как абстрагироваться от этого - это и есть то, что требуется в этом задаченужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару
-
- Уже с Приветом
- Posts: 3647
- Joined: 23 May 2010 15:10
Re: Как пройти собеседование?
Мальчик-Одуванчик, вот еще вспомнил
на таких задачках, еще полезно, если интервьюер выполняет роль компилятора, т.е. если кандидат допускает ошибки, ну просто описки у него можно уточнить, а вот на принциальные ошибки лучше говорить, что компилятор вам не даст это сделать потому то и потому то (попутно можно обсудить почему в С++ так-то и так-то делать нельзя), чтобы у кандидата была возможность поправиться и сделать как-то по другому
т.е. сама задачка - это не бинарная функция "решил" либо "не решил", а это просто тема для общения, местами достаточно обширного
на таких задачках, еще полезно, если интервьюер выполняет роль компилятора, т.е. если кандидат допускает ошибки, ну просто описки у него можно уточнить, а вот на принциальные ошибки лучше говорить, что компилятор вам не даст это сделать потому то и потому то (попутно можно обсудить почему в С++ так-то и так-то делать нельзя), чтобы у кандидата была возможность поправиться и сделать как-то по другому
т.е. сама задачка - это не бинарная функция "решил" либо "не решил", а это просто тема для общения, местами достаточно обширного