Здравствуйте, kittown, Вы писали:
K>Hi,
K>Вчера сам собой придумался пример кода для запугивания K>претендентов на собеседовании:
Вот тут читал комменты, читал.
И вызрел вопрос — какое отношение этот, с позволения сказать, тест, имеет к программированию вообще и к С++ в частности?
landerhigh wrote: > > K>Вчера сам собой придумался пример кода для запугивания > K>претендентов на собеседовании: > > Вот тут читал комменты, читал. > И вызрел вопрос — какое отношение этот, с позволения сказать, тест, > имеет к программированию вообще и к С++ в частности?
"Программирование вообще" нас на этом собеседовании мало
интересует. А хитрый свич, с которого началось тема, сразу
много говорит о кандидате. Если знает — интересно, откуда
знает, а если не знает — то как среагирует. Если изучал
синтаксис языка как таковой, то наверняка знает.
Вопрос — на сладкое. Основной костяк теста — несколько десятков
куда более стандартных вопросов. Скажем, а не является ли
размер enum-а равным размеру инта, помноженному на число
значений ? Этот вопрос заваливает каждый второй.
Ответа на абсолютно все вопросы не ожидается вообще
ни от кого, включая сотрудников компании.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[3]: издевательства над switch-ем на собеседовани
Здравствуйте, kittown, Вы писали:
K>Скажем, а не является ли K>размер enum-а равным размеру инта, помноженному на число K>значений ? Этот вопрос заваливает каждый второй.
Ну и контингент у вас...
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[3]: издевательства над switch-ем на собеседовани
Здравствуйте, kittown, Вы писали:
K>Если изучал синтаксис языка как таковой, то наверняка знает.
, а также отвечали на вопрос "Смогли бы вы сами с уверенностью ответить на эти вопросы без компилятора?":
K>До вчерашнего дня — вряд ли.
То есть, если вы и изучали синтаксис языка до позавчерашнего дня, то изучали не как таковой, а как-то иначе.
---
K>Основной костяк теста — несколько десятков куда более стандартных вопросов. K>Скажем, а не является ли размер enum-а равным размеру инта, помноженному на число значений?
Час от часу...
Вроде как приходишь сдавать математику в ВУЗ, и получаешь вопрос, всегда ли 2*2=4 ?
Больше похоже на проверку устойчивости психики.
Кстати, когда придуман вопрос и за сколько дней до того придумавший его узнал правильный ответ?
Re[4]: издевательства над switch-ем на собеседовани
igna wrote: > > K>Если изучал синтаксис языка как таковой, то наверняка знает. > > , а также отвечали на вопрос "Смогли бы вы сами с уверенностью ответить > на эти вопросы без компилятора?": > > K>До вчерашнего дня — вряд ли. > > То есть, если вы и изучали синтаксис языка до позавчерашнего дня, то > изучали не как таковой, а как-то иначе.
Детально синтаксис — нет, и не скоро весь изучу, если вообще. Что-то
по случаю, что-то по необходимости. Исключение — самая база, вроде
if/switch. Свитч, кстати, подкосил половину преподсостава.
Демонстрация всего этого на первом собеседовании серьезно повышает
IQ претендента, фактически бесплатная консультация. В следующий раз
уровень ответов несколько выше.
> K>Основной костяк теста — несколько десятков куда более стандартных > вопросов. Скажем, а не является ли размер enum-а равным размеру инта, > помноженному на число значений? > > Час от часу... > Вроде как приходишь сдавать математику в ВУЗ, и получаешь вопрос, всегда > ли 2*2=4 ? > Больше похоже на проверку устойчивости психики. > > Кстати, когда придуман вопрос и за сколько дней до того придумавший его > узнал правильный ответ?
Ну это-то нормальный вопрос. Есть два-три таких, неверный ответ на
все из них одновременно вполне достаточен для вывода. У кого-то
char занимает 8 байт (ровно, всегда, везде). У кого-то статические
методы располагаются в статической памяти. А другие начинают
косячить только тогда, когда спрашиваешь, где будет переменная
с ключевым словом register. Кто думает — пишет что в регистре,
кто знает — пишет другое.
Есть большая таблица, где в какой памяти что находится. Ответят,
смотрю, не ответят — черт с ней, другое спрошу.
У нас входной поток — почти исключительно студенты. Остальные
все в городе уже трудоустроены и неторопливо циркулируют между
3-4 основными фирмами города по разу в несколько лет.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[8]: издевательства над switch-ем на собеседовани
Здравствуйте, Кодт, Вы писали:
GZ>>Знание что двойной xor возвращает то же значение нетривиально? Ну не знаю. К>Это-то понятно. Массив отсортируй без дополнительной памяти (под счётчик)
А что значит под счетчик?
Dimentiy wrote: > > Верно говорят: "Кто умеет — делает, кто не умеет — руководит, кто не > умеет руководить — учит"...
Это вы к чему ? К знанию синтаксиса ?
Не, меня этот тред окончательно удивил. Одна часть считает
пример кошмаром, и радостно об этом заявляет. Хотя именно
о таком статусе примера сказано в исходном письме. Наверно,
прочитать письмо внимательно решительно невозможно.
Другая часть считает, что до такой степени синтаксис
знать нормальному человеку на практике и не нужно.
И теперь подтягивается третья, считающая, что уж обучающий
должен знать все и вся ? Я так понял, вы прицепились к
"Детально синтаксис — нет" ?
Поясняю (уже немного злобно). Берем исходную фразу
"Детально синтаксис — нет, и не скоро весь изучу, если вообще."
Детальное знание синтаксиса эквивалентно знанию всего, что
написано в стандарте о синтаксисе. Не знание как минимум одной
детали есть отсутствие детального знания всего синтаксиса. Все.
Далее, детального знания синтаксиса, как и знания всего
стандарта, тоже недостаточно для работы. Надо знать степень
поддерживаемости того-то и того-то (exported templates etc).
И наконец, вопрос — нафига преподавателю все это знать,
если студенту практически все это абсолютно бесполезно ?
Ему (студенту) не знание языка преподавателем нужно, ему
инструкции и наводки, помогающие язык изучить. Можно преподавать
и вообще не зная язык, хотя это уже вынужденный перебор из-за
недостатка кадрогово состава и заканчивается не всегда хорошо.
Можно знать язык от и до, и не найти общего языка ни с одним
студентом.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[7]: Верно говорят...
От:
Аноним
Дата:
06.12.05 16:14
Оценка:
Здравствуйте, kittown, Вы писали:
А какого возраста студенты, которым Вы эти вопрсы задаете?
Аноним wrote: > > А какого возраста студенты, которым Вы эти вопрсы задаете?
Которым задаю, те параллельно в вузе на 2..4 курсе учатся.
Бывают исключения — кто еще только абитурьент, а кто сам
работает преподавателем c++ (был случай).
Понятное дело, вопросы подгоняются под пришедшего. Мы же
не на работу принимаем, мы группы формируем. Для совсем
мало знающего свитч будет показан как иллюстрация с
комментарием, чтобы мол дома почитал и еще пришел. Для
имеющего опыт — как шутка, вместе удивиться да посмеяться.
На самом деле, если студент пришел в первый раз, то его
уровень известен из двух-трех ответов. Они все типичные
и обьясняются тем, что кроме вузовских лекций нигде эти
кадры с программированием не пересекались. Если ответы
нетипичные, вот тогда и разговор другой.
Если придет спец, который мог бы пройти собеседование
на работу хоть сегодня, я просто напишу на листе "на
стажировку" и сообщу, что в общем-то может попробовать
послать резюме и сразу устроиться на работу.
Здравствуйте, kittown, Вы писали:
K>И наконец, вопрос — нафига преподавателю все это знать, K>если студенту практически все это абсолютно бесполезно ? K>Ему (студенту) не знание языка преподавателем нужно, ему K>инструкции и наводки, помогающие язык изучить. Можно преподавать K>и вообще не зная язык, хотя это уже вынужденный перебор из-за K>недостатка кадрогово состава и заканчивается не всегда хорошо. K>Можно знать язык от и до, и не найти общего языка ни с одним K>студентом.
kittown, это абсолютно бесполезно не только преподавателю, но в первую голову обучаемому.
По-моему только неграмотный преподаватель будет спрашивать такую чепуху. Даже в качестве дополнительного вопроса. Что и пытаются здесь "части" (чего? кого?) донести.
Если же это действительно для "издевательства на собеседовании" — тогда извините, психиатров нема
Dimentiy wrote: > > kittown, это /абсолютно бесполезно/ не только преподавателю, но в первую > голову обучаемому. > По-моему только неграмотный преподаватель будет спрашивать такую чепуху.
Балин. Это вопрос для вытягивания перспективного студента, если он
сможет предложить более-менее разумную цепочку рассуждений. На этот
или на другие непростые. Даже если окончательный ответ все равно
будет неверен.
Гарантированный ответ на него даст мало кто из преподов, которых
знаю и знал. Но порассуждать сможет любой нормальный студент. В
конце концов, удается же им догадаться, в каком типе памяти
находятся локальные статические переменные (хотя бы с точностью
до факта, что не на стеке).
Это вовсе не для того чтобы потопить.
> Даже в качестве дополнительного вопроса. Что и пытаются здесь "части" > (чего? кого?) донести. > > Если же это действительно для "/издевательства/ на собеседовании" — > тогда извините, психиатров нема
В оригинальном сабжекте было четко и однозначно написано, над чем
именно проводятся издевательства.
Здравствуйте, kittown, Вы писали:
K>Не, меня этот тред окончательно удивил.
Удивил, на самом деле, ты.
Вчера сам собой придумался пример кода для запугивания претендентов на собеседовании:
И всё-таки: для собеседования, запугивания или такого изысканного посылания-на?
Оставлю в стороне тему — насколько это корректно по отношению к претендентам (возможно, только так можно сбить завышенное самомнение... всякое бывает).
Но по отношению к участникам...
Наверное, ты ошибся форумом. Поясню:
Представь себе, что ты запулил этот вопрос в:
— "Коллеги, улыбнитесь" — дальше пойдёт ёрничанье на предмет хинди-чайна-бхайбхай (потому что код абсурдный)
— "Образование" — проявится вопрос об уровне подготовки студентов, о приоритетах в изучении программирования и т.д.
— "Философия" или "Компьютерные войны" — флейм о том, в каком языке синтаксис корявее, и чей Стандарт тоньше; и ещё о том, что важнее знать: синтаксис или предметную область
— "С/С++" — если бы ты не пытался задавать направление, то всё бы скатилось к тонкостям Стандартов С и С++, глюкам и варнингам компиляторов
— "Этюды" — конкурс на самый обфусканный код, например
— "О работе" — тактика и стратегия интервью в твоём случае и вообще
То, ради чего ты написал сообщение — куда попадает? Или ты сам не знал, так, вслух помыслил.
Больше того.
Мы же не на работу принимаем, мы группы формируем
Цели у собеседования при приёме на работу и при поступлении на какие-то advanced курсы — разные. По умолчанию "собеседование" предполагает первое. А ты, оказывается, совсем другое имел в виду.
Ну тогда знаешь на кого пенять. Garbage In — Garbage Out.
Чтобы два раза не наливать, прокомментирую здесь же.
K>Одна часть считает пример кошмаром, и радостно об этом заявляет. Хотя именно о таком статусе примера сказано в исходном письме. Наверно, прочитать письмо внимательно решительно невозможно.
Кошмар трёх видов:
— о боже, я не знаю, что это
— о боже, какое издевательство над языком
— о боже, и он предлагает такие вопросы на собеседовании
K>Другая часть считает, что до такой степени синтаксис знать нормальному человеку на практике и не нужно.
K>И теперь подтягивается третья, считающая, что уж обучающий должен знать все и вся ? Я так понял, вы прицепились к "Детально синтаксис — нет" ?
K>Поясняю (уже немного злобно). Берем исходную фразу "Детально синтаксис — нет, и не скоро весь изучу, если вообще." K>Детальное знание синтаксиса эквивалентно знанию всего, что написано в стандарте о синтаксисе. Не знание как минимум одной детали есть отсутствие детального знания всего синтаксиса. Все.
детальное_знание_синтаксиса — это бесполезная функция.
Например, я не знаю триграфов. Вообще с ними не сталкивался на практике, только на форуме пару раз попадались вопросы "а что это у меня компилятор бред выдаёт". Теперь у меня есть триггер: "компилятор гонит бред — посмотреть, нет ли там чего-то похожего на триграф".
То есть, пробелы в формальном описании предметной области покрываются эвристиками. Начиная от самой простой и эффективной "сомневаешься — избегай".
K>Далее, детального знания синтаксиса, как и знания всего стандарта, тоже недостаточно для работы. Надо знать степень поддерживаемости того-то и того-то (exported templates etc).
Не только недостаточно, но и не необходимо.
Кто-то (кажется, AVC) недавно говорил, что вся мощь С++ ему не нужна, достаточно "С с классами".
Мне нафиг сдались триграфы (ну не верю я, что когда-либо буду на телетайпном терминале С++ные программы набирать).
K>И наконец, вопрос — нафига преподавателю все это знать, если студенту практически все это абсолютно бесполезно ? K>Ему (студенту) не знание языка преподавателем нужно, ему инструкции и наводки, помогающие язык изучить. Можно преподавать и вообще не зная язык, хотя это уже вынужденный перебор из-за недостатка кадрогово состава и заканчивается не всегда хорошо. Можно знать язык от и до, и не найти общего языка ни с одним студентом.
Вот и прекрасно. Ты попробовал себя (здесь, на форуме) в роли преподавателя.
Можешь тезисно указать, какие инструкции и наводки помогают изучить язык?
Ты уверен, что подковырка с кодом, о котором можно сказать "встречу такое у коллеги — набью морду; встречу во время отладки — набью морду ногами" поможет изучить язык?
Я уверен в обратном. Это стресс-тест в чистом виде. Если претендент не прошёл его — можно сказать "иди отсюда", но "иди учи язык дальше"?
Кодт wrote: > > K>Не, меня этот тред окончательно удивил.
Добавлю: удивил стереотипностью и поспешностью ответов.
> Удивил, на самом деле, ты. > Вчера сам собой придумался пример кода для запугивания претендентов на > собеседовании: > И всё-таки: для собеседования, запугивания или такого изысканного > посылания-на?
Про запугивание — шутка. Двойная шутка в том, что для студентов эта
проблема будет не сильно сложнее других, поскольку у них нет
настолько выраженных привычек к тому или иному синтаксису.
> Оставлю в стороне тему — насколько это корректно по отношению к > претендентам (возможно, только так можно сбить завышенное самомнение... > всякое бывает).
Нет с этим никаких проблем.
> Но по отношению к участникам... > Наверное, ты ошибся форумом. Поясню:
Отчасти это был эксперимент, проверка реакции аудитории. Ожидал
большего — как минимум меньшей поспешности.
> — "Образование" — проявится вопрос об уровне подготовки студентов, о > приоритетах в изучении программирования и т.д.
К сожалению, как мне кажется по ситуации здесь, появится сразу ответ,
а уже потом, возможно, вопрос.
> То, ради чего ты написал сообщение — куда попадает? Или ты сам не знал, > так, вслух помыслил.
См. выше.
> Больше того. > Мы же не на работу принимаем, мы группы формируем > Цели у собеседования при приёме на работу и при поступлении на какие-то > advanced курсы — разные. По умолчанию "собеседование" предполагает > первое. А ты, оказывается, совсем другое имел в виду.
"выдающиеся" кадры идут на стажировку по стандартным правилам. Наверно,
кто нибудь об этом спросил ?
Кроме того, половина любого собеседования — методика оценки результатов.
Как я понял, тут никому в голову не пришло, что они могут быть разные,
что неспособность ответа вопрос может быть не проблемой, и что
собеседуемому об этом могут говорить прямо на собеседовании.
> Кошмар трёх видов: > — о боже, я не знаю, что это > — о боже, какое издевательство над языком > — о боже, и он предлагает такие вопросы на собеседовании
Единственный кошмар будет при появлении такого кода в
реальной программе. В остальных случах кошмаром может
быть, может не быть.
> Можешь тезисно указать, какие инструкции и наводки помогают изучить язык?
0) Пререквизит — университетский курс C/C++. Чтобы терминологию
не объяснять. За обучением совсем с нуля не ко мне.
1) Путеводитель, чтобы не заблудиться, в стиле Брюса Эккеля
2) Справочник — факи, гугл, полнотекстовый поиск по книгам
3) Примеры — небольшая программа на полтысячи строк. Любой
простой клиент-сервер.
4) Стажировка
В процессе — дочитывание книг и просматривание форумов
а-ля rsdn по конкретным вопросам.
Чтение нужных книг, см. сайт анатоликса.
> Ты уверен, что подковырка с кодом, о котором можно сказать "встречу > такое у коллеги — набью морду; встречу во время отладки — набью морду > ногами" поможет изучить язык?
Это прививка от неумения работать со сложным кодом. Ясно, что это,
ясно, что так не надо писать, ясно, что с этим делать если все же
кто-то написал.
Но пока до этого не доходит... это задачки для уже что-то
умеющих.
> Я уверен в обратном. Это стресс-тест в чистом виде. Если претендент не > прошёл его — можно сказать "иди отсюда", но "иди учи язык дальше"?
Если человека запрессовало на ровном месте, ему можно сказать, что
вон там есть тихое место посидеть подумать, лимит времени — "пока
всех остальных не спрошу и не начну собираться домой". Если
человек что-то разумное продемонстрировал, то я ему примерно
так обычно и говорю.
Некоторым поясняю, что могут просто пойти пособеседоваться
на работу. Только там повторное собеседование — нонсенс, а
у нас — никаких проблем. Это само по себе достаточный
повод, чтобы требовать большего.
Mikhail
Posted via RSDN NNTP Server 2.0
Re[13]: издевательства над switch-ем на собеседовани
Здравствуйте, Kemm, Вы писали:
K>Здравствуйте, kittown, Вы писали:
>>> K>>Спасибо. А зачем это было сделано, интересно? Какое-то нарушение общности...
K>Вставил обратно результат фигурного цитирования (жирным). Врочем, ладно, а то совсем уж в holy war скатимся.
А также main нельзя вызывать явно, а также main может иметь одну из по крайней мере двух сигнатур, но при этом она не может быть перегружена, у нее хз какое связывание, а также относительно main стандартом даются разные интересные гарантии, и прочая и прочая, включая то, что она называеся main и никак иначе :)
Здравствуйте, kittown, Вы писали:
K>Добавлю: удивил стереотипностью и поспешностью ответов.
Ещё раз повторю: всё зависит от изначального позиционирования.
Когда человек спрашивает (предъявляет проблему) — находится масса желающих помочь. Причём помощь, возможно, более качественная и полная, чем ожидалось.
Автор делится опытом — хватает экспертов, чтобы обсудить подробности и разобраться до косточек.
Автор прикалывается — тоже соберётся компания...
А если начинающий дискуссию — внешне делает одно, а внутри рулит в другую сторону — это Undefined Behavior. В лучшем случае, вытащим тайные помыслы и разберёмся. В худшем случае — пофлеймим. Флеймить на RSDN тоже горазды.
>> Но по отношению к участникам... >> Наверное, ты ошибся форумом. Поясню:
K>Отчасти это был эксперимент, проверка реакции аудитории. Ожидал большего — как минимум меньшей поспешности.
Хм. Провокация?
Или, как бы пригласил к себе на собеседование — ну так RSDN DDoS team в действии!
>> Больше того. >>> Мы же не на работу принимаем, мы группы формируем >> Цели у собеседования при приёме на работу и при поступлении на какие-то >> advanced курсы — разные. По умолчанию "собеседование" предполагает >> первое. А ты, оказывается, совсем другое имел в виду.
K>"выдающиеся" кадры идут на стажировку по стандартным правилам. Наверно, кто нибудь об этом спросил ?
Нет, ты сам об этом написал. А пока не написал, речь об этом вообще не шла.
Телепаты в отпуске, извиняйте.
<>
В 99% случаях, если программа не компилируется или компилируется неправильно — виноват не компилятор, а программист.
Согласен?
По аналогии: если общество реагирует на твоё сообщение не так, как ты ожидаешь
Перекуём баги на фичи!
Re[14]: издевательства над switch-ем на собеседовани
Здравствуйте, jazzer, Вы писали:
J>А также main нельзя вызывать явно, а также main может иметь одну из по крайней мере двух сигнатур, но при этом она не может быть перегружена, у нее хз какое связывание, а также относительно main стандартом даются разные интересные гарантии, и прочая и прочая, включая то, что она называеся main и никак иначе
Только не для VC! Его рантайм, в зависимости от направления ветра (опций проекта) хочет, чтобы было: main, _wmain, WinMainA, WinMainW
В смысле — хочет линкер, потому что рантайм импортирует соответствующий символ.
Здравствуйте, kittown, Вы писали:
K>Hi,
K>Вчера сам собой придумался пример кода для запугивания K>претендентов на собеседовании:
K>#include <iostream> K>int main() K>{ K> switch(0) default: std::cout << "Hello World!" << std::endl; K>};
K>Вопрос претендентам — скомпилируется ли ? Если не скомпилируется, K>то где ошибка (помимо ошибки в ДНК автора) ? Если скомпилируется, K>то почему и что будет делать ? Компилятор юзать нельзя.
K>Уже жду следующей команды студентов, желающих пособеседоваться.
K>Mikhail
IMHO некорректный вопрос. MINGW: компиллируется.VC++ не компиллируется (warnings as errors). С таким же успехом можно спрашитвать, 2+2=11?