avva: (Default)
[personal profile] avva
Что судить следует по делам, а не по словам - трюизм; но на практике его нелегко оказывается применять, когда слова очень правильные. Три примера, которые мало кому будут интересны.

2. До того, как я начал работать в Гугле пару лет назад, я почти ни разу не интервьюировал никого (хотя бы потому, что большую часть карьеры был фрилансером). В Гугле мне сразу пришлось интервьюировать, и очень много - одно время стандартно по два интервью в неделю, и это при том, что, учитывая подготовку и отчет, на каждое уходило минимум три часа. Со временем нагрузка стала снижаться, а где-то год назад и вообще сошла на нет.

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

Поначалу мне было неловко просить, скажем, обладателя Ph.D. в алгоритмической области, или профессионала с 10-летним стажем, написать двоичный поиск в отсортированном массиве. Где-то после третьего случая, когда попытка завершилась полным провалом, неловкость куда-то исчезла. Снова и снова мне попадались случаи, когда кандидат блестяще отвечал на все вопросы - теоретические и практические - и совершенно не мог написать достаточно простой код.

[livejournal.com profile] ivan_ghandhi недавно нашел очень удачную на мой взгляд метафору, в разговоре о том, как инженеры, которые не умеют писать код, проходят интервью: «They talk. It's a theory for them. Say, you are a literary critic; and they are hiring a writer. "Tell me about the archetypal novel structure", "what would you avoid when writing a dialog between two elderly women on a cruise boat?"»

Так вот и получается.

Мне не хотелось бы, кстати, создать впечатление того, что я в белом, а кругом все в говне. Среди тех, кого я интервьюировал, были и люди, очень хорошо писавшие код, лучше меня. Некоторые из них теперь работают рядом. Да и все слова выше о том, что можно говорить умно и правильно, и быть при этом совершенно непродуктивным программистом, относятся и ко мне лично. Я в целом неплохо работаю сейчас, по собственной оценке, но в прошлые годы были времена, когда прокрастинация настолько овладевала мной, что месяцами я не мог сделать буквально ничего полезного. При этом в то время так же, как сейчас, я мог бы вам очень подробно рассказать свои супер-умные мысли про OOP, agile, динамические и статические языки программирования, ядро Windows NT в сравнении с Линуксом, и многое-многое еще. Никому не посоветую судить о том, какой я программист, только по словам, которые я говорю или пишу - включая эту самую запись. Всегда смотрите на код.

Date: 2009-07-05 08:11 pm (UTC)
From: [identity profile] inkogniton.livejournal.com
Это понятно - я бы с этого начала - с самых тривиальных случаев. Потом, конечно, разделить на случаи когда длина четна и нечeтна (на самом деле, делить на случаи не надо, если есть функция, которая возвращает "целое значение", но даже если её нет, её, как раз, одна минута написать) и так далее - но то, что меня удивляет, что я-то совершенный дуб - просто хуже не бывает - а такое смогла бы:) То есть, это какое-то совершенно простое задание:)

Date: 2009-07-05 09:04 pm (UTC)
From: [identity profile] avva.livejournal.com
Так и задумано, чтобы задание на написать код было простое. Алгоритмические задания сложнее :)

Date: 2009-07-19 09:43 pm (UTC)
From: [identity profile] recontemplator.livejournal.com
Ваши слова отличная иллюстрация к теме поста. :-) Эта простая задача, всегда была одной из любимых при проведении собеседований. А после, известной, публикации Блоха http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html я с ней, как Мотроскин с коровой, "никогда не расстанусь".
Попробуйте честно написать свою версию до того как заглянете по ссылке, и сравните с "академическим" решением. Заинтригую тем, что в реализации от Sun в JDK нашли ошибку лишь спустя 9 лет после выхода!
Полностью согласен с Анатолием, умение писать код ортогонально умению говорить о том как нужно писать код. Мое суждение основано на репрезентативной выборке, лично прособеседовал около 5 сотен кандидатов, а решение о найме на основании скриптов интервью принимал по тысячам. Так как работаю я в менее притягательной для претендентов компании, то иногда приходится даже уговаривать кандидатов, написать код. Извинятся за то что мы вынуждены попросить это сделать, что в способностях именно этого кандидата сомнений никаких нет, простая формальность. К сожалению, тут зависимость, практически, прямая, чем дольше кандидат "отнекивается" тем хуже оказывается результат.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 06:48 am
Powered by Dreamwidth Studios