альтернатива физзбаззу
May. 13th, 2013 01:17 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Цитирую из подзамочной записи с разрешения автора, который работает в американской компании и интервьюирует программистов:
Интесная закономерность выявляется. Мы начинаем интервью с того, что просим кандидата прочитать вот такой код, и сказать, что он делает. Как бы он назвал эту функцию?
private static int ok(int a, int b) {
while (a >= b) a -= b;
return a;
}
Пока результаты такие, что после этого вопроса интервью можно заканчивать. Если человек отвечает нормально на этот вопрос, то и дальше отвечает нормально. Если вообще близко не может понять о чем речь, то дальше только хуже.
no subject
Date: 2013-05-13 11:06 pm (UTC)Я вебом занимаюсь и базами данных. Ну умею я сортировку писать, ну и что? Мало ли какую еще фигню я умею. Поверь мне, людей, способных написать элементарный селект из двух таблиц в 100 раз меньше умеющих написать сортировку. Хотя для меня загадка - что там уметь-то? А чтобы разбирался хоть минимально как объекты в памяти лежат - их вообще днем с огнем. Но они все умеют писать сортировку и задавать им такие задачки бессмысленно. А других лучше к коду не подпускать, пусть хоть 20 разных сортировок напишут.
Хотя, если берешь на работу студента - может и имеет смысл такие задачки давать.
no subject
Date: 2013-05-14 10:36 am (UTC)no subject
Date: 2013-05-14 02:49 pm (UTC)no subject
Date: 2013-05-14 04:40 pm (UTC)Я тебе прям позавидовал, с таким подходом :)
У меня есть с десяток проектов, написанных десять лет назад большими командами людей, которых я никогда не видел. Некоторые из этих людей были гениями, некоторые - середняками, некоторые - банально тупыми. (Плюс они иногда переходили из одного состояния в другое, видимо). К сожалению, в коде довольно трудно понять, какой кусок кем написан. Поэтому мне крайне важно умение отличать функцию, которая написана неправильно, от функции, которая банально не нужна.
Поверь мне, людей, способных написать элементарный селект из двух таблиц в 100 раз меньше умеющих написать сортировку.
Ну дык! Поэтому логично человека, неспособного написать сортировку, к базам данных вообще не допускать, не так ли?
Мне нужны специалисты по реалтайму, сетевым протоколам и ядру. Найти ТОЧНО то, что нужно, практически невозможно, поэтому приходится искать людей, которые смогут научиться в процессе.
Я могу сходу дать задачу максимальной сложности (в твоем случае - попросить написать какой-нибудь хитрый запрос к базе данных), а если не смогут - начать двигаться в сторону более простых задач, пока не определю уровень знаний. Либо я могу начать с более простых и двигаться в сторону более сложных, опять же пока не натолкнусь на задачу, которую человек решить не может.
И мой печальный опыт показывает несколько вещей:
- верить никому нельзя. Даже наличие нескольких лет опыта в серьезной компании не гарантирует, что человек напишет сортировку пузырьком или найдет остаток от деления.
- вышеприведенная задача находится на том уровне сложности, на котором большая часть соискателей уже срубается. И студентов, и людей с 5-10 годами опыта. Они банально не умеют читать код и уж подавно не умеют его писать. Я не знаю, что является причиной - скорее всего, эти годы они занимались какими-нибудь узкими задачами со специализированными фреймворками, но уровень соискателей ЧУДОВИЩНЫЙ.
Может быть, конечно, это мне так везет. Я точно знаю, что хорошие программисты встречаются, и видел их следы в интернете и даже лично знаю многих - но 90% соискателей, к сожалению, функционально неграмотны.
UPDATE: я дописал предыдущее предложение, но не успел отправить комментарий, потому что пришел очередной кандидат. Так вот - я дал ему этот код и попросил обьяснить, что там происходит и что в этой функции неправильного. В процессе обсуждения выяснилось: тот факт, что целые числа могут принимать отрицательные значения, явился для него откровением. Согласись, знает ли он, как обьекты в памяти лежат или нет, уже неважно.
no subject
Date: 2013-05-14 05:18 pm (UTC)Ну а в вебе мне знание фреймворка надо, особенно сложного программирования там нет, зато всяких побочных знаний до фига и учить всему этому я абстрактного программиста замучаюсь. Программист, который знает фреймворк, да еще знает как это внутри устроено, да еще в алгоритмах разбирается, паттерны знает и т.д. - такой программист встречается в природе, но стоит дорого, меньше чем на 100 тысяч не пойдет, и простые формы рисовать не станет. А тот, который стоит подешевле - сортировку может и не написать. Найти канарейку за копейку, чтобы она пела и ничего не ела - задача малореальная. Те кто все умеют - либо сами давно начальники и кода не пишут, либо бездельники вроде меня, творческая публика, сегодня работает, а завтра ему надоело. Потому и общий уровень кандидатов такой, потому и код везде кошмарный - нечему удивляться.
Верю я не тому что в резюме написано, я прошу про конкретный проект рассказать и спрашиваю детали какие-нибудь, какие трудности были, какие баги. Если сам писал - это сразу очевидно, можно задачек и не давать. У нас же проблемы более менее однотипные.
К апдейту: А твой соискатель, который не знал, про отрицательные числа, знал что целое число нулем бывает?
no subject
Date: 2013-05-14 08:10 pm (UTC)no subject
Date: 2013-05-15 03:19 am (UTC)