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

User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

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

Post by Boriskin »

OtherSide wrote:Часто ли вам в работе приходится применять 1) множественное наследование или 2)перегружать оператор new? Или, например, 3)реализовывать рекурсивные темплейты?
1 - постоянно.
2 - регулярно.
3 - не понял, что подразумевается под рекурсивностью в данном контексте, но использовать темплейты на иерархии классов приходится регулярно.
Тупизна как Энтропия. Неумолимо растет.
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

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

Post by Boriskin »

OtherSide wrote:Думаю, они говорят только о том, что человек только хорошо подготовился к собеседованию, больше ни о чем.
Если человек не может даже к интеврью подготовиться, то нахер он сдался, его не в богадельню на позицию юродивого собеседуютъ. К тому же, достаточно задать пару нестандартных вопросов, чтобы понять, есть ли у кандидата понимание или человек тупо заучил стандартные ответы на стандартные же вопросы.
Поиск работы - это работа... Хотя может в нерезиновой по другому, никогда не интересовался.
Тупизна как Энтропия. Неумолимо растет.
valeriypi
Уже с Приветом
Posts: 6035
Joined: 03 May 2004 18:42
Location: Bay Area, CA

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

Post by valeriypi »

Boriskin wrote:
OtherSide wrote:Часто ли вам в работе приходится применять 1) множественное наследование или 2)перегружать оператор неш? Или, например, 3)реализовывать рекурсивные темплейты?
1 - постоянно.
2 - регулярно.
3 - не понял, что подразумевается под рекурсивностью в данном контексте, но использовать темплейты на иерархии классов приходится регулярно.
+1

Делал ето регулярно и достаточно давно, уже 15 лет назад, когда работал в етой области
OtherSide
Уже с Приветом
Posts: 15760
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Boriskin wrote:
OtherSide wrote:Часто ли вам в работе приходится применять 1) множественное наследование или 2)перегружать оператор new? Или, например, 3)реализовывать рекурсивные темплейты?
1 - постоянно.
2 - регулярно.
3 - не понял, что подразумевается под рекурсивностью в данном контексте, но использовать темплейты на иерархии классов приходится регулярно.
1 - и что же это за работа, в которой проектирование дерева классов никак не обходится без множественного наследования?
2 - единственную необходимость, которую могу представить - очень частое добавление/удаление мелких объектов, что бы оптимизировать скорость написать свой аллокатор, но что бы заниматься этим каждый день, и помнить синтаксис перегрузки оператора на память - такого я представить не могу.
3 - И что же это за богадельня, в которой работают юродивые, которые не знают такой элементарной вещи, как рекурсивные темплейты? Обычно люди их используют ежедневно, это же Азы! :mrgreen:
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

valeriypi wrote:
Boriskin wrote:
OtherSide wrote:Часто ли вам в работе приходится применять 1) множественное наследование или 2)перегружать оператор неш? Или, например, 3)реализовывать рекурсивные темплейты?
1 - постоянно.
2 - регулярно.
3 - не понял, что подразумевается под рекурсивностью в данном контексте, но использовать темплейты на иерархии классов приходится регулярно.
+1

Делал ето регулярно и достаточно давно, уже 15 лет назад, когда работал в етой области
+1
особенно в server-side на плюсах
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Boriskin wrote:
OtherSide wrote:Часто ли вам в работе приходится применять 1) множественное наследование или 2)перегружать оператор new? Или, например, 3)реализовывать рекурсивные темплейты?
1 - постоянно.
2 - регулярно.
3 - не понял, что подразумевается под рекурсивностью в данном контексте, но использовать темплейты на иерархии классов приходится регулярно.
1 - и что же это за работа, в которой проектирование дерева классов никак не обходится без множественного наследования?
2 - единственную необходимость, которую могу представить - очень частое добавление/удаление мелких объектов, что бы оптимизировать скорость написать свой аллокатор, но что бы заниматься этим каждый день, и помнить синтаксис перегрузки оператора на память - такого я представить не могу.
3 - И что же это за богадельня, в которой работают юродивые, которые не знают такой элементарной вещи, как рекурсивные темплейты? Обычно люди их используют ежедневно, это же Азы! :mrgreen:
1 - самая обычная практика в C++, mixed классы как пример
2 - и это тоже
3 - азы, не азы, а сервер-сайд богат метапрограммированием и темлейтами не подедци, накладные расходы, мать их (virtual почти такое же ругательно как и goto :lol: )
User avatar
Kotena
Уже с Приветом
Posts: 2635
Joined: 07 Apr 2003 04:38
Location: Washington DC

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

Post by Kotena »

OtherSide wrote:Я так и говорил сначала, но когда завалил 5 собеседований подряд, понял что нужно что-то делать.
Прямо как у нас. Родственник точно про это говорил. Он на многом самоучка. тоже пишет, тоже выкладывает всфкие программки, но затык именно в прохождении интервью. Ему так и сказали на одном собеседовании (звали много, значит резюме правильное), парень ты умный, таикх любят, что могут найти и начать что то новое без фомрального образования, но теорию надо знать, почитай книжки, и приходи. поговорим еще раз. При чем вопросы были именно про названия каких то там функций.
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

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

Post by Boriskin »

OtherSide wrote: 1 - и что же это за работа, в которой проектирование дерева классов никак не обходится без множественного наследования?
кросплатформенный С++ с нутрями и UI-ем.
2 - единственную необходимость, которую могу представить - очень частое добавление/удаление мелких объектов, что бы оптимизировать скорость написать свой аллокатор, но что бы заниматься этим каждый день, и помнить синтаксис перегрузки оператора на память - такого я представить не могу.
Прога забирает себе на стартапе большой кусок памяти и работает с ним сама после этого.
3 - И что же это за богадельня, в которой работают юродивые, которые не знают такой элементарной вещи, как рекурсивные темплейты? Обычно люди их используют ежедневно, это же Азы! :mrgreen:
Камрад, если ты про рекурсивность алгоритмическую - то это одно дело, а если ты о вложенности параметров (в чем лично я сильно сомневаюсь), то это дело другое. Будь ласка, растолкуй свою речуху, а то митьки не знают, направА им аль налевА.
Тупизна как Энтропия. Неумолимо растет.
OtherSide
Уже с Приветом
Posts: 15760
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Alexandr wrote: 1 - самая обычная практика в C++, mixed классы как пример
2 - и это тоже
3 - азы, не азы, а сервер-сайд богат метапрограммированием и темлейтами не подедци, накладные расходы, мать их (virtual почти такое же ругательно как и goto :lol: )
Я прекрасно помню, что new и delete можно перегрузить, но синтаксис, как это сделать мне нафиг не нужно знать, а спрашивают именно это. Более того, я скорее всего, будь у меня такая задача не стал бы изобретать велосипед, а поискал готовые решения с нужной мне стратегией аллоцирования.
Насчет темплейтов - я так понял, что вы рекурсивно на стадии компиляции каждый день факториал через темплейты считаете? И може с ходу написать на бумажке код?
Да в общем-то и не в этом проблема. Я выделил неделю, и основательно перелопатил Старуструпа, Александреску и STL справочник. Думаю, 3-4 дня еще хватит, что бы вспомнить базовые вопросы DCOM и ATL. Но возникает именно глобальная стратегическая проблема:

a) Опыт работы и опыт собеседования почти никак не пересекаются. То, что требуют на собеседовании часто использовать в реальной практике - дурной тон.
б) Более того, опыт работы в программировании практически не нужен. После 3-4 лет никакого роста не получается. Технологии со временем ложатся мертвым грузом. Можно каждый день писать рекурсивные темплейты и множественное наследование, а на следующем месте это будет безразлично, т.к. будет требоваться WPF/C#.
OtherSide
Уже с Приветом
Posts: 15760
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Boriskin wrote: Камрад, если ты про рекурсивность алгоритмическую - то это одно дело, а если ты о вложенности параметров (в чем лично я сильно сомневаюсь), то это дело другое. Будь ласка, растолкуй свою речуху, а то митьки не знают, направА им аль налевА.
Нужно написать код, который с помощью темплейтов рассчитает факториал на стадии компиляции. Сможете с ходу, не подглядывая в гугль или справочник?
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Boriskin wrote: Камрад, если ты про рекурсивность алгоритмическую - то это одно дело, а если ты о вложенности параметров (в чем лично я сильно сомневаюсь), то это дело другое. Будь ласка, растолкуй свою речуху, а то митьки не знают, направА им аль налевА.
Нужно написать код, который с помощью темплейтов рассчитает факториал на стадии компиляции. Сможете с ходу, не подглядывая в гугль или справочник?
легко, все это спроится на одном просто принципе (рекурсия = template, условие выход = специализация темплейта с условием прекращения, часто это специализация когда параметр равен 0 (или 1))
а с boost:mpl ешо проще :)
OtherSide
Уже с Приветом
Posts: 15760
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Alexandr wrote: легко, все это спроится на одном просто принципе (рекурсия = template, условие выход = специализация темплейта с условием прекращения, часто это специализация когда параметр равен 0 (или 1))
а с boost:mpl ешо проще :)
Ну идея-то понятна, вы код напишите (сразу, не подглядывая)
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: 1 - самая обычная практика в C++, mixed классы как пример
2 - и это тоже
3 - азы, не азы, а сервер-сайд богат метапрограммированием и темлейтами не подедци, накладные расходы, мать их (virtual почти такое же ругательно как и goto :lol: )
Я прекрасно помню, что new и delete можно перегрузить, но синтаксис, как это сделать мне нафиг не нужно знать, а спрашивают именно это. Более того, я скорее всего, будь у меня такая задача не стал бы изобретать велосипед, а поискал готовые решения с нужной мне стратегией аллоцирования.
Насчет темплейтов - я так понял, что вы рекурсивно на стадии компиляции каждый день факториал через темплейты считаете? И може с ходу написать на бумажке код?
Да в общем-то и не в этом проблема. Я выделил неделю, и основательно перелопатил Старуструпа, Александреску и STL справочник. Думаю, 3-4 дня еще хватит, что бы вспомнить базовые вопросы DCOM и ATL. Но возникает именно глобальная стратегическая проблема:

a) Опыт работы и опыт собеседования почти никак не пересекаются. То, что требуют на собеседовании часто использовать в реальной практике - дурной тон.
б) Более того, опыт работы в программировании практически не нужен. После 3-4 лет никакого роста не получается. Технологии со временем ложатся мертвым грузом. Можно каждый день писать рекурсивные темплейты и множественное наследование, а на следующем месте это будет безразлично, т.к. будет требоваться WPF/C#.
я вот никак с выделенным не согласен

простая аналогия:
знаете почему вы не забываете, что означает байт?
потому что очень часто применяете и многие понятия базируются на нем - тоже саоме и с остальным что спрашивают на собеседовании - если вы этим часто пользуетесь, то ответите без проблем, а если один раз и то заглянув в справочник - увы
OtherSide
Уже с Приветом
Posts: 15760
Joined: 01 Mar 2008 15:14

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

Post by OtherSide »

Alexandr wrote: я вот никак с выделенным не согласен

простая аналогия:
знаете почему вы не забываете, что означает байт?
потому что очень часто применяете и многие понятия базируются на нем - тоже саоме и с остальным что спрашивают на собеседовании - если вы этим часто пользуетесь, то ответите без проблем, а если один раз и то заглянув в справочник - увы
В том и дело, что пользоваться всем часто не удается. Например, полгода назад была халтурка под j2me. Сделал - и забыл. Сейчас спрашивают, есть ли опыт работы с JAVA. Ну вроде как есть. Но за годы, подобная работа делается уже автоматически, не помнишь какой класс отвечает за канву, какой за спрайты, как делается ввод к клавиатуры уже через 2 недели. Со временем мыслишь уже более абстрактными понятиями, берется шаблон, часто делается все через copy-paste. В реальной практике все так и происходит. Дали 2000$ и пару недель - надо быстро сделать работающую игрушку, время и желания читать JAVA INSIDE нет.
Можно, конечно, выбрать какую то область и стать в ней Гуру. Например, благодаря последней работе я знаю все о графических форматах. Но сильно ли мне эти знания помогут найти следующую работу? Есть, конечно, "вечные" темы, вроде C++, но сейчас этого как-то мало, а additional знания требуются везде разные.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

OtherSide wrote:
Alexandr wrote: я вот никак с выделенным не согласен

простая аналогия:
знаете почему вы не забываете, что означает байт?
потому что очень часто применяете и многие понятия базируются на нем - тоже саоме и с остальным что спрашивают на собеседовании - если вы этим часто пользуетесь, то ответите без проблем, а если один раз и то заглянув в справочник - увы
В том и дело, что пользоваться всем часто не удается. Например, полгода назад была халтурка под j2me. Сделал - и забыл. Сейчас спрашивают, есть ли опыт работы с JAVA. Ну вроде как есть. Но за годы, подобная работа делается уже автоматически, не помнишь какой класс отвечает за канву, какой за спрайты, как делается ввод к клавиатуры уже через 2 недели. Со временем мыслишь уже более абстрактными понятиями, берется шаблон, часто делается все через copy-paste. В реальной практике все так и происходит. Дали 2000$ и пару недель - надо быстро сделать работающую игрушку, время и желания читать JAVA INSIDE нет.
Можно, конечно, выбрать какую то область и стать в ней Гуру. Например, благодаря последней работе я знаю все о графических форматах. Но сильно ли мне эти знания помогут найти следующую работу? Есть, конечно, "вечные" темы, вроде C++, но сейчас этого как-то мало, а additional знания требуются везде разные.
понимаете, с таким подходом вы устроитесь только на должность лабателя
если не получается охватить многое, то надо взять что-то одно
я уже говорил - время непрофессионалов прошло
nightmare2
Уже с Приветом
Posts: 7187
Joined: 31 Jan 2005 15:06
Location: GA

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

Post by nightmare2 »

[quote="OtherSide]...Опыт работы и опыт собеседования почти никак не пересекаются. То, что требуют на собеседовании часто использовать в реальной практике - дурной тон...[/quote]
Даже если это и так, что мы тут можем сделать? :-)
Если нам нужна работа, мы вынужденны уважать процесс.
Типа побриться, помыться, причесаться, (может даже и пинджак с удавкой надеть), изобразить улыбочку и навероятную заинтересованность, а также повторить основы ремесла.
И главное, надо понимать, что интервие - это немного лоторея.
Программисты народ, мягко говоря, не очень дружелюбный, особенно рускоязычные, особенно молодые, особенно C/C++ ники.
Мне их взаимоотношения слегка напоминают армейскую "дедовщину". :twisted:
Бывает, что не везет, но на это не нужно обращать внимания.
Мне кажется, что вам повезло, что вас не взяли на те работы. :-)
Я как-то попал в такую команду, и теперь очень внимательно смотрю с кем мне придется работать.
Vaiyo A-O, A Home Va Ya Ray, Vaiyo A-Rah, Jerhume Brunnen G!
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

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

Post by Boriskin »

OtherSide wrote: Ну идея-то понятна, вы код напишите (сразу, не подглядывая)
Чтото типа такого

Code: Select all

template<int i> class F
{
public:
int res = i * F<res-1>.res;
};

template<> class F<1>
{
public:
int res = 1;
};
ЗЫ Потом посмотрел на решение в нете, немного иначе, но идея та же...
Тупизна как Энтропия. Неумолимо растет.
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

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

Post by Alexandr »

2 Boriskin
все так, только int res = i * F<res-1>.res; не может существовать на этапе компиляции, а вот определение enumа может

в целом все метапрограммирование ужо есть в boost:mpl
User avatar
Boriskin
Уже с Приветом
Posts: 18862
Joined: 30 Aug 2001 09:01
Location: 3rd planet

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

Post by Boriskin »

Alexandr wrote:2 Boriskin
все так, только int res = i * F<res-1>.res; не может существовать на этапе компиляции, а вот определение enumа может
Попробовал, там надо добавить static const, тогда все пучком.
Тупизна как Энтропия. Неумолимо растет.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

template recursion имеет место быть, но это действительно больше относится к экзотике, чем к "основам". Это вопрос, до которого можно самому или с помощью собеседуюдего допетрить своей головой. Надо просто лучше понимать механику мета программирования и шаблонов. Если человек в резюме пишет "expert C++" или N-цать лет C++, то я обычно спрашиваю написать ref counting pointer. Чудес не ожидаю, и это относительно простой вопрос, который может навести на дальнейшие разговоры про шаблоны, механизмы имплементации ref counter'ов и.т.п.
User avatar
Medium-rare
Уже с Приветом
Posts: 9194
Joined: 04 Mar 2011 03:04
Location: SFBA

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

Post by Medium-rare »

В разумных интервью по subj C++ преобладают вопросы разумного им пользования. :-) Нет, топик-стартер, не имел в виду, что совсем нет тех вопросов, что вам не нравятся. :-)

Как-то, используется boost направо и налево. Как при использовании смарт-пойнтеров избежать циклической зависимости, при котором ожидаемый положительный эффект от некоторого умного пойнтера превращается во вред? Решения попроще, решения получше...

Как избежать dead locks в многопочтном коде? Ну... приблизительно, паттерн, может какой, technique... Навряд ли у кого есть однозначно исчерпывающий ответ, а вот тему поразвивать, поговорить...

И вроде таких вопросы - признак разумной конторы.
... and even then it's rare that you'll be going there...
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

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

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

Post by Medium-rare »

dotcom wrote:Меня больше удивляет, когда опытного программиста очередной раз просят написать strstr.
Которые говорят, что они опытные, тех никак не меньше, чем искомых.
... and even then it's rare that you'll be going there...
User avatar
Bonny P.
Уже с Приветом
Posts: 19001
Joined: 22 Nov 2005 23:20

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

Post by Bonny P. »

Alexandr wrote:понимаете, с таким подходом вы устроитесь только на должность лабателя
если не получается охватить многое, то надо взять что-то одно
я уже говорил - время непрофессионалов прошло
Не знаю, что за непрофессионалы и какое у них было время, но интервьюер, сидящий на своей кочке и уверенный в том, что все слезли с точно таких же, мягко говоря, не прав.
Лабатель свиных хрящиков совершенно не обязан одновременно быть лабателем арбузов.
Паяльник
Уже с Приветом
Posts: 3811
Joined: 01 Aug 2010 22:25

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

Post by Паяльник »

Ну, интервью на C++/COM я не проходил уже много лет (последний раз я видел С++ и СОМ в действии ровно 10 лет назад - с тех пор только .NET.) Думаю, что сейчас на вопросы про умные указатели или как перегрузить оператор delete я бы уже не мог ответить, хотя когда-то щёлкал такие вопросы как орешки.

В моём резюме я всё равно упоминаю С++, т.к. та работа, где я творил на С++, по-прежнему фигурирует в моём резюме. Но моя теперешняя специализация (которая у меня уже более 5 лет) с С++ имеет мало общего.
А может быть, разбить окно и окунуться в мир иной,
Где, солнечный рисуя свет, живет художник и поэт?

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