Архив 22 сентября 2011

Натаскать к экзамену

[info]knutov затронул, на мой взгляд, крайне интересную тему. На хабре рассказывают о том, как правильно отвечать на вопросы, которые могут задать программисту при устройстве на работу. Грубо говоря, “что надо вызубрить, чтобы обмануть будущего работодателя”. У меня неподалеку лежит книга “Deep C Secrets: Expert C Programming” за авторством Peter van der Linden’а, вышедшая в далеком уже 1994 году. В ней одно из приложений посвящено тем вопросам, которые задают на собеседованиях в “лучших фирмах” Silicon Valley. Тогда это было неким откровением, сегодня – те же вопросы задают в любой говноконторке, возомнившей себя “лучшей в мире” – благодаря руководствам типа Joel’овского.

Так вот, вспомнилась мне одна история. Как известно многим, и в чем я не раз признавался, я закончил маткласс 57-й школы г. Москвы. Как пишут на сайте школы, прием в математические классы сопровождается некими вступительными “собеседованиями”. На этих собеседованиях предлагается решать задачи типа таких (взято из одного сборника, эти задачи предлагались в 2001 году – “свои” листочки я не нашел, видимо, далеко запрятал):

1. Отрезок [0, 1] разделили на 215 равных частей (от 0 до 1/215, от 1/215 до 2/215 и так далее). В каком отношении число 1/5 делит ту из них, в которую попадает (считая слева направо)?

2. На доске написано 100 чисел: одна единица и 99 нулей. За один шаг разрешается уравнять любые два числа, заменив каждое из них на их полусумму. Мы хотим, чтобы все числа стали равными. Докажите, что это невозможно.

3. Имеются слова: ДУМА, КАМА, КЕША, ДАША, КАША, ДАМА, КУМА. Сколькими способами можно выписать слова в столбик так, чтобы каждое следующее слово получалось из предыдущего заменой одной буквы (остальные остаются на своих местах)?

4. Из фанеры выпилен прямоугольный треугольник с катетами 4 и 5. Он лежит на дне неподвижного прямоугольного ящика 6 х 7. Можно ли его повернуть на 360 градусов, не отрывая от дна ящика?

5 (продолжение) Какова наименьшая возможная площадь прямоугольника, внутри которого можно повернуть этот треугольник?

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

Вот и с собеседованиями для программистов, на мой взгляд, произошла та же история. Методики интервью в Microsoft и других “высокотехнологичных” компаниях, где даже рядовому разработчику желательно знать, что такое красно-белое дерево (это тупой как дуб игрок “Спартака”), оказались достоянием общественности и стали применяться даже всякими говнофирмочками, изготавливающими сайты на PHP. Как на это “ответило” программистское сообщество? Да очень просто – вместо того, чтобы читать книжку Кормена, теперь достаточно ознакомиться с парой таких “ФАКов по прохождению интервью”.

В общем, как мне кажется, сегодня типовые вопросы про структуры данных могут годиться лишь для отсева редкостно ленивых кандидатов, не удосужившихся прочитать хотя бы такой FAQ. К “фундаментальному образованию”, о котором говорит [info]knutov, эти вопросы отношения уже не имеют.

PS Кстати, к вопросу о 57 школе. Уже давно собираюсь написать некую “рвущую шаблон” вещь о ней. Писать или не надо?