Re[12]: Вопросы для интеврью
От: Аноним  
Дата: 27.07.06 09:50
Оценка:
Здравствуйте, mr_jek, Вы писали:

_>Здравствуйте, Vanger84, Вы писали:


V>>опять же меня сильно выбивает из клеи когда мне дают на собеседовании задание а я сним не справляюсь (может это моя проблема), но я точно знаю что сидел бы я за компом с кружкой кофе яб решил эту проблему.....


_>Но с другой стороны допустим ты справился со всеми заданиями с блеском, выходишь и

_>думаешь: "Черт возьми, меня точно возьмут, как я их...". И через две недели приходит письмо
_>с отказом или вообще ничего не приходит.

не понел к чему это ты, хм.. если я справился с блеском то почему меня не взяли на работу?!... и вообще как бы солидные компании должны! просто обязаны отвечать как можно скорее иначе они рискую либо потерять работника либо уважение! некоторые солидные компания предоставляют отчет собеседования что им не понравилось и если было тестовое задание то еще и сделают коменты к строчкам кода

так что берите пример!
Re[3]: Вопросы для интеврью
От: Аноним  
Дата: 27.07.06 09:52
Оценка:
нельзя так как он не отвчает требованием выдвинутым к контейнеру vector так что незя, подробнее можеш прочитать в книжке Маерса STL эфективное использование у него прям глава такая есть помоему
Re[2]: Вопросы для интеврью
От: Аноним  
Дата: 27.07.06 09:56
Оценка:
Здравствуйте, mukos, Вы писали:

M>Здравствуйте, Аноним, Вы писали:


А>>Завтра впервые в жизни буду проводить интвервью кандидатов на позицию С++ девелоперов. Понятния не имею, что спрашивать..


M>А мне больше всего понравился вопрос типа-

M>Вот у нас есть два проекта — один написание некоего протокола для работы по СОМ порту с некоим девайсом
M>второй — поддержка виртуального казино на Тайване.... Чем хотите заняться?

M>Что я тогда ответил не скажу (давно это было) ... Но только несколько позже понял подводный смыс этого вопроса...

M>Думаю с помощью наводящих вопросов можно выснить гораздо больше информации.

А>>Подскажите пожалуйста пять, шесть вопросов, которые бы дали понять, что человек понимает в С++. Не хочу задавать какие то каверзные вопросы из области фантастики (я честно говоря и сам не отвечу на такие). Просто хочу знать и видеть как человек видит вопрос и может найти решение.


А>>Спасибо заранее


я бы ответил что и тем и тем интересно.... задав попутно много вопросов в чем будет заключатся работа...

а где подводные камни и почему именно в Тайване?? типо язык надо знать или че...
Re[12]: Вопросы для интеврью
От: Vanger84  
Дата: 27.07.06 10:11
Оценка:
Здравствуйте, creatman, Вы писали:

C>Здравствуйте, Vanger84, Вы писали:


V>>Здравствуйте, creatman, Вы писали:


C>>>Здравствуйте, Vanger84, Вы писали:


V>>>>хм... я согласен минимум на 1300$ на исп срок, в Мск... но я и не позиционирую себя на junior


C>>>Если ты позиционируешь себя выше чем junior и просишь соответствующую ЗП, то и требования к тебе будут выше. И вопросы на собеседование будут не про то умеешь ли ты читать или нет, а скорее на знание тонкостей языка. Потому как задавая общие вопросы трудно отделить действительно специалиста от начинающего программиста.



V>>интересно какие вы тонкости языка используете в проекте?!...


C>например в упрощенном виде


C>
C>void f() throw()
C>{
C>  throw 1;
C>}
C>


C>Если человек не знает, что под собой подразумевает запись throw() то он просто не понимает что он пишет или что у него в проекте написано.


а дай пожалуйсто ответ на этот вопрос...
Re[13]: Вопросы для интеврью
От: creatman Германия  
Дата: 27.07.06 10:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, mr_jek, Вы писали:


_>>Здравствуйте, Vanger84, Вы писали:


V>>>опять же меня сильно выбивает из клеи когда мне дают на собеседовании задание а я сним не справляюсь (может это моя проблема), но я точно знаю что сидел бы я за компом с кружкой кофе яб решил эту проблему.....


_>>Но с другой стороны допустим ты справился со всеми заданиями с блеском, выходишь и

_>>думаешь: "Черт возьми, меня точно возьмут, как я их...". И через две недели приходит письмо
_>>с отказом или вообще ничего не приходит.

А>не понел к чему это ты, хм.. если я справился с блеском то почему меня не взяли на работу?!...


Например потому, что на данную позицию ищут 1 человека, а людей блестяще решивших все задачи 10.

А>и вообще как бы солидные компании должны! просто обязаны отвечать как можно скорее иначе они рискую либо потерять работника либо уважение!


Обычно как раз наоборот. Большие компании могут себе позволить упустить работника, далеко ходить не надо, можно посмотреть на Microsoft, Google.

А вот с небольшими компаниями совсем другое дело. Тем хочется именно найти человека, а не винтик. Если в компании всего 5 человек, то их естественно больше волнует кто будет 6-ым, а тех кого и так 1000 гораздо меньше волнует кто будет 1001-м.


А>некоторые солидные компания предоставляют отчет собеседования что им не понравилось и если было тестовое задание то еще и сделают коменты к строчкам кода


Эх, вот бы все так. Но боюсь у компаний нет времени, чтобы отвечать так подробно кандидату непрошедшему собеседование и соответственно выпавшему из поля зрения компании.


Re[3]: Вопросы для интеврью
От: mukos СССР  
Дата: 27.07.06 10:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, mukos, Вы писали:


M>>Здравствуйте, Аноним, Вы писали:


А>>>Завтра впервые в жизни буду проводить интвервью кандидатов на позицию С++ девелоперов. Понятния не имею, что спрашивать..


M>>А мне больше всего понравился вопрос типа-

M>>Вот у нас есть два проекта — один написание некоего протокола для работы по СОМ порту с некоим девайсом
M>>второй — поддержка виртуального казино на Тайване.... Чем хотите заняться?

M>>Что я тогда ответил не скажу (давно это было) ... Но только несколько позже понял подводный смыс этого вопроса...

M>>Думаю с помощью наводящих вопросов можно выснить гораздо больше информации.

А>>>Подскажите пожалуйста пять, шесть вопросов, которые бы дали понять, что человек понимает в С++. Не хочу задавать какие то каверзные вопросы из области фантастики (я честно говоря и сам не отвечу на такие). Просто хочу знать и видеть как человек видит вопрос и может найти решение.


А>>>Спасибо заранее




А>а где подводные камни и почему именно в Тайване?? типо язык надо знать или че...


Ну по моему мнению — человек пытаясь получить работу береться за то в чем уверен-
т.е. написать какойто протокол для сом порта уже конкретная вещь и имеешь представление
о том как его реализовать, или хотябы напрвлении (если он конечно практикующий программист).
А какаято там неконкретная поддержка какогото там абстрактного казино вроде как абстракция,
и если человек не может работать с конкретикой он стремиться к абстракции (т.е. типа как нибудь вывернусь).

А>я бы ответил что и тем и тем интересно.... задав попутно много вопросов в чем будет заключатся работа...


И вот как раз по этим вопросам можно многое и прояснить
Человек сам будет Вас наводить на вопросы которые ему можно (нужно ) задать.
А если человек не спрашивает , значит он ничего не знает —
ибо чтобы правильно задать вопрос надо знать 2/3 ответа

Не уверен что все доступно объяснил , но надеюсь что основная идея ясна.
Re[3]: Вопросы для интеврью
От: Jonathan  
Дата: 27.07.06 10:38
Оценка:
Здравствуйте, Vanger84, Вы писали:

V>Здравствуйте, creatman, Вы писали:


C>>Здравствуйте, Аноним, Вы писали:


А>>>Завтра впервые в жизни буду проводить интвервью кандидатов на позицию С++ девелоперов. Понятния не имею, что спрашивать..


А>>>Подскажите пожалуйста пять, шесть вопросов, которые бы дали понять, что человек понимает в С++. Не хочу задавать какие то каверзные вопросы из области фантастики (я честно говоря и сам не отвечу на такие). Просто хочу знать и видеть как человек видит вопрос и может найти решение.


А>>>Спасибо заранее


C>>Еще один хороший и стандартный вопрос на понимание того как объект конструируется:


C>>"Напишите компелябельный код для вызова чистовиртуальной функции"


V>хы... даже я задумался писать код!


А вот и код:

class ABC
{
public:
virtual void func() = 0 { cout << "I'm Pure Virtual" << endl;};
};

class BCD : public ABC
{
public:
virtual void func() { cout << "I'm not Pure Virtual" << endl;};
void func2() {ABC::func();};
};

int main(int argc, char* argv[])
{
BCD b;
b.func2();
}
"If everything seems under control, you're just not going fast enough"
Re[4]: Вопросы для интеврью
От: Аноним  
Дата: 27.07.06 10:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А>нельзя так как он не отвчает требованием выдвинутым к контейнеру vector так что незя, подробнее можеш прочитать в книжке Маерса STL эфективное использование у него прям глава такая есть помоему


А это что?

/ CLASS vector_bool
template<class _Alloc>
    class vector<_Bool, _Alloc>
        : public _Container_base
    {    // varying size array of bits


Все пашет:

vector<bool> new_vector;
new_vector.push_back(true);
new_vector.push_back(false);
new_vector.push_back(true);
new_vector.push_back(false);
    
vector<bool>::size_type new_size=new_vector.size();


Каким правилам не отвечает vector<bool>?
Re[3]: Вопросы для интеврью
От: ekamaloff Великобритания  
Дата: 27.07.06 11:04
Оценка:
Здравствуйте, AndrewJD, Вы писали:

AJD>Здравствуйте, creatman, Вы писали:


C>>2) vector<bool> почему нельзя?

AJD>C какой это радости нельзя?

vector<bool> можно, но то ли для оптимизации размещения элементов, то ли еще для чего-то, в поставляемой STL должна быть предусмотрена специализация класса vector для элементов типа bool.

Вот несколько выдержек из стандарта:

23.2.4 Class template vector                                                                          [lib.vector]
1 A vector is a kind of sequence that supports random access iterators. In addition, it supports (amortized) constant time
insert and erase operations at the end; insert and erase in the middle take linear time. Storage management is handled
automatically, though hints can be given to improve efficiency. The elements of a vector are stored contiguously,
meaning that if v is a vector<T, Allocator> where T is some type other than bool, then it obeys the identity &v[n]
== &v[0] + n for all 0 <= n < v.size().


23.2.5 Class vector<bool>                                       [lib.vector.bool]
1 To optimize space allocation, a specialization of vector for bool elements is provided:

namespace std {
template < class Allocator > class vector <bool , Allocator > {
    // ...
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[13]: Вопросы для интеврью
От: srggal Украина  
Дата: 27.07.06 12:40
Оценка: +1
Здравствуйте, Vanger84, Вы писали:

V>а дай пожалуйсто ответ на этот вопрос...


См. стандарт 15.4

15.4/8
Whenever an exception is thrown and the search for a handler (15.3) encounters the outermost block of a
function with an exception-specification, the function unexpected() is called (15.5.2) if the exceptionspecification
does not allow the exception.[Example:
class X { };
class Y { };
class Z: public X { };
class W { };
void f() throw (X, Y)
{
int n = 0;
if (n) throw X(); // OK
if (n) throw Z(); // also OK
throw W(); // will call unexpected()
}
—end example]


15.4/9
The function unexpected() may throw an exception that will satisfy the exception-specification for
which it was invoked, and in this case the search for another handler will continue at the call of the function
with this exception-specification (see 15.5.2), or it may call terminate().

15.4/11
A function with no exception-specification allows all exceptions. A function with an empty exceptionspecification,
throw(), does not allow any exceptions.


Кроме этого есть

15.5.1 The terminate() function
...

15.5.2 The unexpected() function
...

которые тоже можно глянуть
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Вопросы для интеврью
От: srggal Украина  
Дата: 27.07.06 13:06
Оценка: +1 -1
Здравствуйте, Jonathan, Вы писали:


V>>хы... даже я задумался писать код!


J>А вот и код:


J>class ABC

J>{
J>public:
J> virtual void func() = 0 { cout << "I'm Pure Virtual" << endl;}; //ill-formed
J>};

J>class BCD : public ABC

J>{
J>public:
J> virtual void func() { cout << "I'm not Pure Virtual" << endl;};
J> void func2() {ABC::func();};
J>};

J>int main(int argc, char* argv[])

J>{
J> BCD b;
J> b.func2();
J>}

10.4/2

An abstract class is a class that can be used only as a base class of some other class; no objects of an
abstract class can be created except as sub-objects of a class derived from it. A class is abstract if it has at
least one pure virtual function. [Note: such a function might be inherited: see below. ] A virtual function is
specified pure by using a pure-specifier (9.2) in the function declaration in the class declaration. A pure
virtual function need be defined only if explicitly called with the qualified-id syntax (5.1). [Example:
class point { /* ... */ };
class shape { // abstract class
point center;
// ...
public:
point where() { return center; }
void move(point p) { center=p; draw(); }
virtual void rotate(int) = 0; // pure virtual
virtual void draw() = 0; // pure virtual
// ...
};
—end example] [b]Note: a function declaration cannot provide both a pure-specifier and a definition[/b]
—end note] [Example:
struct C {
virtual void f() = 0 { }; // ill-formed
};
—end example]

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Вопросы для интеврью
От: _DAle_ Беларусь  
Дата: 27.07.06 13:11
Оценка:
Здравствуйте, Аноним, Вы писали:

А>нельзя так как он не отвчает требованием выдвинутым к контейнеру vector так что незя, подробнее можеш прочитать в книжке Маерса STL эфективное использование у него прям глава такая есть помоему


Ну что значит нельзя. Можно, но с оглядкой на все отличия vector<bool> от vector<T>.
Re[5]: Вопросы для интеврью
От: Jonathan  
Дата: 27.07.06 13:22
Оценка:
в задании небыло указано должен код соответствовать стандарту или нет.
было только: "Напишите компелябельный код для вызова чистовиртуальной функции"
Что я с успехом и продемонстрировал
"If everything seems under control, you're just not going fast enough"
Re[6]: Вопросы для интеврью
От: srggal Украина  
Дата: 27.07.06 13:29
Оценка:
Здравствуйте, Jonathan, Вы писали:

J>в задании небыло указано должен код соответствовать стандарту или нет.

J>было только: "Напишите компелябельный код для вызова чистовиртуальной функции"
J>Что я с успехом и продемонстрировал

Настолько Вы со мной несогласны, что даже в виде минуса выразили, чтож, не поленитесь,
гляньте сюда Что такое ill-formed код ? ill-formed == UB ?
Автор: srggal
Дата: 01.12.05
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Вопросы для интеврью
От: Лазар Бешкенадзе СССР  
Дата: 27.07.06 13:36
Оценка: 1 (1) +1
Здравствуйте, mr_jek, Вы писали:

_>Это не задача на рекурсию,


Вспомним как ставилась задача:

>> 5)Вычислить факториал на этапе компиляции, на выходе константа 'n', на выходе факториал


_>это задача на понимание того какую специлизацию шаблона компилятор выберет,

_>и почему это вообще работает.

Я не вижу слова "шаблон" в вопросе.
Сомневаюсь, что до 2000 года, когда вышла книга Александреску, кто-нибудь
вообще понял бы фразу "вычислить факториал на этапе компиляции". Поэтому этот
вопрос скорее на знание хитрых и редко используемых приемов.
Если интервью строить на таком подходе, то можно упустить очень много умных,
работящих, и, главное, аккуратных программистов, а вместо них набрать команду
"блестящих гениев", которые не программируют, а кладут кучи неработающего
дерьма.
К тому же подход "завтра я провожу первое в жизни интервью — накидайте-ка мне
побольше хороших вопросов" уже характеризует интервьюирующего. Правильная
схема тестирования должна включать заранее подготовленный, продуманный,
письменный тест, который претендент должен иметь возможность выполнять в
спокойной обстановке, в одиночестве и в течение заведомо достаточного времени.
Если быть честным, такое тестирование в Москве я встречал только в одном месте.
Это — Ecora.

Лазар
Re[14]: Вопросы для интеврью
От: Vanger84  
Дата: 27.07.06 14:41
Оценка:
Здравствуйте, srggal, Вы писали:

S>Здравствуйте, Vanger84, Вы писали:


V>>а дай пожалуйсто ответ на этот вопрос...


S>См. стандарт 15.4


S>

S>15.4/8
S>Whenever an exception is thrown and the search for a handler (15.3) encounters the outermost block of a
S>function with an exception-specification, the function unexpected() is called (15.5.2) if the exceptionspecification
S>does not allow the exception.[Example:
S>class X { };
S>class Y { };
S>class Z: public X { };
S>class W { };
S>void f() throw (X, Y)
S>{
S>int n = 0;
S>if (n) throw X(); // OK
S>if (n) throw Z(); // also OK
S>throw W(); // will call unexpected()
S>}
S>—end example]


S>15.4/9
S>The function unexpected() may throw an exception that will satisfy the exception-specification for
S>which it was invoked, and in this case the search for another handler will continue at the call of the function
S>with this exception-specification (see 15.5.2), or it may call terminate().

S>15.4/11
S>A function with no exception-specification allows all exceptions. A function with an empty exceptionspecification,
S>throw(), does not allow any exceptions.


S>Кроме этого есть

S>

S>15.5.1 The terminate() function
S>...

S>15.5.2 The unexpected() function
S>...

S>которые тоже можно глянуть

я попросил дать ответ не потомучто незнаю а потомучто хотел узнать как именно он был дал ответ на этот вопрос на собеседовании те не дают стандарт C++ чтобы ты в нем искал ответ! тебя спрашивают а ты сам должен сформулировать ответ....
Re[5]: Вопросы для интеврью
От: Vanger84  
Дата: 27.07.06 14:45
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Здравствуйте, Аноним, Вы писали:


А>>нельзя так как он не отвчает требованием выдвинутым к контейнеру vector так что незя, подробнее можеш прочитать в книжке Маерса STL эфективное использование у него прям глава такая есть помоему


_DA>Ну что значит нельзя. Можно, но с оглядкой на все отличия vector<bool> от vector<T>.


ну можно все если это оправдоно, есть просто вещи не входящии в состав стандарта.... вот vector<bool> не входит в стандарт
Re[6]: Вопросы для интеврью
От: _DAle_ Беларусь  
Дата: 27.07.06 15:19
Оценка:
Здравствуйте, Vanger84, Вы писали:

V>Здравствуйте, _DAle_, Вы писали:


_DA>>Здравствуйте, Аноним, Вы писали:


А>>>нельзя так как он не отвчает требованием выдвинутым к контейнеру vector так что незя, подробнее можеш прочитать в книжке Маерса STL эфективное использование у него прям глава такая есть помоему


_DA>>Ну что значит нельзя. Можно, но с оглядкой на все отличия vector<bool> от vector<T>.


V>ну можно все если это оправдоно, есть просто вещи не входящии в состав стандарта.... вот vector<bool> не входит в стандарт


А может сначала открыть этот самый стандарт, а потом уже что-то утверждать?

23.2.5 Class vector<bool>
To optimize space allocation, a specialization of vector for bool elements is provided:
...

Re[7]: Вопросы для интеврью
От: Vanger84  
Дата: 27.07.06 15:55
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Здравствуйте, Vanger84, Вы писали:


V>>Здравствуйте, _DAle_, Вы писали:


_DA>>>Здравствуйте, Аноним, Вы писали:


А>>>>нельзя так как он не отвчает требованием выдвинутым к контейнеру vector так что незя, подробнее можеш прочитать в книжке Маерса STL эфективное использование у него прям глава такая есть помоему


_DA>>>Ну что значит нельзя. Можно, но с оглядкой на все отличия vector<bool> от vector<T>.


V>>ну можно все если это оправдоно, есть просто вещи не входящии в состав стандарта.... вот vector<bool> не входит в стандарт


_DA>А может сначала открыть этот самый стандарт, а потом уже что-то утверждать?


_DA>

_DA>23.2.5 Class vector<bool>
_DA>To optimize space allocation, a specialization of vector for bool elements is provided:
_DA>...


хм... может я ошибаюсь в книжке Майерса черным по белому написано что он не является стандартом??
Re[4]: Вопросы для интеврью
От: little_alex  
Дата: 27.07.06 16:25
Оценка:
Не компилирутся :
sh@venus:~/tmp/cpp> cat main.cpp
#include <iostream>
using namespace std;

class ABC
{
public:
virtual void func() = 0 { cout << "I'm Pure Virtual" << endl;};
};

class BCD : public ABC
{
public:
virtual void func() { cout << "I'm not Pure Virtual" << endl;};
void func2() {ABC::func();};
};

int main(int argc, char* argv[])
{
BCD b;
b.func2();
}
sh@venus:~/tmp/cpp> g++ main.cpp
main.cpp:7: error: pure-specifier on function-definition
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.