avva: (moose)
[personal profile] avva
Цитирую из подзамочной записи с разрешения автора, который работает в американской компании и интервьюирует программистов:
Интесная закономерность выявляется. Мы начинаем интервью с того, что просим кандидата прочитать вот такой код, и сказать, что он делает. Как бы он назвал эту функцию?

private static int ok(int a, int b) {
   while (a >= b) a -= b;
   return a;
}

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

Date: 2013-05-13 11:06 pm (UTC)
From: [identity profile] polenova.livejournal.com
Эта конкретная - ни за чем не нужна, потому что написана неправильно.
Я вебом занимаюсь и базами данных. Ну умею я сортировку писать, ну и что? Мало ли какую еще фигню я умею. Поверь мне, людей, способных написать элементарный селект из двух таблиц в 100 раз меньше умеющих написать сортировку. Хотя для меня загадка - что там уметь-то? А чтобы разбирался хоть минимально как объекты в памяти лежат - их вообще днем с огнем. Но они все умеют писать сортировку и задавать им такие задачки бессмысленно. А других лучше к коду не подпускать, пусть хоть 20 разных сортировок напишут.
Хотя, если берешь на работу студента - может и имеет смысл такие задачки давать.

Date: 2013-05-14 10:36 am (UTC)
From: [identity profile] awind.livejournal.com
ну да. в БД сортировка есть, в библиотеке есть, зачем писать? хотя недавно впервые лет за 15 понадобился бинарный поиск, так проще было из Кнута списать, чем индексную арифметику на пальцах проверять.

Date: 2013-05-14 02:49 pm (UTC)
From: [identity profile] polenova.livejournal.com
Бинарный поиск, как и сортировку пузырьком, я с закрытыми глазами пишу, их вечно на интервью спрашивают. И еще обход бинарного дерева и перевернуть линк-лист в обратную сторону - через рекурсию и через цикл. В жизни мне это не пригодилось ни разу. Впрочем, на интервью уже тоже давно не спрашивали, видимо, я из возраста вышла.

Date: 2013-05-14 04:40 pm (UTC)
From: [identity profile] igorbor.livejournal.com
Эта конкретная - ни за чем не нужна, потому что написана неправильно.

Я тебе прям позавидовал, с таким подходом :)
У меня есть с десяток проектов, написанных десять лет назад большими командами людей, которых я никогда не видел. Некоторые из этих людей были гениями, некоторые - середняками, некоторые - банально тупыми. (Плюс они иногда переходили из одного состояния в другое, видимо). К сожалению, в коде довольно трудно понять, какой кусок кем написан. Поэтому мне крайне важно умение отличать функцию, которая написана неправильно, от функции, которая банально не нужна.


Поверь мне, людей, способных написать элементарный селект из двух таблиц в 100 раз меньше умеющих написать сортировку.

Ну дык! Поэтому логично человека, неспособного написать сортировку, к базам данных вообще не допускать, не так ли?

Мне нужны специалисты по реалтайму, сетевым протоколам и ядру. Найти ТОЧНО то, что нужно, практически невозможно, поэтому приходится искать людей, которые смогут научиться в процессе.

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

И мой печальный опыт показывает несколько вещей:
- верить никому нельзя. Даже наличие нескольких лет опыта в серьезной компании не гарантирует, что человек напишет сортировку пузырьком или найдет остаток от деления.
- вышеприведенная задача находится на том уровне сложности, на котором большая часть соискателей уже срубается. И студентов, и людей с 5-10 годами опыта. Они банально не умеют читать код и уж подавно не умеют его писать. Я не знаю, что является причиной - скорее всего, эти годы они занимались какими-нибудь узкими задачами со специализированными фреймворками, но уровень соискателей ЧУДОВИЩНЫЙ.

Может быть, конечно, это мне так везет. Я точно знаю, что хорошие программисты встречаются, и видел их следы в интернете и даже лично знаю многих - но 90% соискателей, к сожалению, функционально неграмотны.


UPDATE: я дописал предыдущее предложение, но не успел отправить комментарий, потому что пришел очередной кандидат. Так вот - я дал ему этот код и попросил обьяснить, что там происходит и что в этой функции неправильного. В процессе обсуждения выяснилось: тот факт, что целые числа могут принимать отрицательные значения, явился для него откровением. Согласись, знает ли он, как обьекты в памяти лежат или нет, уже неважно.

Date: 2013-05-14 05:18 pm (UTC)
From: [identity profile] polenova.livejournal.com
Для твоих задач действительно нужен человек, который вообще хорошо код умеет писать, найти конкретного специалиста трудно. А для моих - ситуация другая. Те кто будут писать на SQL, могут не уметь писать сортировку, им это на хрен не надо. Хитрый запрос я и не прошу - может две таблицы связать - можно дальше разговаривать. Но бывает, что разговор на этом и заканчивается.
Ну а в вебе мне знание фреймворка надо, особенно сложного программирования там нет, зато всяких побочных знаний до фига и учить всему этому я абстрактного программиста замучаюсь. Программист, который знает фреймворк, да еще знает как это внутри устроено, да еще в алгоритмах разбирается, паттерны знает и т.д. - такой программист встречается в природе, но стоит дорого, меньше чем на 100 тысяч не пойдет, и простые формы рисовать не станет. А тот, который стоит подешевле - сортировку может и не написать. Найти канарейку за копейку, чтобы она пела и ничего не ела - задача малореальная. Те кто все умеют - либо сами давно начальники и кода не пишут, либо бездельники вроде меня, творческая публика, сегодня работает, а завтра ему надоело. Потому и общий уровень кандидатов такой, потому и код везде кошмарный - нечему удивляться.
Верю я не тому что в резюме написано, я прошу про конкретный проект рассказать и спрашиваю детали какие-нибудь, какие трудности были, какие баги. Если сам писал - это сразу очевидно, можно задачек и не давать. У нас же проблемы более менее однотипные.
К апдейту: А твой соискатель, который не знал, про отрицательные числа, знал что целое число нулем бывает?

Date: 2013-05-14 08:10 pm (UTC)
From: [identity profile] igorbor.livejournal.com
Да, про ноль он знал. Но он очень многого другого не знал, например, когда я его спросил, что еще в этой функции неправильно, он сказал, что аргументы функции неинициализированы. Это уже вообще за пределами добра и зла, по-моему.

Date: 2013-05-15 03:19 am (UTC)
From: [identity profile] polenova.livejournal.com
Н-да... Все смешалось в доме Облонских. Но ноль заметил, интересно как. Молодой, што ли? Но все равно - пусть идет и учит матчасть. А если старый - пора переквалифицироваться в управдомы.

June 2025

S M T W T F S
123 4 5 6 7
8 910 11 12 13 14
15 16 17 1819 20 21
22 23 24 25 26 27 28
29 30     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 2nd, 2025 03:57 am
Powered by Dreamwidth Studios