Fatal_error пишет: > >
Жуть.
Особенно повесилило про карму и 100 строк за час.
Кстати теперь становится понятно, почему последнее время мне даже для
поиска в рунете гуглом все чаще приходиться пользоваться.
интервью с Анатолием Орловым, руководителем отдела инфраструктуры веб-поиска компании «Яндекс»
Какие отношения ты выстраиваешь с подчинёнными?
У нас очень демократичная компания, у меня хорошие отношения с сотрудниками, со многими из них мы дружим. Всё определяется понятием «корпоративная культура», в которую не все верят, но она, наверное, есть. У нас настолько демократичная атмосфера, что начальник не может зайти к сотруднику и заставить его делать что-то определённым образом, потому что он должен его убедить. Иногда я жалею, что у нас не тоталитаризм, потому что очень сложно собрать 30 человек и заставить их договориться: они все думают по-разному, и эту задачу приходится решать окольными путями. Я думаю, что большинство талантливых людей, которые здесь есть, в других условиях работать бы просто не стали.
Что представляет из себя твоя команда?
На первый взгляд всё это выглядит, как кавардак, но, как ни странно, мы очень неплохо работаем. В такой среде очень важное значение имеют такое явление, как opinion-лидеры, которых слушают. Это необязательно руководители, это могут быть хорошие программисты. Правильные слова: наш коллектив – это нечто среднее между Академией наук и детским садом.
Особый критерий оценки программиста в «Яндексе».
Простейший пример – у нас есть шутка про карму, что у разработчика есть карма. Откуда взялось это слово? У нас есть система контроля версий, а когда в ней нет прав куда-то закоммититься, она говорит: «Not enough karma». И вот у нас есть такая полушутка, что есть разработчики с большой кармой. Если программист сделал что-то хорошее, например, запустил что-то серьёзное, у него растёт карма, если он сделал что-то плохое, то у него падает карма. Чем больше у разработчика карма, тем больше у него возможности влиять на окружающую действительность. С одной стороны мы это рассматриваем, как полушутку, а с другой стороны – в обсуждении можно услышать аргумент вроде «вот эту задачу будет делать вот этот разработчик, так как у него карма больше».
Какие требования ты предъявляешь к программистам?
Человек, который ко мне пришёл, во-первых, должен уметь программировать на своем основном языке программирования – это значит, что за час он должен уметь написать программу размером в сто строк, и чтобы эта программа не упала на старте. Как ни странно, уже этот критерий отсекает большое количество людей. Во-вторых, мы хотим от наших программистов некоторой базовой алгоритмической подготовки – чтобы, например, алгоритм сортировки или сложная структура типа B-дерева не вызывала у программиста шок. Также я обычно спрашиваю, чем программист до этого занимался. И если человек не может внятно объяснить сущность его работы, это тоже вызывает некоторые подозрения.
Здравствуйте, Sanik, Вы писали:
A>>Чем именно если не секрет тебя это повеселило?
S>Видимо, именно то, что 100 строк за час — это круто. S>Уважаемый Anatolix, а Ваша продуктивеность в yandex — 800 стабильных NCLOC в день?
Вообще кусочек вырван из контекста. Имелось ввиду собеседование и достаточно простой код. Да я безусловно могу за час написать и отладить например алгоритм сортировки размером в 100 строк по его описанию(даже сейчас не программировав серьезно уже год).
Что 800 LOC в день в большой production системе это нереально, это конечно правда(мне кажется это даже для недели очень хороший результате), но в основном это нереальным делает не то, что физически нельзя думать и давить на кнопки с такой скоростью, а все-таки необходимость тестирования и большой codebase вокруг них. Новую программу с нуля в 800 строк за день написать вполне можно.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Почему?
V>Особенно повесилило про карму и 100 строк за час.
Чем именно если не секрет тебя это повеселило?
V>Кстати теперь становится понятно, почему последнее время мне даже для V>поиска в рунете гуглом все чаще приходиться пользоваться.
И какая связь?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Uzumaki Naruto, Вы писали:
UN>Всегда считал подсчет строк в коде бредом... а особенно мерить эффективность работы человека этим параметром.
эффективность != продуктивность (см. мой пост на который вы ответили)
Anatolix пишет: > > V>Жуть. > > Почему?
Ну потому что меня подобное поразило по многим причинам, объяснять, что
мне не нравиться, смысл? мое восприятие исключительно субъективное.
Возможно 90% программистов от подобного наоборот тащатся.
> > V>Особенно повесилило про карму и 100 строк за час. > > Чем именно если не секрет тебя это повеселило?
Вот именно это и про карму плохую и хорошую (это больше индусам
свойственно, а не европейцам) и про 100 строк кода за час (по моему
опыту програмерскому обычно подобный код даже не рефакторить
приходиться, а просто выкидывать, ну нельзя из Г. конфету сделать, все
одно Г. будет.)
> > И какая связь?
Прямая, как бы мы не ругали руководство, но по сути единственный
человек, который может написать программу хорошо или плохо — это
программист. А руководство виновато лишь тем, какого программиста оно
нашло и насколько оно позволяет/не позволяет эффективно/не эффективно
работать.
> Любая проблема дизайна может быть решена введением дополнительного > абстрактного слоя, за исключением проблемы слишком большого количества > дополнительных абстрактных слоев
Ага.
Anatolix пишет: > > Новую > программу с нуля в 800 строк за день написать вполне можно.
И выкинуть ее. Сколько видел, гораздо эффективнее и качественнее код
выходит, если человек сначала думает а потом пишет 3 строчки, чем
сначала пишет 100 строчек, а потом думает.
По моему опыту, чем человек меньше кода пишет, тем код качественнее.
Здравствуйте, Anatolix, Вы писали: V>>Особенно повесилило про карму и 100 строк за час.
A>Чем именно если не секрет тебя это повеселило?
ИМХО тут ты перегнул. Одно дело написать программу 100 строк, которая не упадет при первом запуске, на C# в студии с установленным решарпером, а совсем другое — на С в нотепаде. Во втором случае я гарантирую что хрен она скомпилится с первой попытки
Здравствуйте, Sanik, Вы писали:
S>Видимо, именно то, что 100 строк за час — это круто. S>Уважаемый Anatolix, а Ваша продуктивеность в yandex — 800 стабильных NCLOC в день?
У меня за последний примерно месяц продуктивность — около -48500 строк (переписал 50 000 строк кода на PHP полутора тысячами на Python).
Здравствуйте, Anatolix, Вы писали:
A>Что 800 LOC в день в большой production системе это нереально, это конечно правда(мне кажется это даже для недели очень хороший результате), но в основном это нереальным делает не то, что физически нельзя думать и давить на кнопки с такой скоростью, а все-таки необходимость тестирования и большой codebase вокруг них. Новую программу с нуля в 800 строк за день написать вполне можно.
И ещё не надо забывать, что в одном проекте участвует большое количество народу. И имхо производительность большого проекта (а таких в Яндексе большинство) в значительной степени определяется налаженным взаимодействием между отделами/разработчиками.
Что до меня, то если судить по количеству строк кода, то я — явный диверсант, и часто так было, что стирал большое количество старого кода — много больше, чем писал нового. И что самое интересное, от этого была какая-то польза.
Курица — это инструмент, с помощью которого одно яйцо производит другие.
[]
>> >> V>Особенно повесилило про карму и 100 строк за час. >> >> Чем именно если не секрет тебя это повеселило? V>Вот именно это и про карму плохую и хорошую (это больше индусам V>свойственно, а не европейцам) и про 100 строк кода за час (по моему V>опыту програмерскому обычно подобный код даже не рефакторить V>приходиться, а просто выкидывать, ну нельзя из Г. конфету сделать, все V>одно Г. будет.)
не надо путать 100 строк _В_ час на каком либо большом проекте, и написание 100 строк за час, решая какую-то локальную, отвязанную задачу. нету в этом ничего особенного
Здравствуйте, SP_, Вы писали:
V>>>Особенно повесилило про карму и 100 строк за час.
A>>Чем именно если не секрет тебя это повеселило?
SP_>ИМХО тут ты перегнул. Одно дело написать программу 100 строк, которая не упадет при первом запуске, на C# в студии с установленным решарпером, а совсем другое — на С в нотепаде. Во втором случае я гарантирую что хрен она скомпилится с первой попытки
А причем тут нотепад? Вообще все в студии(зачеркнуто) в чем хотят пишут.
Ну и ладно пусть не скопмилится. Существуют ошибки синтаксиса и ошибки показывающие что человек ч-то-то в программировании не догоняет, на первые-то пофиг в принципе.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Здравствуйте, Vzhyk, Вы писали:
>> Новую >> программу с нуля в 800 строк за день написать вполне можно. V>И выкинуть ее. Сколько видел, гораздо эффективнее и качественнее код V>выходит, если человек сначала думает а потом пишет 3 строчки, чем V>сначала пишет 100 строчек, а потом думает. V>По моему опыту, чем человек меньше кода пишет, тем код качественнее.
Абсолютно согласен, в чем point-то?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Anatolix пишет: > >> > Новую >> > программу с нуля в 800 строк за день написать вполне можно. > V>И выкинуть ее. Сколько видел, гораздо эффективнее и качественнее код > V>выходит, если человек сначала думает а потом пишет 3 строчки, чем > V>сначала пишет 100 строчек, а потом думает. > V>По моему опыту, чем человек меньше кода пишет, тем код качественнее. > > Абсолютно согласен, в чем point-то?
В 100 строках в час и выводах из этого. Я например никогда не пишу сто
строк в час и даже 10, и даже не знаю, сколько и не задумывался, потому
как жаль на это время тратить.
А мне про карму понравилось. Слово карма созвучно со словом корма (задняя часть корабля). Тогда смешно получается. У кого карма больше, тот и делает данный проект
(опять пишу всякую чушь)
Здравствуйте, Vzhyk, Вы писали:
>> V>И выкинуть ее. Сколько видел, гораздо эффективнее и качественнее код >> V>выходит, если человек сначала думает а потом пишет 3 строчки, чем >> V>сначала пишет 100 строчек, а потом думает. >> V>По моему опыту, чем человек меньше кода пишет, тем код качественнее. >> >> Абсолютно согласен, в чем point-то? V>В 100 строках в час и выводах из этого. Я например никогда не пишу сто V>строк в час и даже 10, и даже не знаю, сколько и не задумывался, потому V>как жаль на это время тратить.
Я тоже не считаю количество кода в единицу времени и прикидки делаю на глаз,
но у меня все равно получается, что если человек не может написать 10 строк в
течении часа, даже если его попросили — то что-то с ним не так.
btw: Hello, world это уже 4 строки, успеешь за 24 минуты написать работающий hello world?
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
А я бы попробовал попасть на работу в Яндекс, но специализация немного не та (firmware на чистом С). А товарищ мой ходил на интервью, прошел 40% , говорит-собирается попробовать еще раз.