IRO>Поведение человека в экстримальных ситуациях очень важна для меня.
Электрошок , в случае неправильного ответа , не пробовали ? Стимулирует
IRO>Один раз попросил расказать, как бы он сделал систему магий и аур в такой игре как вар3. не ответил
Чорт , а я только знаю чем мка с глушаком лучше калаша в КС
Здравствуйте, carpenter, Вы писали:
C>Здравствуйте, IROV.., Вы писали:
IRO>>Поведение человека в экстримальных ситуациях очень важна для меня. C>Электрошок , в случае неправильного ответа , не пробовали ? Стимулирует
Закон не разрешает, а так хороший совет, придете проверим, только предворительно напишете что вы не против, ок?
IRO>>Один раз попросил расказать, как бы он сделал систему магий и аур в такой игре как вар3. не ответил C>Чорт , а я только знаю чем мка с глушаком лучше калаша в КС
А ты игры делаеш?
E>Ну мало ли что компилируется?.. Или вы программы не отлаживаете? Собралось, значит работает?
. А в принципе это мысль... надо подумать как назвать такой стиль программирования... что нибуть типа "методология фаталистического программирования" (как собралось — так и пусть работает).
E>Вообще-то трудно себе представить зачем такая строчка нужна и зачем её так загадочно получать... ИМХО хотели получить название значения enum'а...
Ну это ваше IMHO, а IMO автора строчек нам не известно.
F>>Или же с приведенным здесь "цыклом" — это штука такая для отладки... чтобы пока повторения убрать. Строчкой ниже то пришлось бы две палочки поставить, а тут — одну (охранительная экономия ресурса клавиатуры).
E>Ага. Вот именно триграфами и надо. Как же. Просто строчку с циклом закомментарить (это точный эквивалент, разберитесь в обсуждаемом примере) никак?
Я же сказал ресурс кнопки на клавиатуре экономится, при таких трюках, за счет нервов коллег , а по последним данным нервные клетки восстанавливаются.
F>>А то что коллег это вгонит на пол часа в ступор — это хорошо, это его как супер-пупер-мега-Си-гуру уважать, можно же и так считать . Тем более если про такие фишки спрашивали на собеседовании — значит тут это в почете .
E>Я резкий противник переусложнения программ. И описанна тобой проблема действительно существует. Но, ИМХО, это не обозначает, что невежественный недоучка лучше грамотного специалиста. Просто специалист не только должен знать средства и приёмы разработки, но ещё и уметь их применять только тогда, когда надо.
Абсолютно верно, я даже специалист применяющий такие вещи, там где без них можно обойтись не является грамотным. Просто, если человек сходу отвечает на такие вот ребусы, стоит проверить, а сидит ли перед тобой вот как раз данная проблема. Ведь же такие штуки в нормальной практике не встречаются (если конечно это не практика разработки компиляторов).
Здравствуйте, Formidable, Вы писали:
F>Абсолютно верно, я даже специалист применяющий такие вещи, там где без них можно обойтись не является грамотным. Просто, если человек сходу отвечает на такие вот ребусы, стоит проверить, а сидит ли перед тобой вот как раз данная проблема. Ведь же такие штуки в нормальной практике не встречаются (если конечно это не практика разработки компиляторов).
Ну про триграфы можно случайно помнить. Или в книжке какой перед собеседованием прочитать. В том же Сартре
А про # в макросах -- это довольно часто используемый синтаксис. Если, например, ты хоть раз интересовался как написан макрос assert, то должен бы по идее знать о такой конструкции
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, IROV.., Вы писали:
IRO>// доскольки считает этот цыкл????????????/
Цикл досчитает до 10, т.е. компиляторы пошли умные и берегут нервы нормальных разработчиков от разгребания хреней нагенерированных не совсем нормальными разработчиками.
C:\my\project\C++>g++ test.cpp
test.cpp:7:41: warning: trigraph ??/ ignored, use -trigraphs to enable
C:\my\project\C++>a.exe
10
А вот если на собеседовании задают подобный вопрос, это уже звоночек, ибо ну его нафиг с таким психами еще и работать.
Я не очень много людей собеседовал, но это просто какой-то ужаснах сколько лопухов
лезут в C++. Из десяти человек "с опытом" взяли последнего, который когда-то программил
на VС++ в аспирантуре, до прихода к нам несколько лет работал исключительно в 1С, никогда
не слышал что такое STL тем более boost, но он ответил на вопрос, что будет в результате
выполнения этого кода:
#include <iostream>
template<int i>
struct f { enum { result = i*f<i-1>::result }; };
template<>
struct f<0> { enum { result = 1 }; };
int main()
{
std::cout<< f<4>::result <<std::endl;
}
Прошло две недели, он уже вовсю работает под linux, я ему передаю очень сложный проект,
где используется и stl, буст и конструкции где Александреску отдыхает ))))
В общем очень быстро все осваивает, я прямо не нарадуюсь, даже жаль теперь уходить из конторы.
ЗЫ Перед этим кандидату в возрасте 35 лет с более чем 10 летним опытом, который не смог ответить,
я сказал ответ и спросил почему. Он подумал немного и предложил в дебагере посмотреть
Здравствуйте, s_viy, Вы писали:
_>Прошло две недели, он уже вовсю работает под linux, я ему передаю очень сложный проект, _>где используется и stl, буст и конструкции где Александреску отдыхает ))))
Да в общем-то в том и поинт, что проверять на знание всякой хрени практически бесполезно.
Но я прикололся что вы спрашиваете.
Сначала я думал "на хрена бы это надо", но потом коммент про ваш код прочитал и понял.
ИМХО если в проекте решаются на такие красивости, то это реальный пападос с кадрами. Программистов, которые регулярно прогают такую в точности вещь вы на рынке ни за что не нароете. И даже таких, кто хотя бы похожий опыт имеет тоже с трудом найдёте.
Хотя у вас наверное интересно работать Только вам кадры самим готовить видимо приходится
Но это всем нормальным конторам приходится, только в разной степени
_>ЗЫ Перед этим кандидату в возрасте 35 лет с более чем 10 летним опытом, который не смог ответить, _>я сказал ответ и спросил почему. Он подумал немного и предложил в дебагере посмотреть
Ну вот он как раз С++ возможно и знает. Просто вам не это надо
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Тоже не показатель. Жизненное надо спрашивать, а не факториалы в компайлтайе считать (IMHO разумеется).
Таки у вас в работе настолько применяется метапрограммирование, шо Александреску отдыхает ???
E>Ну про триграфы можно случайно помнить. Или в книжке какой перед собеседованием прочитать. В том же Сартре E>А про # в макросах -- это довольно часто используемый синтаксис. Если, например, ты хоть раз интересовался как написан макрос assert, то должен бы по идее знать о такой конструкции
Вот поэтому я и не сказал, что сразу такого человека гнать надо.
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, s_viy, Вы писали:
_>>Прошло две недели, он уже вовсю работает под linux, я ему передаю очень сложный проект, _>>где используется и stl, буст и конструкции где Александреску отдыхает ))))
E>Да в общем-то в том и поинт, что проверять на знание всякой хрени практически бесполезно. E>Но я прикололся что вы спрашиваете. E>Сначала я думал "на хрена бы это надо", но потом коммент про ваш код прочитал и понял. E>ИМХО если в проекте решаются на такие красивости, то это реальный пападос с кадрами. Программистов, которые регулярно прогают такую в точности вещь вы на рынке ни за что не нароете. И даже таких, кто хотя бы похожий опыт имеет тоже с трудом найдёте.
Программер на C++ должен быть ас в любом случае, если это не так, то пусть уходит в C# и Java — там с меньшими усилиями будет решать задачи более эффективно.
E>Хотя у вас наверное интересно работать Только вам кадры самим готовить видимо приходится E>Но это всем нормальным конторам приходится, только в разной степени
_>>ЗЫ Перед этим кандидату в возрасте 35 лет с более чем 10 летним опытом, который не смог ответить, _>>я сказал ответ и спросил почему. Он подумал немного и предложил в дебагере посмотреть
E>Ну вот он как раз С++ возможно и знает. Просто вам не это надо
Он знает Builder, а не C++. Не знает даже что такое конструктор копирования. На задачку, где его небходимо пременить начал такой огород городить... К стати, про конструктор копирования, так и не удалось никому следующую задачку подкинуть:
class A{
public:
A(){}
A(const A&){ std::cout<<"copy constructor"<<std::endl;}
template<typename T>
A(const T&){ std::cout<<"template constructor"<<std::endl;}
};
class B: public A{
public:
B(){}
B(const B& b):A(b){ }
}
Вопрос не "где ошибка?" и даже не "где ошиба в конструкторе копирования B?", а почему надо так: "B(const B& b):A(static_cast<const A&>(b)){}"
Здравствуйте, s_viy, Вы писали:
_>Вопрос не "где ошибка?" и даже не "где ошиба в конструкторе копирования B?", а почему надо так: "B(const B& b):A(static_cast<const A&>(b)){}"
Доктор, вы извращенец
Героически боремся с самостоятельно созданными трудностями ???
P.S. Профессиональный программист должен решать поставленные ему задачи, а не пальцы растопыривать
с учетом этого и строится собеседование. Задача не понабрать гуру, а построить слаженную работающую команду.
С учетом этого, заранее известно, чего именно хочется от кандидата. Вопросы составляются для того чтобы убедиться,
удовлетворяет кандидат требуемым критериям или нет.
P.P.S. В любом случае, в течение испытательного срока с каждым из вновь прибывших ведется индивидуальная работа. И это как раз тот самый момент, когда кандидата можно подтянуть по теоретическим вопросам (слабина в которых определяется по итогам того-же собеседования).
Здравствуйте, Gluk_Kazan, Вы писали:
G_K>Доктор, вы извращенец G_K>Героически боремся с самостоятельно созданными трудностями ???
Ну да, самый простой способ создать один гиганский класс в проекте, и впиндюрить туда
всесь функционал и не будет тогда никаких проблем и ненужна всякая экзотика типа конструкторов. Зачем?
G_K>P.S. Профессиональный программист должен решать поставленные ему задачи, а не пальцы растопыривать G_K>с учетом этого и строится собеседование. Задача не понабрать гуру, а построить слаженную работающую команду. G_K>С учетом этого, заранее известно, чего именно хочется от кандидата. Вопросы составляются для того чтобы убедиться, G_K>удовлетворяет кандидат требуемым критериям или нет.
Критерий один: чтобы программист мог решать поставленные ему задачи. А это реальная задача. Ну попался мне как-то такой класс. Естессно я не сразу понял, что просходит. Небольшой эксперемент показал, что вызывается не тот конструктор. И что? как всегда баг компилятора? давайте все перепишем, все поломаем и наставим костылей?
G_K>P.P.S. В любом случае, в течение испытательного срока с каждым из вновь прибывших ведется индивидуальная работа. И это как раз тот самый момент, когда кандидата можно подтянуть по теоретическим вопросам (слабина в которых определяется по итогам того-же собеседования).
Как раз задача и состоит в том, чтобы найти такого, который бы сам подтнулся до нужного уровня, а не дергал весь отдел по вопросам, ответы на которые можно найти самостоятельно.
Я стараюсь задавать такие вопросы, ответы на которые можно найти зная лишь основы языка, надо лишь чуточку подумать.
Кроме того, ИМХО, мощь современного С++ имено в шаблонах, классические ООП решения проще и дешевле реализовавать на C# или Java. Ну задачи у нас таки, что компа с 4 процами и 16 гигами еле хватает.
Здравствуйте, Gluk_Kazan, Вы писали:
G_K>Здравствуйте, s_viy, Вы писали:
G_K>Тоже не показатель. Жизненное надо спрашивать, а не факториалы в компайлтайе считать (IMHO разумеется). G_K>Таки у вас в работе настолько применяется метапрограммирование, шо Александреску отдыхает ???
G_K>не верю (с)
Ну мож не отдыхает, но его списки типов используются очень активно. Кто его читал, тот и сам напишет такой факториал. Кто просто думающий, скажет типа: "нифигасе, неужели 24". А тот кто всю жизнь кнопочки в билдере тягал просто в ступор впадет — такие не нужны.
Здравствуйте, s_viy, Вы писали:
_>Вопрос не "где ошибка?" и даже не "где ошиба в конструкторе копирования B?", а почему надо так: "B(const B& b):A(static_cast<const A&>(b)){}"
Вообще-то это сильно зависит от семантики конструкторов A...
А зачем такой изврат понадобился?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, s_viy, Вы писали: _>Критерий один: чтобы программист мог решать поставленные ему задачи. А это реальная задача. Ну попался мне как-то такой класс. Естессно я не сразу понял, что просходит. Небольшой эксперемент показал, что вызывается не тот конструктор. И что? как всегда баг компилятора? давайте все перепишем, все поломаем и наставим костылей?
Совершенно точно. Костыль надо вставить тому, кто написал класс с таким набором конструкторов. Что за нездоровая любовь создавать ambiguity на ровном месте?
Код читается в десятки раз чаще, чем пишется. А вы, значит, поощряете право разработчика писать говнокод путем отсеивания тех, кто говнокод поддерживать неспособен, я правильно понимаю?
И это вместо того, чтобы на собеседовании спросить, как исправить класс A чтобы в будущем таких проблем не возникало. Молодцы. Еще рекомендую проверять способность разработчика пить нефильтрованную воду из-под крана и производительность труда при температуре в помещении +5. А то вдруг кто-то из коллег окно откроет или чайник унесет.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Более того VC8 для class B: public A{}; конструктор копирования по умолчанию также вызывает шаблонный конструктор
базового класса, хотя в стандарте написано, что шаблонный конструктор с одним параметром не может быть конструктом
копирования. Т.е. походу мелкософтовский компилятор генерит конструктор копирования B наподобие как B(const B& b):A(b)...
а в gcc все ок.
Есть один момент. Кандидат не подошел вашей компании как разработчик. Это случается. Это не страшно.
После таких заигрываний кандидат получает представление о компании с которой он пообщался (а вы представляете компанию для кандидата) как о сборище жлобов (ну или что-то в этом духе).
Жизнь по всякому поворачивается. Но вот иногда складывается ситуация так, что этот самый кандидат может стать довольно важной персоной в компании вашего потенциального заказчика (как случилось у одного моего коллеги). И компания — позволявшая себе подобные шуточки весьма неплохой контракт потеряла (причины были и другие и их было много).
Не надо портить личные отношения с людьми, которых вы даже не знаете.
IRO>Здравствуйте, Чили, Вы писали:
Ч>>Здравствуйте, IROV.., Вы писали:
IRO>>>Еще раз обьясняю! тебе в последний раз, что такие вопросы задаю только когда человек _НЕ_ прошол собеседование! Ч>>А если эту фишку все-таки ( //????????????/ ) просечет!!! IRO>ты лучше спроси что происходит когда они видят ответ( в смысле не отгадку, а ответ примера ). IRO>Они перечитывают все книги, потомучто ложная опора под ногами рушится
Ч>>Как тогда поступишь? IRO>а как я должен поступить? если собеседование окончилось еще минуту назад?
Ч>>P.S. Кстати "пошол" пишется через "Ё" IRO>возму тебя учителем русского языка, ок?