Чтение онлайн

на главную - закладки

Жанры

Кодеры за работой. Размышления о ремесле программиста
Шрифт:

Сейбел: Вы читали книги с литературными программами Кнута?

Норвиг: Листал. Не скажу, что читал.

Сейбел: А как насчет «Искусства программирования»? Одни мои собеседники прочли ее от корки до корки, другие поставили на полку и используют для справок, третьи просто поставили на полку.

Норвиг: Как-то я сделал из нее подставку для монитора — это ведь громадный многотомник, как раз подошел по высоте. Думал, если он будет прямо передо мной, то я, наконец-то, начну его использовать.

Сейбел: Но ведь надо было всякий

раз поднимать монитор?

Норвиг: Нет, тома были в коробке. Если сильно потянуть, можно достать. Сейчас я редко пользуюсь книгами для справки — все больше интернет-поиском.

Сейбел: Потому что так удобнее?

Норвиг: Удобнее. А еще потому, что я теперь больше ориентирован на цель. Кнут хорош, когда нужно узнать о каком-то предмете все. А мне нужно знать, чем А лучше Б, или выяснить приблизительную сложность чего-то, но подробности мне ни к чему.

Сейбел: Кем вы себя считаете — ученым, инженером, художником, ремесленником?

Норвиг: Если взять названия разных книг и тому подобного, больше всего подойдет слово «ремесленник». «Художник» — чуточку претенциозно, потому что искусство должно нести красоту, или устанавливать эмоциональный контакт, или вызывать эмоциональное воздействие. Это не имеет отношения к тому, что я пытаюсь сделать. Конечно, я хочу видеть в программах красоту и трачу на это, пожалуй, слишком много времени. У меня был период в жизни, когда я мог сказать себе: «А не вернуться ли назад, чтобы переписать вон тот кусок?» И когда писал что-то для публикации, тратил на это больше времени, чем ради только личного профессионального роста.

Но это, мне кажется, не искусство. «Ремесло» — вот самый подходящий термин. Вы можете сделать стул, на который приятно смотреть, но это все равно предмет функционального назначения.

Сейбел: Как вы распознаете хорошего программиста, особенно во время собеседования? Ваша компания нанимает много программистов, разумеется, лучших. Как вы их выбираете?

Норвиг: До сих пор не знаем.

Сейбел: Google известен тем, что на собеседованиях претендентам задают логические загадки. Как полагаете, это удачный подход?

Норвиг: Не думаю, что это важно — умеет человек решать такие задачи или нет. Я не люблю задавать головоломные вопросы. Важно дать претенденту техническую задачу, а не поболтать с ним и убедиться, что он — отличный парень. Правда, человек должен еще уметь работать в коллективе. Но прежде всего нужна техническая проверка: умеет ли он делать то, о чем заявляет. Для этого есть много методик. Часто все ясно из резюме. Лучшая рекомендация — если человек работал с кем-то из наших сотрудников и тот может за него поручиться. Но мы стремимся также полноценно использовать собеседование. По большей части для того, чтобы почувствовать, как этот человек думает, как он работает вместе с кем-то. Владеет ли он базовыми понятиями? Может ли он сказать: «Для решения мне нужно знать А, Б и В», — и начать связывать их вместе? Думаю, это можно показать, даже не решив логическую задачу. Соискатель говорит, к примеру: «Я буду решать так: сначала подумаю об этом, потом сделаю это, потом это, а эту часть я, эээ, не совсем понимаю». Кто-то справляется с этой частью, кто-то нет. Но даже если

человек не справился, он может произвести хорошее впечатление тем, насколько компетентно и уверенно подошел к делу. И, конечно, если берешь человека для написания кода, то просишь его написать код на доске. Кто-то подзабыл это дело или не очень хорошо знает — и это видно сразу.

Сейбел: Так это только негативный индикатор? Если человек не может написать вменяемый кусок кода, это плохой признак. Но если может, это вовсе не значит, что он сумеет решать более крупные задачи.

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

Сейбел: Как вы это определяете? Вы ведь ничего не знаете о тех, кого не позвали или кого не наняли.

Норвиг: Это нелегко решить. На обоих уровнях мы отбираем примерно половину народа. В целом, мне кажется, мы спрашиваем себя: «На что похожи резюме тех, кто успешно прошел собеседование?» — и стараемся найти именно таких. Важен ли многолетний опыт? Важна ли работа над проектом с открытым исходным кодом? Играет ли роль победа в конкурсе программистов?

Сейбел: Вы действительно заносите все это в базу данных?

Норвиг: Заносим. И при вопросе о приеме на работу смотрим, каковы показатели по резюме и собеседованию. Это не Библия, но это помогает принять решение — наряду с другими факторами.

Сейбел: Тем, кто проводит собеседование, эти данные сообщают заранее?

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

Мы ставим оценки от 1 до 4. И «единица» — это надежный показатель будущего успеха.

Сейбел: Но ведь надо было в чем-то и отличиться, раз его приняли?

Норвиг: Ну, разумеется, 99%, получивших 1 на одном из собеседований, уходят ни с чем. А что касается оставшихся... Чтобы принять такого человека, кто-то должен стукнуть кулаком по столу и сказать: «Я беру его, потому что уверен в его успехе, а тот, кто счел его плохим программистом, ошибается. Я за него, ставлю на кон свою репутацию».

Сейбел: Значит, в Google собираются только крутые программисты. Сейчас компьютеры и программы заполонили все. Как вы думаете, должен ли каждый хоть немного разбираться в программировании, чтобы уживаться с ними или чтобы понимать мир, в котором мы живем?

Норвиг: Вероятно, вы имеете в виду, что взрослый человек должен разбираться в устройстве программ примерно так же, как в конструкции автомобиля. Но в какой мере этот человек должен быть программистом? Обычный человек сейчас может отредактировать документ, составить электронную таблицу. При некотором опыте обращения с таблицами вы уже немного программист.

Поделиться:
Популярные книги

Газлайтер. Том 16

Володин Григорий Григорьевич
16. История Телепата
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Газлайтер. Том 16

Жена на четверых

Кожина Ксения
Любовные романы:
любовно-фантастические романы
эро литература
5.60
рейтинг книги
Жена на четверых

Мир-о-творец

Ланцов Михаил Алексеевич
8. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Мир-о-творец

Граф Суворов 7

Шаман Иван
7. Граф Суворов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Граф Суворов 7

Дорогой Солнца

Котов Сергей
1. Дорогой Солнца
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
Дорогой Солнца

Шайтан Иван 2

Тен Эдуард
2. Шайтан Иван
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Шайтан Иван 2

Возвышение Меркурия. Книга 14

Кронос Александр
14. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 14

Девяностые приближаются

Иванов Дмитрий
3. Девяностые
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Девяностые приближаются

Царь Федор. Трилогия

Злотников Роман Валерьевич
Царь Федор
Фантастика:
альтернативная история
8.68
рейтинг книги
Царь Федор. Трилогия

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Дочь опальной герцогини

Лин Айлин
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дочь опальной герцогини

Камень. Книга 4

Минин Станислав
4. Камень
Фантастика:
боевая фантастика
7.77
рейтинг книги
Камень. Книга 4

Кодекс Крови. Книга VIII

Борзых М.
8. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга VIII

Небо для Беса

Рам Янка
3. Самбисты
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Небо для Беса