Interesting C/C++ interview questions

User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Post by roadman »

muzhik wrote:Вообще, это классный метод в споре. "У вас работа неправильно поставлена, и опыта недостаточно!" :)

Да я собственно и не спорю, просто привожу примеры из своего жизненного опыта и не более.
Если в компании бардак и Вы это не разглядели на интервью, а придя на работу пытаетесь что-то изменить к лучшему, а Вас посылают подальше...
Ну что ж и такое бывало в моей практике, тогда я просто уходил из таких компаний довольно быстро, чтобы напрасно не тратить время на всякую бессмысленную работу.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
muzhik
Уже с Приветом
Posts: 629
Joined: 09 Jan 1999 10:01
Location: Израиль -> Redmond, WA -> Израиль... -> ?

Post by muzhik »

roadman wrote:
muzhik wrote:Вообще, это классный метод в споре. "У вас работа неправильно поставлена, и опыта недостаточно!" :)

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


1) Бардак есть хотя бы временами в любой большой корпорации. :) А в маленькой фирме - очень зависит от конкретных людей, етц.

2) Вы опять ссылаетесь на модель идеального программистского общества. :) "Они vdtor-ы используют не так, как я, г...но фирма - валить надо!"

3) Опыт у всех РАЗНЫЙ.

4) Правильно ли я понял, что Вы просто предлагаете не наниматься на работу, если на интервью показалось, что интервьюер ждёт ответа, с которым Вы не согласны? :)
Дык,
Мужик
ig
Уже с Приветом
Posts: 491
Joined: 09 Apr 2000 09:01
Location: Tigard, OR

Post by ig »

Just for fun: <a href="http://www.apocalypse.org/pub/u/kjc/cool/Card.on.Software.html" target="_new"> How Software Companies Die</a>
User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Post by roadman »

muzhik wrote:
roadman wrote:
muzhik wrote:Вообще, это классный метод в споре. "У вас работа неправильно поставлена, и опыта недостаточно!" :)

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


1) Бардак есть хотя бы временами в любой большой корпорации. :) А в маленькой фирме - очень зависит от конкретных людей, етц.

2) Вы опять ссылаетесь на модель идеального программистского общества. :) "Они vdtor-ы используют не так, как я, г...но фирма - валить надо!"

3) Опыт у всех РАЗНЫЙ.

4) Правильно ли я понял, что Вы просто предлагаете не наниматься на работу, если на интервью показалось, что интервьюер ждёт ответа, с которым Вы не согласны? :)


1. Временами да, это жизнь, вот и надо бардак исправлять или хотя бы не добавлять нового.
2. Вы считаете, что я работал и работаю в каких-то выдуманных, идеальных компаниях?
3. На то и форум, чтобы делиться опытом.
4. Ну не так прямолинейно. Если Вы видите, что тот, кто Вас интервьирует ждет ответа, который по Вашему не верен, постарайтесь ему аргументированно изложить свою, точку зрения. Недавно, мы с приятелем, за рюмкой чая, делились впечатлениями от интервью в Google и он привёл пример, когда на его ответ, ему было сказано: Вы ответили не правильно. А он спокойно с фломастеров в руках объяснил, что это не так. И это произвело куда более положительный эффект, чем просто "сдача" позиции.

Я писал о другом, на интервью Вам предоставят возможность побольше узнать о компании, не теряйте эту возможность. Я Вас уверяю, что ряд, даже самых безобидных вопросов поможет Вам понять, что это за компания и стоит ли туда идти.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
User avatar
A. Fig Lee
Уже с Приветом
Posts: 12072
Joined: 17 Nov 2002 03:41
Location: английская колония

Post by A. Fig Lee »

roadman, почему Вы щитаете, что именно та модель что Вы описали есть правильная, и что все должны работать именно так?
Может, просто каждый будет иметь свой кусок проекта - в смысле сначала до конца?
IMHO, не надо вносить новых порядков в компанию, если она работает, просто адаптироватся и все.
Верить нельзя никому - даже себе. Мне - можно!
User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Post by roadman »

A. Fig Lee wrote:roadman, почему Вы щитаете, что именно та модель что Вы описали есть правильная, и что все должны работать именно так?
Может, просто каждый будет иметь свой кусок проекта - в смысле сначала до конца?
IMHO, не надо вносить новых порядков в компанию, если она работает, просто адаптироватся и все.

Надо быть больным на голову, чтобы советовать то, что считаешь неправильным. Однако я не считаю, что моя точка зрения единственная и непогрешимая. Не вешая ярлыков "правильная-неправильная" просто излагаю свой опыт, не теоретическую точку зрения, а опыт. У кого-то он может быть другим - ну и точка зрения другая, при чем тут правильный - неправильный?
Ну если можете адаптироваться, то почему и нет. Значит для Вас это и есть правильное решение.
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
muzhik
Уже с Приветом
Posts: 629
Joined: 09 Jan 1999 10:01
Location: Израиль -> Redmond, WA -> Израиль... -> ?

Post by muzhik »

roadman wrote:1. Временами да, это жизнь, вот и надо бардак исправлять или хотя бы не добавлять нового.
2. Вы считаете, что я работал и работаю в каких-то выдуманных, идеальных компаниях?
3. На то и форум, чтобы делиться опытом.
4. Ну не так прямолинейно. Если Вы видите, что тот, кто Вас интервьирует ждет ответа, который по Вашему не верен, постарайтесь ему аргументированно изложить свою, точку зрения. Недавно, мы с приятелем, за рюмкой чая, делились впечатлениями от интервью в Google и он привёл пример, когда на его ответ, ему было сказано: Вы ответили не правильно. А он спокойно с фломастеров в руках объяснил, что это не так. И это произвело куда более положительный эффект, чем просто "сдача" позиции.


2. По Вашим словам - так и получается. Ну, либо "быстро уходите" из тех, где Вам не нравится. :)

3. Угу. А из того, что у кого-то опыт/информация со стороны не совсем совпадает с Вашей, не следует, что они - идиоты, некомпетентные, етц - верно? :)

4. Угу. Обычно видно, кому ты можешь доказать, а кому - нет...

Ну, вроде "пришли к консензусу"... :)

Я писал о другом, на интервью Вам предоставят возможность побольше узнать о компании, не теряйте эту возможность. Я Вас уверяю, что ряд, даже самых безобидных вопросов поможет Вам понять, что это за компания и стоит ли туда идти.


Тут такое дело... В больших фирмах организация проекта оставлена на уровень group/team lead'ов. Интервью в этом смысле мало чем может помочь.
СознАюсь - я в маленькие фирмы давно уже не заглядывал.
Дык,
Мужик
User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Post by roadman »

muzhik wrote:2. По Вашим словам - так и получается. Ну, либо "быстро уходите" из тех, где Вам не нравится. :)

А в чем проблема уйти из компании, где Вам тошнит работать? И работать там, где нравиться?
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
muzhik
Уже с Приветом
Posts: 629
Joined: 09 Jan 1999 10:01
Location: Израиль -> Redmond, WA -> Израиль... -> ?

Post by muzhik »

Да как вам сказать... Может в Силиконовке и было принято в лучшие времена менять работу каждые пару месяцев, но мне почему-то казалось, что к месту работы надо относиться тщательнЕе, и "прыжки" могут изрядно подпортить резюме.

Есть ещё масса других факторов. Например, размер компании ~= стабильность. Если молодой-холостой, то это не критерий; а с детьми - это да критерий. Кому-то важна не очень долгая дорога до работы, кому-то в конкретном месте предложили намного больше, чем в другом, етц, етц...

Как было бы просто, если бы мы работали "за удовольствие"... :)

Честное слово, Вы действительно будто в идеальном мире живёте...
Дык,
Мужик
muzhik
Уже с Приветом
Posts: 629
Joined: 09 Jan 1999 10:01
Location: Израиль -> Redmond, WA -> Израиль... -> ?

Post by muzhik »

Опять-таки, не все такие претензиозные как Вы или такие переборчивые как я :) Есть люди, которые впервые ищут работу; есть люди, которым нужно срочно поменять работодателя, етц, етц...

Да, самое главное - H1B. С H1B, если по к-л причине приходится менять работу - тем более не сильно и поперебираешь. Время оформления ГК в конце концов ограничено. Почитайте, какие проблемы бывают у людей.

Вывод: в идеальном мире - мы будем выбирать, где ставить vdtor, рассматривая каждый случай особо. :) В мире реальном - примем рекомендацию Строструпа. :pain1: Для массивных ОО проектов это означает: vdtor - default. :pain1: И для интервью в такие проекты - тоже.

Хотя, повторяю, самое правильно, ИМХО - расписать интервьюеру полную картину.
Дык,
Мужик
muzhik
Уже с Приветом
Posts: 629
Joined: 09 Jan 1999 10:01
Location: Израиль -> Redmond, WA -> Израиль... -> ?

Post by muzhik »

Блин, кажется я попался...

Мне тут объясняли, что в программировании с темплейтами vdtor не нужен, а я имел глупость согласиться.

Так вот - я снова не согласен. :) Все аргументы, применимые для обычного ООП, годятся и для generic. Наследование и темплейты - это совершенно ортогональные вещи с точки зрения реализации (даже если полиморфизм и genericity позволяют решать сходные задачи); и от контейнера-темплейта можно унаследовать сына... потом скастить поинтер на класс-папу, и попробовать уничтожить...

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

ИМХО - лучше пусть там будет vdtor - разве только если критически нужно сэкономить эти самые 4 байта на обьект...

Хотя, может народ приведёт ещё примеры, к-ые мы до сих пор не обсудили....
Дык,
Мужик
User avatar
roadman
Уже с Приветом
Posts: 707
Joined: 12 Mar 2003 22:29
Location: Moscow->Bay Area, CA

Post by roadman »

muzhik wrote:Опять-таки, не все такие претензиозные как Вы или такие переборчивые как я :) Есть люди, которые впервые ищут работу; есть люди, которым нужно срочно поменять работодателя, етц, етц...

Да, самое главное - H1B. С H1B, если по к-л причине приходится менять работу - тем более не сильно и поперебираешь. Время оформления ГК в конце концов ограничено. Почитайте, какие проблемы бывают у людей.

Зачем читать, если я сам через это (H1-B) прошёл и до GC ещё не дошёл.
Вы знаете, когда человек "прогибается" он всегда найдет 100 причин объяснить, почему он так поступил - это нормальная реакция человеческой психики. Ни в коем случае не осуждаю таких людей. Но не надо выдавать это как рекомендации поступать всем другим и тем более упрекать тех, кто находит в себе силы "не гнуться" - это я опять безотносительно личностей.
У меня была возможность уйти из бодишопа через 6 месяцев на постоянную работу, но я этого не сделал, потому что понимал - попаду в сильную зависимость от компании где мне не очень нравилось работать. А когда Вы на контракте (который найти по стравнению с постоянной работой в 10 раз труднее) то в некотором смысле Вы более свободный человек.
Честно говоря мы уже отошли от первоначальной темы и это скорее топик в раздел "Жизнь".
The philosophy of one century is the common sense of the next. --Henry Ward Beecher
tchicago
Уже с Приветом
Posts: 1009
Joined: 16 Sep 2001 09:01
Location: USA

Post by tchicago »

roadman wrote:Достоинства и недостатки двух методов обработки exception

Code: Select all

class exep
{
public:
   exep(int err) : _error(err) {}
   int get_code() const { return _error; }
private:
   int _error;
};

int main()
{
   try
   {
      throw new exep(1);
   }
   catch (exep* x)
   {
      cout << x->get_code();
      delete x;
   }

   try
   {
      exep x(1);
      throw x;
   }
   catch (exep& x)
   {
      cout << x.get_code();
   }



А почему этот вопрос никто не удостоил вниманием? Все слишком просто или слишком сложно? :mrgreen:
User avatar
шпиён
Уже с Приветом
Posts: 3459
Joined: 29 Oct 2002 20:08
Location: US

Post by шпиён »

muzhik wrote:
Quater wrote:Вопросы С++ вызывают дискуссии на 7 страниц, чего это вы, язык то мертвый... гы :mrgreen:


Это Ц-острый - мертворождённый. Чтобы он стал по-настоящему массовым, надо чтобы весь мир перешёл на .Net, или чтобы появились альтернативные платформы Ц-острого, или ..., или .......

Все "или" упираются в одно: Мелкомягк не захочет выпускать Ц-острый из-под своего контроля, не даст его стандартизировать каким-то "комиссиям",
...

В общем, типичная ситуация: люди в MS толковые, постарались, а политика фирмы - ... :(

Всё это IMHO, конечно.


Ваше HO противоречит фактам. В отличие от сана, МС-таки что нужно стандартизовал:
http://msdn.microsoft.com/net/ecma/
ECMA and ISO/IEC C# and Common Language Infrastructure Standards
In August, 2000, Microsoft, Hewlett-Packard and Intel co-sponsored the submission of specifications for the Common Language Infrastructure (CLI) and C# programming language to the international standardization organization ECMA. As a result, ECMA formed two task groups (TG3 and TG2, respectively) within TC39, its technical committee responsible for programming languages and application development.

During the next year, the co-sponsor companies, in conjunction with other ECMA members and guests (including IBM, Fujitsu Software, Plum Hall, Monash University and ISE), refined these specifications into standards. In December, 2001, the ECMA General Assembly ratified the 1st edition of the C# and CLI standards as ECMA-334 and ECMA-335, respectively.
...
In April, 2003, ISO ratified the standards as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR).
User avatar
шпиён
Уже с Приветом
Posts: 3459
Joined: 29 Oct 2002 20:08
Location: US

Post by шпиён »

tchicago wrote:
roadman wrote:Достоинства и недостатки двух методов обработки exception

Code: Select all

class exep
{
public:
   exep(int err) : _error(err) {}
   int get_code() const { return _error; }
private:
   int _error;
};

int main()
{
   try
   {
      throw new exep(1);
   }
   catch (exep* x)
   {
      cout << x->get_code();
      delete x;
   }

   try
   {
      exep x(1);
      throw x;
   }
   catch (exep& x)
   {
      cout << x.get_code();
   }



А почему этот вопрос никто не удостоил вниманием? Все слишком просто или слишком сложно? :mrgreen:


С первого взгляда кажется просто.
1) Лишняя аллокация/деаллокация памяти. Да еще и лик может быть, если из catch своё исключение бросится до delete.
2) Лишнее копи-конструирование, что для приведенного в примере exep не хуже копирования указателя в случае 1, но для больших/сложных классов может быть дорого.
На мой взгляд, метод 2 однозначно лучше, т.к. за расчет на высокую скорость обработки исключений надо anyway бить лопатой по голове.

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