Как пройти собеседование?

User avatar
Fortinbras
Уже с Приветом
Posts: 13716
Joined: 20 Nov 2009 04:01

Re: Как пройти собеседование?

Post by Fortinbras »

Смешно, самом деле. Устраивать экзамен на знание основ - это самый дурацкий способ найти успешного кандидата. Ну как проще спросить о предыдущих достижениях рассказать.
User avatar
Fortinbras
Уже с Приветом
Posts: 13716
Joined: 20 Nov 2009 04:01

Re: Как пройти собеседование?

Post by Fortinbras »

Недавний пример. Мой ребёнок прпросил помощи в интегрироивании в криволинейных координатах. Мне понадобилось полчаса, чтобы вспомнить основы, после чего я смог оказать ему помощь, даже в самых заковыристых задачах. Ну не каждый день я интегрирую в криволинейных координатах.

Т.е. интервьюеры, спрашивающие такие детальные вопросы - лишь узнают чем занимался претендент прямо перед интервью, а не его способности. Причём разница во вникание специфики - может быть только час-два, пока отвергнутый претендет не досатигнет уровня прошедшего.
User avatar
Medium-rare
Уже с Приветом
Posts: 9195
Joined: 04 Mar 2011 03:04
Location: SFBA

Re: Как пройти собеседование?

Post by Medium-rare »

Мальчик-Одуванчик wrote: Насколько задача покажется сложнее если int заменить на произвольный скалярный тип ?
Для получения суммы со всех элементов в контейнере? Или это вопрос на то, что кандидат ожидает от "скалярного" типа? Вроде того что int some_type::getInt() ему должен ему представляться. Это опять конфуз, вроде того, с его тема начиналась.
... and even then it's rare that you'll be going there...
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Как пройти собеседование?

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

Я наверное не совсем точно пояснил свою мысль. Под скалярным типом имеется виду любое числовой тип { 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());

Повторюсь, входные данные только итераторы начала и конца контейнера. Тип контейнера в фунцию не передается и из типа итератора не выводится (впрочем это и не требуется).
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

Мальчик-Одуванчик, навскидку и без буста, где-то так

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;
}
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

тип значения может быть любым, лишь бы был конструктор по умолчанию, оператор = и +=
на простых понятное дело будет работать по умолчанию
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Как пройти собеседование?

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

Ну как раз буст и не желателен.
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( четверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
Что еще посоветуете проверять: SFINAE, trampoline ...?
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

Мальчик-Одуванчик wrote:Ну как раз буст и не желателен.
Насколько, на Ваш взгляд, эта задача может показаться сложной для интервью в зависимости от времени данной на ее решение ( черверть часа, полчаса, час) и насколько типовой?
Вы тоже считаете что задача лишь только проверка основ и натренированный на стандартных интервью говнокодер через него легко перескочит.
Что еще посоветуете проверять: SFINAE, trampoline ...?
спрашивать нужно так (имхо): зацепиться за что-то более менее простое, например, текущая задача (хотя я думаю она чуточку больше, чем просто основы) и далее ковырять вглубь и ширь пока кандидат не начнет плавать
по сути SFINAE - это основа всех извращений с шаблонами, так что понимание быть должно
ну и основы понятное дело - шаблоны, шаблоны шаблонов, специализации, ...

т.е. ваша задача как интервьюера - понять границы знаний кандидата и что уже было в опыте
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

Вы тоже считаете что задача лишь только проверка основ и всего лишь натренированный на стандартных интервью соискатель через неё легко перескочит?
так вы ему еще вопросы позадавайте по шаблонам и сразу будет видно выучил он конкретную задачку или обладает навыками
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15526
Joined: 27 Sep 2007 22:53

Re: Как пройти собеседование?

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

Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
как по мне, так нормальная задачка, не сложная, но и не на 100% тривиальная
User avatar
adb
Уже с Приветом
Posts: 9275
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Re: Как пройти собеседование?

Post by adb »

Даже в футболе мало уметь бить обоими ногами, обводить и иные тех. элементы (читай опыт и знания). Профи в футболе обязан думать, не говоря уже об иных важных качествах.
Миру мир
OtherSide
Уже с Приветом
Posts: 15850
Joined: 01 Mar 2008 15:14
Been thanked: 1 time

Re: Как пройти собеседование?

Post by OtherSide »

Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Задача из самых типичных на интервью, но вопрос уже из категории "сложных". Алкесандер я так понял поболее меня натаскался на интервью, поэтому он решит быстро, я не уверен что написал бы решение на листике, но как тестовое задание - легко.
Обычно на решение таких задач предлагают 5-10 минут. Решение нужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару. Думать особенно не о чем.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Как пройти собеседование?

Post by Alexandr »

OtherSide wrote:
Мальчик-Одуванчик wrote:Так задачку я тоже навскидку придумал, поэтому и захотелось узнать насколько часто подобное встречается на интервью и как ее воспринимают люди, недавно прошедшие через множественное интервьюирование.
Задача из самых типичных на интервью, но вопрос уже из категории "сложных". Алкесандер я так понял поболее меня натаскался на интервью, поэтому он решит быстро, я не уверен что написал бы решение на листике, но как тестовое задание - легко.
Обычно на решение таких задач предлагают 5-10 минут. Решение нужно просто знать - помнить что итераторы ассоциативных контенеров содержат не значение, а пару. Думать особенно не о чем.
:roll:

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

Re: Как пройти собеседование?

Post by Alexandr »

Мальчик-Одуванчик, вот еще вспомнил
на таких задачках, еще полезно, если интервьюер выполняет роль компилятора, т.е. если кандидат допускает ошибки, ну просто описки у него можно уточнить, а вот на принциальные ошибки лучше говорить, что компилятор вам не даст это сделать потому то и потому то (попутно можно обсудить почему в С++ так-то и так-то делать нельзя), чтобы у кандидата была возможность поправиться и сделать как-то по другому
т.е. сама задачка - это не бинарная функция "решил" либо "не решил", а это просто тема для общения, местами достаточно обширного

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