?

Log in

No account? Create an account
о словах и делах - 2 - По делам сюда приплыл, а не за этим [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

о словах и делах - 2 [июл. 5, 2009|08:12 pm]
Anatoly Vorobey
Что судить следует по делам, а не по словам - трюизм; но на практике его нелегко оказывается применять, когда слова очень правильные. Три примера, которые мало кому будут интересны.

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

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

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

juan_gandhi недавно нашел очень удачную на мой взгляд метафору, в разговоре о том, как инженеры, которые не умеют писать код, проходят интервью: «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 в сравнении с Линуксом, и многое-многое еще. Никому не посоветую судить о том, какой я программист, только по словам, которые я говорю или пишу - включая эту самую запись. Всегда смотрите на код.
СсылкаОтветить

Comments:
Страница 1 из 3
<<[1] [2] [3] >>
[User Picture]From: amigofriend
2009-07-05 05:18 pm
Всегда смотрите на код вперёд!
(Ответить) (Thread)
[User Picture]From: meangel
2009-07-05 05:19 pm
"недавно нашел очень удачную на мой взгляд метафору"

Критик ответит на первый вопрос, но не ответит на второй. Чтобы ответить на второй, таки-надо быть writer-ом.
(Ответить) (Thread)
[User Picture]From: katren
2009-07-05 10:30 pm
а какой ответ на второй вопрос? любопытно.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: dimrub
2009-07-05 05:24 pm
Ну а тогда как различать тех, кто не могут написать код потому, что ими овладела прокрастинация (или, скажем, интервьюирный мандраж) от тех, кто код писать не могут, потому что не умеют? Я не знаю, кстати. Приходится просто не задаваться этим вопросом.
(Ответить) (Thread)
[User Picture]From: msh
2009-07-05 05:40 pm
Мы даем задание и оставляем наедине с компьютером на пару часов. Если человек не может писать в таких условиях, то врядли мы сможем ему все равно обеспечить лучше для работы.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: amigofriend
2009-07-05 07:06 pm

Re: музыкой навеяло

Would you hire a fisherman without asking him to show you some cod?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: trurle
2009-07-05 05:40 pm
Хуже кандидата, претендующего на должность программиста, но не умеющего писать код, бывает только кандидат не умеющий считать до трех не умеющий читать. Как я сейчас.
(Ответить) (Thread)
[User Picture]From: grur
2009-07-05 05:40 pm
Ок, покажи код.
(Ответить) (Thread)
[User Picture]From: avva
2009-07-05 07:35 pm
Дык я ж вроде не ищу работу?

Вообще, единственное, что я писал, что находится в открытом доступе, и это законченный проект, а не один-два патча, это наверное memcached. Я его правда года четыре уже не касался, но подозреваю, что процентов 50 C-шного кода до сих пор мои.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: bars_of_cage
2009-07-05 05:57 pm

нарекание трудящегося (офф)

а почему гмейл сохраняет пришедшие Word-вложения как default.doc? это же страшно неудобно, всякий раз вручную переименовывать
(Ответить) (Thread)
From: squadette
2009-07-05 06:15 pm

Re: нарекание трудящегося (офф)

это видимо файерволл, как это ни странно

у всех остальных он сохраняет как было
(Ответить) (Parent) (Thread) (Развернуть)
From: type_mismatch
2009-07-05 06:10 pm
Скажите, а задачки всегда были примерно такой сложности, как описано, или иногда что-то существенно труднее?
(Ответить) (Thread)
[User Picture]From: avva
2009-07-05 06:16 pm
На то, чтобы написать работающий код, задачки обычно не трудные. Бывали труднее описанных, но существенно - не думаю. Смысл такого задания - именно в проверке способности написать работающий код.

Задачки на придумать или проанализировать алгоритм (но не написать его), конечно, труднее, чем двоичный поиск.
(Ответить) (Parent) (Thread)
[User Picture]From: javax_slr
2009-07-05 06:20 pm
PhD - специфика гугля.
Я интервьюировал много, в разных фирмах и страдал в основном от того, что люди с опытом 5-7 лет, прекрасным резюме, а ни слов правильных не знают,ни код писать не умеют.

Так много терял время, что некий минимум вопросов стал по телефону задавать, если возможно (когда не через асамот), чтобы первичный отсев провести.
(Ответить) (Thread)
[User Picture]From: lelia_br
2009-07-05 07:13 pm
очень интересно понять что это занчит "код писать не умеют". вы например попросите написать там binary tree insert/delete, что вы видите?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: pustovek
2009-07-05 06:28 pm
Универсальная истина.
(Ответить) (Thread)
[User Picture]From: inkogniton
2009-07-05 06:29 pm
А двоичный, в смысле бинарный; массив это, я так понимаю, array? (извиняюсь, я по-русски эту терминологию почти совсем не понимаю) . То есть тот, который пополам, снова пополам и так далее? Это имеется в виду? Просто уточняю - сама теоретик совершенный - но если это оно, такое даже я могу - а я дуб:)
(Ответить) (Thread)
[User Picture]From: avva
2009-07-05 07:59 pm
Да, это имеется в виду. В этом задании основная сложность - написать его действительно правильно, т.е. тщательно учесть все edge cases во время деления пополам, правильно построить главный цикл, сделать все так, что если передатут массив размером 0 или 1, функция возвращает правильный результат, такого рода вещи.
(Ответить) (Parent) (Thread) (Развернуть)
(Удалённый комментарий)
From: gershshpraihler
2009-07-05 06:43 pm
код писать любой дебил может. ты его закон ома спроси.
(Ответить) (Thread)
[User Picture]From: lelia_br
2009-07-05 06:59 pm
А что ты имеешь в виду когда говоришь "не могут писать код"? Меня попросили написать merge sort у вас. Ну, написала, 10 (максимум) строчек кода. Я уверенна что правильно, а интервью я не прошла. Чего такого я могла понаписать?
(Ответить) (Thread)
[User Picture]From: iratus
2009-07-05 07:04 pm
а почему вы решили, что не прошли именно из-за кода?
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: iratus
2009-07-05 07:02 pm
Я двоичный поиск сходу напишу, но зачем?
Скажем я в своих областях редко когда пишу код такого плана. Кстати, часто хороший программист - это не тот кто пишет сам все с нуля, а тот кто умеет правильно и эффективно найти, понять и воспользоваться чужим кодом.
с тем же поиском, я найду тот алгоритм, который подходит для моего конкретного случая, найду код, проверю его и вперед.
(Ответить) (Thread)
[User Picture]From: avva
2009-07-05 07:33 pm
Ну вот поскольку в режиме интервью не очень получится дать тебе "найти тот алгоритм, найти код, проверить его", тебя и просят написать что-то простое. Это не задание на то, что ты умеешь писать алгоритм с нуля. Это задание на то, что ты умеешь писать код.
(Ответить) (Parent) (Thread) (Развернуть)
Страница 1 из 3
<<[1] [2] [3] >>