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

Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote:
OtherSide wrote:
valeriypi wrote:Вы же не хотите больше программировать, не увлекайтесь в дебри, сначала будет ентузиазм, подьем желания, тем больше противно станет ремесло по прошествию короткого времени, а до конца пути еше столько лет. Ишите и сосредоточивайтесь на другом более подходяшем дла зарабатывания на жизнь
Я бы не сказал, что программирование для меня противно. Все-таки я занимаюсь им всю жизнь (с 11 лет). Скорее тут вопрос самореализации и перспектив. Что бы программировать вовсе не нужно быть особенно умным, нужна быстрая соображалка и энергря юность. А тот ум, который основан на жизненном опыте в программировании не задействован практически.
я вас уже неоднократно показал, что чтобы хорошо программировать нужен ОПЫТ и знания
какая бы ни была энергия юности, но без знаний и опыта, такую библиотеку как boost нельзя создать, формочки клепать да, а что-то действительно серьезное - нет
Опыт нужен, но не очень много. 2-3 года хватит.
утопия, достаточно глянуть то, что пишут люди с 3мя годами опыта
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Alexandr wrote: утопия, достаточно глянуть то, что пишут люди с 3мя годами опыта
По-моему вы сами писали, что толковые студенты начинают работать со 2-го курса. А как любители - в средней школе. Получается 3 года после ВУЗа это от 7-10 лет опыта реального.
И чего такого можете предложить, что затруднительно создать программисту в 25 лет? Многие софтверные гиганты были основаны людьми куда младше.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: зачем мне это?
я и большую часть школьной программы по химии, например, не вспомню
тут речь не в завалить, а в практическом применении того, что есть в стандарте
просто большинство не пользуется многими возможностями С++, например шаблонами, поэтому им кажется, что они либо не нужны, либо детали как они работают не важны, но они важны, если класс задач повышается,
например, написать собственную библиотеку грамотно
Ну вот вы и попались :) А кто-то недавно писал о непрофессионалах, отсутвии глубины и прочем. Просто вы сидите на своей кочке и считаете себя самым крутым, не видя ничего вокруг :)
Мне в работе куда чаще нужно было знать что такое нормальное распределение чем устройство кеш-памяти.
у нас был отдельный курс логики, но я не помню, чтобы там стрелка пирса впринципе упоминалась
симплекс-метод мож и упоминался на вычмате, хз, не помню
Просто вы сидите на своей кочке и считаете себя самым крутым, не видя ничего вокруг :)
где я таким себя считаю? LOL
мы вели вечь о С++ и тут я считаю себя достаточно квалифицированным, чтобы можно было поспорить/пообщаться на определенные темы
вы думаете, если вы что-то поверхам нахватались делает вас "видящим вокруг"?

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

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: утопия, достаточно глянуть то, что пишут люди с 3мя годами опыта
По-моему вы сами писали, что толковые студенты начинают работать со 2-го курса. А как любители - в средней школе. Получается 3 года после ВУЗа это от 7-10 лет опыта реального.
И чего такого можете предложить, что затруднительно создать программисту в 25 лет? Многие софтверные гиганты были основаны людьми куда младше.
вы сказали 2-3 года опыта достаточно, так что если со второго курса работает берем выпускника
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Alexandr wrote: где я таким себя считаю? LOL
мы вели вечь о С++ и тут я считаю себя достаточно квалифицированным, чтобы можно было поспорить/пообщаться на определенные темы
вы думаете, если вы что-то поверхам нахватались делает вас "видящим вокруг"?

расскажите, как вы на практике симплекс метод применяете? :) а стрелку пирса? :)
Зашибись, по каким "верхам нахватался", вы о чем? :pain1: Я вообще-то на С++ пишу почти каждый день лет 10 уже. Понятно, что на собеседовании и спрашивают такие вещи, которые редко используются, и если годами в Страуструпа не заглядывал - можно и забыть.
Аппеляция к практике - вопрос на собеседовании неуместный. Я на практике и виртуальное наследование не использую и эксепшены из конструктора стараюсь не кидать.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: где я таким себя считаю? LOL
мы вели вечь о С++ и тут я считаю себя достаточно квалифицированным, чтобы можно было поспорить/пообщаться на определенные темы
вы думаете, если вы что-то поверхам нахватались делает вас "видящим вокруг"?

расскажите, как вы на практике симплекс метод применяете? :) а стрелку пирса? :)
Зашибись, по каким "верхам нахватался", вы о чем? :pain1: Я вообще-то на С++ пишу почти каждый день лет 10 уже. Понятно, что на собеседовании и спрашивают такие вещи, которые редко используются, и если годами в Страуструпа не заглядывал - можно и забыть.
Аппеляция к практике - вопрос на собеседовании неуместный. Я на практике и виртуальное наследование не использую и эксепшены из конструктора стараюсь не кидать.
вот и зря :)

но давайте вернемся к симплекс методу, ну и стрелке пирса
как вы это на практике применяете?

я вот на практике не применяю try блок конструктора, так я о нем никогда и не спрашиваю :)
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Alexandr wrote: 1 вот и зря :)

2 но давайте вернемся к симплекс методу, ну и стрелке пирса
как вы это на практике применяете?

я вот на практике не применяю try блок конструктора, так я о нем никогда и не спрашиваю :)
1Я думаю что не зря - такой код потом не очень-то удобно поддерживать. Куда удобнее и красивее идея интерфейсов в шарпах и яве. Можно смело добавлять в классы унифицированные возможности, не боясь что код превратиться в вермишель, а компилятор не напихает в экземпляр класса лишнего мусора.

2 Особенность стрелки пирса в том, что ее достаточно, что бы через нее выразить любую функцию булевой алгебры. Знание булевой алгебры ( в частности широкоизвестное правило де-моргана) используются для оптимизации кода (упрощении выражений)
Симплекс метод используется для решения определенного класса экономических задач, например.
Last edited by OtherSide on 17 Apr 2012 12:00, edited 1 time in total.
OtherSide
Уже с Приветом
Posts: 15759
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

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

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: 1 вот и зря :)

2 но давайте вернемся к симплекс методу, ну и стрелке пирса
как вы это на практике применяете?

я вот на практике не применяю try блок конструктора, так я о нем никогда и не спрашиваю :)
1Я думаю что не зря - такой код потом не очень-то удобно поддерживать. Куда удобнее и красивее идея интерфейсов в шарпах и яве. Можно смело добавлять в классы унифицированные возможности, не боясь что код превратиться в вермишель, а компилятор не напихает в экземпляр класса лишнего мусора.

2 Особенность стрелки пирса в том, что ее достаточно, что бы через нее выразить любую функцию булевой алгебры. Знание булевой алгебры ( в частности широкоизвестное правило де-моргана) используются для оптимизации кода (упрощении выражений)
Симплекс метод используется для решения определенного класса экономических задач, например.
1) так и не надо туда лазить, классы в целом для изменений должны быть закрыты,
часть из них спроектирована для расширения, это и надо пользовать
Особенность стрелки пирса в том, что ее достаточно, что бы через нее выразить любую функцию булевой алгебры.
в железе ее нет, и соответственно компиляторам она тоже до лампочки
я уже говорил, что я не помню вообще какого-либо упоминания о ней в курсе (целый семестр шло) логики, наверное не особенно нужна, но для общего развития полезно
Знание булевой алгебры ( в частности широкоизвестное правило де-моргана) используются для оптимизации кода (упрощении выражений)
вот это никак со стрелкой пирса не связано, так как хардварной реализации ее нет
а булева алгерба, да, полезна, спору тут нет
Симплекс метод используется для решения определенного класса экономических задач, например.
конкретно из вашей практики пример можно?
User avatar
Мальчик-Одуванчик
Уже с Приветом
Posts: 15475
Joined: 27 Sep 2007 22:53

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

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

После того как автор темы освежил свои знания и успешно прошел собеседование, просьба глянуть на задачку и поделиться мнением:
- Встречалось ли на интервью нечто подобное. Насколько задача выглядит типовой.
- Показалась ли задача сложной для пятиминутноого, получасового размышления
- Какие идеи возникли для ее решения

Итак имеем несколько предварительно инициализированных стандартных контейнеров разного типа, включая ассоциативные. Для простоты хранимые в них значения одного типа (int).

std;:map<std::string,int> mp;
..........
std::vector<int> vp;
.............// код инициализации

Требуется написать шаблонную функцию формата

template<typename iterator_type>
int S(iterator_type b, iterator_type e) {
............... // собственно предлагается реализовать тело обьявленной функции
}
которая принимает на вход начальный и конечный итераторы контейнера а на выходе, к примеру, возвращает сумму хранимых им данных (подразумевается что в случае массива суммирование нужно вести по pair.second)

stdout << S(mp.begin(),mp.end()) << S(vp,begin(),vp.end()) << endl;

Насколько задача покажется сложнее если int заменить на произвольный скалярный тип ?
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: 9194
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: 15475
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: 15475
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: 15475
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: 9258
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

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

Post by adb »

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

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”