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 в сравнении с Линуксом, и многое-многое еще. Никому не посоветую судить о том, какой я программист, только по словам, которые я говорю или пишу - включая эту самую запись. Всегда смотрите на код.
Page 1 of 2 << [1] [2] >>

Date: 2009-07-05 05:18 pm (UTC)
From: [identity profile] amigofriend.livejournal.com
Всегда смотрите на код вперёд!

Date: 2009-07-05 05:19 pm (UTC)
From: [identity profile] meangel.livejournal.com
"недавно нашел очень удачную на мой взгляд метафору"

Критик ответит на первый вопрос, но не ответит на второй. Чтобы ответить на второй, таки-надо быть writer-ом.

Date: 2009-07-05 10:30 pm (UTC)
From: [identity profile] katren.livejournal.com
а какой ответ на второй вопрос? любопытно.

(no subject)

From: [identity profile] meangel.livejournal.com - Date: 2009-07-05 10:33 pm (UTC) - Expand

Date: 2009-07-05 05:24 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Ну а тогда как различать тех, кто не могут написать код потому, что ими овладела прокрастинация (или, скажем, интервьюирный мандраж) от тех, кто код писать не могут, потому что не умеют? Я не знаю, кстати. Приходится просто не задаваться этим вопросом.

Date: 2009-07-05 05:40 pm (UTC)
From: [identity profile] msh.livejournal.com
Мы даем задание и оставляем наедине с компьютером на пару часов. Если человек не может писать в таких условиях, то врядли мы сможем ему все равно обеспечить лучше для работы.

(no subject)

From: [identity profile] ktotam.livejournal.com - Date: 2009-07-05 06:00 pm (UTC) - Expand

(no subject)

From: [identity profile] ponomarevmv.livejournal.com - Date: 2009-07-06 07:43 pm (UTC) - Expand

(no subject)

From: [identity profile] javax-slr.livejournal.com - Date: 2009-07-05 06:22 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2009-07-05 06:37 pm (UTC) - Expand

(no subject)

From: [identity profile] javax-slr.livejournal.com - Date: 2009-07-05 06:41 pm (UTC) - Expand

(no subject)

From: [identity profile] raindog-2.livejournal.com - Date: 2009-07-05 06:31 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2009-07-05 06:37 pm (UTC) - Expand

(no subject)

From: [identity profile] cema.livejournal.com - Date: 2009-07-05 07:00 pm (UTC) - Expand

(no subject)

From: [identity profile] zhenyach.livejournal.com - Date: 2009-07-07 03:27 am (UTC) - Expand

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

Date: 2009-07-05 05:32 pm (UTC)
From: [identity profile] slavka.livejournal.com
Gets Things Done is crucial. People who are Smart but don't Get Things Done often have PhDs and work in big companies where nobody listens to them because they are completely impractical. (http://www.joelonsoftware.com/articles/fog0000000073.html)
...
Would you hire a magician without asking them to show you some magic tricks? Of course not.

Would you hire a caterer for your wedding without tasting their food? I doubt it. (Unless it's Aunt Marge, and she would hate you forever if you didn't let her make her "famous" chopped liver cake).

Yet, every day, programmers are hired on the basis of an impressive resumé or because the interviewer enjoyed chatting with them.
(http://www.joelonsoftware.com/articles/fog0000000043.html)

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

Date: 2009-07-05 07:06 pm (UTC)
From: [identity profile] amigofriend.livejournal.com
Would you hire a fisherman without asking him to show you some cod?

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

From: [identity profile] white-lee.livejournal.com - Date: 2009-07-05 07:14 pm (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-05 11:24 pm (UTC) - Expand

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

From: [identity profile] dimrub.livejournal.com - Date: 2009-07-05 07:55 pm (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-05 11:23 pm (UTC) - Expand

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

From: [identity profile] a-bronx.livejournal.com - Date: 2009-07-07 06:55 am (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-05 11:35 pm (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-06 03:27 am (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-06 03:30 am (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-06 03:35 am (UTC) - Expand

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

From: [identity profile] white-lee.livejournal.com - Date: 2009-07-06 04:28 am (UTC) - Expand

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

From: [identity profile] amigofriend.livejournal.com - Date: 2009-07-06 04:49 am (UTC) - Expand

Date: 2009-07-05 05:40 pm (UTC)
From: [identity profile] trurle.livejournal.com
Хуже кандидата, претендующего на должность программиста, но не умеющего писать код, бывает только кандидат не умеющий считать до трех не умеющий читать. Как я сейчас.

Date: 2009-07-05 05:40 pm (UTC)
From: [identity profile] grur.livejournal.com
Ок, покажи код.

Date: 2009-07-05 07:35 pm (UTC)
From: [identity profile] avva.livejournal.com
Дык я ж вроде не ищу работу?

Вообще, единственное, что я писал, что находится в открытом доступе, и это законченный проект, а не один-два патча, это наверное memcached. Я его правда года четыре уже не касался, но подозреваю, что процентов 50 C-шного кода до сих пор мои.

(no subject)

From: [identity profile] grur.livejournal.com - Date: 2009-07-05 08:16 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 09:43 pm (UTC) - Expand

(no subject)

From: [identity profile] silly_sad.livejournal.com - Date: 2009-07-06 06:06 am (UTC) - Expand
From: [identity profile] bars-of-cage.livejournal.com
а почему гмейл сохраняет пришедшие Word-вложения как default.doc? это же страшно неудобно, всякий раз вручную переименовывать
From: [identity profile] squadette.livejournal.com
это видимо файерволл, как это ни странно

у всех остальных он сохраняет как было

Date: 2009-07-05 06:10 pm (UTC)
From: [identity profile] type-mismatch.livejournal.com
Скажите, а задачки всегда были примерно такой сложности, как описано, или иногда что-то существенно труднее?

Date: 2009-07-05 06:16 pm (UTC)
From: [identity profile] avva.livejournal.com
На то, чтобы написать работающий код, задачки обычно не трудные. Бывали труднее описанных, но существенно - не думаю. Смысл такого задания - именно в проверке способности написать работающий код.

Задачки на придумать или проанализировать алгоритм (но не написать его), конечно, труднее, чем двоичный поиск.

Date: 2009-07-05 06:20 pm (UTC)
From: [identity profile] javax-slr.livejournal.com
PhD - специфика гугля.
Я интервьюировал много, в разных фирмах и страдал в основном от того, что люди с опытом 5-7 лет, прекрасным резюме, а ни слов правильных не знают,ни код писать не умеют.

Так много терял время, что некий минимум вопросов стал по телефону задавать, если возможно (когда не через асамот), чтобы первичный отсев провести.

Date: 2009-07-05 07:13 pm (UTC)
From: [identity profile] lelia-br.livejournal.com
очень интересно понять что это занчит "код писать не умеют". вы например попросите написать там binary tree insert/delete, что вы видите?

(no subject)

From: [identity profile] javax-slr.livejournal.com - Date: 2009-07-05 07:16 pm (UTC) - Expand

Date: 2009-07-05 06:28 pm (UTC)
From: [identity profile] pustovek.livejournal.com
Универсальная истина.

Date: 2009-07-05 06:29 pm (UTC)
From: [identity profile] inkogniton.livejournal.com
А двоичный, в смысле бинарный; массив это, я так понимаю, array? (извиняюсь, я по-русски эту терминологию почти совсем не понимаю) . То есть тот, который пополам, снова пополам и так далее? Это имеется в виду? Просто уточняю - сама теоретик совершенный - но если это оно, такое даже я могу - а я дуб:)

Date: 2009-07-05 07:59 pm (UTC)
From: [identity profile] avva.livejournal.com
Да, это имеется в виду. В этом задании основная сложность - написать его действительно правильно, т.е. тщательно учесть все edge cases во время деления пополам, правильно построить главный цикл, сделать все так, что если передатут массив размером 0 или 1, функция возвращает правильный результат, такого рода вещи.

(no subject)

From: [identity profile] inkogniton.livejournal.com - Date: 2009-07-05 08:11 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 09:04 pm (UTC) - Expand

(no subject)

From: [identity profile] recontemplator.livejournal.com - Date: 2009-07-19 09:43 pm (UTC) - Expand
(deleted comment)

(no subject)

From: [personal profile] alexeybobkov - Date: 2009-07-07 02:02 am (UTC) - Expand

(no subject)

From: [identity profile] recontemplator.livejournal.com - Date: 2009-07-20 09:42 am (UTC) - Expand

Date: 2009-07-05 06:37 pm (UTC)
From: [identity profile] denies.livejournal.com
почти сразу после вашего поста в ленте шел пост [livejournal.com profile] avvas: "Если бы мы не знали его [Бродского] стихов, а только его высказывания о поэзии, у нас возникло бы абсолютно превратное представление о том, какие стихи пишет Бродский" (Лев Лосев). (http://avvas.livejournal.com/3616650.html) забавное совпадение мыслей.

Date: 2009-07-05 06:43 pm (UTC)
From: [identity profile] gershshpraihler.livejournal.com
код писать любой дебил может. ты его закон ома спроси.

Date: 2009-07-05 06:59 pm (UTC)
From: [identity profile] lelia-br.livejournal.com
А что ты имеешь в виду когда говоришь "не могут писать код"? Меня попросили написать merge sort у вас. Ну, написала, 10 (максимум) строчек кода. Я уверенна что правильно, а интервью я не прошла. Чего такого я могла понаписать?

Date: 2009-07-05 07:04 pm (UTC)
From: [identity profile] iratus.livejournal.com
а почему вы решили, что не прошли именно из-за кода?

(no subject)

From: [identity profile] lelia-br.livejournal.com - Date: 2009-07-05 07:14 pm (UTC) - Expand

(no subject)

From: [identity profile] iratus.livejournal.com - Date: 2009-07-05 07:29 pm (UTC) - Expand

(no subject)

From: [identity profile] lelia-br.livejournal.com - Date: 2009-07-05 08:31 pm (UTC) - Expand

Date: 2009-07-05 07:02 pm (UTC)
From: [identity profile] iratus.livejournal.com
Я двоичный поиск сходу напишу, но зачем?
Скажем я в своих областях редко когда пишу код такого плана. Кстати, часто хороший программист - это не тот кто пишет сам все с нуля, а тот кто умеет правильно и эффективно найти, понять и воспользоваться чужим кодом.
с тем же поиском, я найду тот алгоритм, который подходит для моего конкретного случая, найду код, проверю его и вперед.

Date: 2009-07-05 07:33 pm (UTC)
From: [identity profile] avva.livejournal.com
Ну вот поскольку в режиме интервью не очень получится дать тебе "найти тот алгоритм, найти код, проверить его", тебя и просят написать что-то простое. Это не задание на то, что ты умеешь писать алгоритм с нуля. Это задание на то, что ты умеешь писать код.

(no subject)

From: [identity profile] iratus.livejournal.com - Date: 2009-07-05 07:42 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 07:47 pm (UTC) - Expand

Date: 2009-07-05 07:17 pm (UTC)
From: [identity profile] white-lee.livejournal.com
Всегда смотрите на код.
Хотел было пошутить насчет того, что посмотрел на source этой записи, но вспомнил, что ты действительно работал в ЖЖ, и можешь быть к нему причастным. Это вышло уж слишком замысловатой шуткой с рекурсией :)

Date: 2009-07-05 07:55 pm (UTC)

:)

Date: 2009-07-05 07:26 pm (UTC)
From: [identity profile] greps.livejournal.com
Ах, не берут у вас и тех кто умеет...

Re: :)

Date: 2009-07-05 07:29 pm (UTC)
From: [identity profile] avva.livejournal.com
Это верно, увы. Из всех, кого я рефернул, не взяли ни одного, а среди них было как минимум двое человек, а то и больше, сильнее меня. Процесс довольно неплохо - не идеально - отсеивает плохих кандидатов, а в том, что касается хороших, это почти лотерея :(

Re: :)

From: [identity profile] iratus.livejournal.com - Date: 2009-07-05 07:31 pm (UTC) - Expand

Re: :)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 07:52 pm (UTC) - Expand

Date: 2009-07-05 07:27 pm (UTC)
From: [identity profile] buddha239.livejournal.com
А задачки помогают отсеять прокрастинирующих?:)

Date: 2009-07-05 09:05 pm (UTC)
From: [identity profile] avva.livejournal.com
Не очень, кстати.

Date: 2009-07-05 07:36 pm (UTC)
From: [identity profile] dmpogo.livejournal.com
А в Гугл только кодеры нужны или там еще чем по-интереснее тоже занимаются ?
Или просто вы лично были ответственны за такие позиции ?

Date: 2009-07-05 07:45 pm (UTC)
From: [identity profile] avva.livejournal.com
Гугл не верит в пользу "архитекторов" и других подобных инженерных позиций, обладатели которых не пишут код, а другим говорят, что писать. Таких позиций у нас нет. И самые senior и влиятельные инженеры, руководящие или организующие большие проекты, в том числе пишут код сами, и обязаны уметь писать код сами. Наверное, есть несколько редких исключений, но это редкие исключения.

Мне эта политика в целом нравится.

Не пишут код PM-ы (хотя тоже бывают умельцы) и менеджеры.

(no subject)

From: [identity profile] starshoj.livejournal.com - Date: 2009-07-05 08:06 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 08:58 pm (UTC) - Expand

(no subject)

From: [identity profile] starshoj.livejournal.com - Date: 2009-07-05 09:41 pm (UTC) - Expand

(no subject)

From: [identity profile] greps.livejournal.com - Date: 2009-07-05 08:10 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 09:44 pm (UTC) - Expand

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2009-07-05 08:13 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-05 09:14 pm (UTC) - Expand

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2009-07-06 12:26 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-06 01:40 am (UTC) - Expand

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2009-07-06 05:40 am (UTC) - Expand

:O

From: [identity profile] greps.livejournal.com - Date: 2009-07-06 05:06 pm (UTC) - Expand

Re: :O

From: [identity profile] avva.livejournal.com - Date: 2009-07-06 05:08 pm (UTC) - Expand

Re: :O

From: [identity profile] greps.livejournal.com - Date: 2009-07-06 05:19 pm (UTC) - Expand

(no subject)

From: [identity profile] dmpogo.livejournal.com - Date: 2009-07-06 07:57 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2009-07-06 09:00 am (UTC) - Expand

(no subject)

From: [identity profile] rruben.livejournal.com - Date: 2009-07-18 04:25 pm (UTC) - Expand

Date: 2009-07-05 08:04 pm (UTC)
From: [identity profile] starshoj.livejournal.com
А правильно ли нанимать"обладателя Ph.D. в алгоритмической области" писать код?

Date: 2009-07-05 08:13 pm (UTC)
From: [identity profile] olgabrook.livejournal.com
Толик, ты, как всегда, прав.
А про прокрастинацию это интересно - ты смог победить?

P.S. Привет из Бостона...

Date: 2009-07-05 08:31 pm (UTC)
From: [identity profile] alta-voce.livejournal.com
Вечные истины изрекаешь, как будто Вселенная и не переворачивалась, и коды не пишутся в Индии и Марокко... :-(

Date: 2009-07-05 08:45 pm (UTC)
cat_mucius: (Default)
From: [personal profile] cat_mucius
При этом в то время так же, как сейчас, я мог бы вам очень подробно рассказать свои супер-умные мысли про OOP, agile, динамические и статические языки программирования, ядро Windows NT в сравнении с Линуксом, и многое-многое еще.

С удовольствием послушаю, если Вам не будет влом.

Date: 2009-07-05 10:09 pm (UTC)
From: [identity profile] pollak.livejournal.com
Написть код поиска на интервью может быть сложно психологически.

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

Date: 2009-07-06 01:19 am (UTC)
From: [identity profile] ponomarevmv.livejournal.com
есть прогрессивные компании, рассылающие так называемые "тестовые задания". весьма забавно потом наблюдать, как человек приславший тебе это задание не в состоянии понять, что к чему в адекватно написанном коде.

(no subject)

From: [identity profile] cema.livejournal.com - Date: 2009-07-06 11:25 pm (UTC) - Expand

Date: 2009-07-06 01:16 am (UTC)
From: [identity profile] ponomarevmv.livejournal.com
я не буду ударяться в критические рассуждения. скажу лишь одно - вся эта статья яйца выеденного не стоит без указания, что такое "уметь писать код". однако, автор, похоже, таки не потрудился хотя бы приблизительно обозначить суть явления - "уметь писать код", в его понимании.
ЗЫ кстати, просить на собеседовании написать какой-то код (под конкретную, или абстрактную задачу), по моему, есть пустая трата времени.
Page 1 of 2 << [1] [2] >>

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 04:19 am
Powered by Dreamwidth Studios