Хорошие вопросы
Про вопросы на собеседовании очень многие уже писали. Но мне кажется все писали неправильно :-) Вообще-то я глубоко убеждён в том, что собеседование - процесс практически безнадёжный и что единственный способ понять подходит ли человек для работы - это поработать с ним. Ну поскольку этот способ слишком дорогой, то приходится прибегать к собеседованию.
Все соображения на тему "Как проводить собеседование" напоминают мне одну известную шутку.
Молодую девушку пригласили на свидание и она спрашивает маму - "Как вести беседу?" Мам отвечает - "Ну поговорите сначала о погоде, потом, к примеру, о музыке, а потом скажи что-нибудь остренькое". Во время свидания сразу же после встречи девушка и говорит: "Какая чудная погода, училась музыке три года, бритва."
Так, вот не хочу чтобы так проводились собеседования. На мой вкус самое главное что стоит попробовать проверить - это понимание основ. (Я пишу конечно только про программистов). Просто программист без основ, на мой взгляд, невозможен.
Поэтому я просто приведу примеры вопросов, которые могли бы спровоцировать дискуссию, раскрыть насколько хорошо человек понимает основы (не сгруппированы по тематике):
- Что такое порт? (в смысле TCP/IP порт) Зачем он нужен? (В смысле - для чего используется)
- Зачем нужна операционная система? (В смысле - для чего используется)
- Зачем нужны точки в ip-адресе?
- Как определить в какую сторону растёт стек?
- Зачем нужен компилятор?
- Ведь микропроцессор оперирует исключительно двоичными числами? А как же получаются буквы?
- Что такое программа? (компьютерная программа)
- Что такое "сложность вычисления"?
- Зачем нужны системы управления базами данных? Да и сами базы данных?
- Что такое ASP (или JSP, или PHP, или ... )? На самом деле этот вопрос не совсем то, чем кажется. Я вероятно просто не смог его аккуратно сформулировать. В качестве ответа я конечно ожидал бы не расшифровку аббревиатуры и даже не краткое описание самой технологии. Я ожидал бы беседы о том, как работает типичный web-сайт.
- Вопросы являются лёгкими, если ты знаешь правильные ответы. Это прекрасно!
- "Общими" или даже "расплывчатыми" вопросы сделаны специально - чтобы спровоцировать обсуждение.
- А насчёт того можно ли задавать человеку с 10-летним опытом работы вопрос "что такое программа"... Ну понимаете, представьте себе на секундочку, что он не ответит.
(кстати, в качестве ответа на такой вопрос вполне могут послать в края отдалённые и всем известные ... в большинстве случаев я бы считал это правильным ответом :-))
Понимаете - вопросы, как мне кажется, должны быть не про то как написать некоторую экзотическую конструкцию на не менее экзотическом языке, а на то понимает ли человек ту среду, в которой он работает. Каждый из этих вопросов скорее всего потребует уточняющих вопросов и вполне может привести к дискуссии. В этом и есть их цель.
Более того, мне хотелось бы надеяться, что эти вопросы полезны сами по себе. Что я имею ввиду? Многие вопросы для собеседований ценны только до тех пор, пока кто-то не прочитал на них ответ. В частности, такой проблемой страдают многие "каверзные" вопросы, такие как задача о взвешиваниях 8 монет, перевозе разных тварей через реку и так далее. В большинстве случаев, при задавании подобных вопросов проверяется не столько "логическое" мышление, сколько слышал раньше человек этот вопрос (и ответ на него) или нет.
Я же надеюсь, что вопросы, подобные тем которые я здесь привёл, не теряют своей ценности после того как человек узнал на них ответ. Если я не знал ответа на вопрос зачем нужна операционная система, не понимал этого для себя, принимал её существование как данность, не задумываясь о причинах, по которым люди решили создать подобную сущность, то обсуждение всего этого меня обучит. А это и есть самое главное. А уж научиться отвечать на вопрос о том как в С++ при помощи шаблонов (templates) посчитать факториал на этапе компиляции я смогу позже. Да и нужно ли это?
6 комментариев:
предлагаю еще один вопрос в копилку :)
Что такое тип данных?
Вопрос ставит в тупик большинство программистов. Я его иногда задаю, но не для того чтобы завалить претендента, а так просто послушать.
Вопрос отличный! И,на самом деле, очень глубокий. Очень хорошее обсуждение этого вопроса есть в классической работе: У. Дал, Э. Дейкстра, К. Хоар "Структурное программирование", М., "Мир", 1975
сайт с вопросами задаваемыми программистам на собеседовании http://odoline.ru/content/view/17/11
Все эти вопросы наверное больше бред, чем реальность. Об этом говорят например Шведы в "Караоке-капитализм" и "Бизнес в стиле фанк", еще раньше об этом хорошо сказал Фергюса О'Коннел
http://nvoynov.blogspot.com/2007/04/blog-post_2758.html
Нужно нанимать людей только близких по духу - конкретные навыки прийдут в процессе. И на самом деле на обучение уйдет наверное меньше времени, чем отнимет кадр-специалист, которому будет скучно заниматься тупой работой.
Особенно это проявляется в ИТ, где специализация за горой деревьев не позволяет увидеть леса.
Вот еще на этом сайте выкладываются вопросы для собеседований программиста
К вопросу о хорощих и плохих вопросах,тема и ее проявления не исчерпаемы очередная итерация, причем моментами, как в блоге так и на хобре - довольно прикольная :) http://blogs.gotdotnet.ru/personal/gollum/PermaLink.aspx?guid=f4a1bacb-7ccb-47c6-943e-c045b7c57090
Отправить комментарий