Если вы хотите построить успешную карьеру в сфере разработки ПО, ни в коем случае не увлекайтесь спортивным программированием и участием в конкурсах.

Такой вывод следует из беспристрастной статистики и дата-майнинга рабочих показателей сотрудников Google, рассказал Питер Норвиг в лекции, прочитанной 26 марта 2015 года в Венском техническом университете.



Питер Норвиг (Peter Norvig) — директор по исследованиям в Google, советник Ассоциации по улучшению искусственного интеллекта, автор одного из самых популярных вузовских учебников по ИИ.

Вообще-то, лекция “How Computers Learn” тоже посвящена вопросам искусственного интеллекта и обучению компьютеров. Среди прочего, Питер Норвиг рассказал, как Google использует машинное обучение для найма новых сотрудников и оценки работы разработчиков.

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


Фрагмент ответов на вопросы аудитории, вырезан с отметки 1 ч 11 мин 50 сек в полной видеозаписи лекции

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

Комментарии (85)


  1. veitmen
    06.04.2015 10:36
    +69

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

    Надеюсь никого не обидел, просто мнение сквозь призму своего опыта.


    1. sp1983
      06.04.2015 10:45
      +10

      Сейчас вас набежит, заминусует толпа «олимпиадников», как и автора поста ;)


      1. Alexeyslav
        06.04.2015 11:15
        +12

        Олимпиадников одной-ногой-уже-в-гугле…
        Вообще не удивительно. Ведь олимпиады не имеют ничего общего с повседневностью.


        1. general
          06.04.2015 11:57
          +5

          Еще бы услышать авторитетный ответ на вопрос: нужна ли [высшая] математика программисту?
          Как человек, закончивший с отличием математический факультет и работающий 10 лет программистом, устал доказывать, что высшая математика обычному программисту не нужна.


          1. sp1983
            06.04.2015 12:31
            +19

            А я вот работаю в трейдинговой конторе (программистом), математика — очень часто бывает нужна, в частности мат-статистика ;)


            1. erlyvideo
              08.04.2015 11:12
              +10

              если бы вы работали в химпроме, вам нужна была бы химия.


              1. aikixd
                08.04.2015 12:14
                +1

                Кто нибудь может пояснить, за что человека минусанули?


          1. domix32
            06.04.2015 14:10

            А как же старые добрые матрицы?


          1. Ostrovski
            06.04.2015 14:15
            +10

            Смените работу.


          1. AllexIn
            06.04.2015 14:35
            +9

            Что такое «обычный» программист? Который формочки в Дельфи(или кто там сейчас мейнстрим в формошлепстве) штампует или активити в андроиде? Таки да, такому прогеру математика не нужна.
            Любая более менее серьезная задача требует как минимум умения ориентироваться в вышке.


            1. mukizu
              08.04.2015 13:31

              >Что такое «обычный» программист?

              А что такое более-менее серьезная задача?


              1. amarao
                08.04.2015 17:54
                +1

                Которую может решить менее 50% профессионалов в индустрии, даже если им дать время на обучение и эксперименты.


                1. mukizu
                  08.04.2015 18:42

                  Такая задача совершенно не обязательно подразумевает знание высшей математики.


                  1. amarao
                    08.04.2015 18:47

                    Нет, но в большинстве случаев оно упирается именно в математику. С остальными вещами людям, чаще всего, проще разобраться. А если это не математика, а, например, лингвистика, то там внутрях всё равно математика.


                    1. mukizu
                      08.04.2015 19:03

                      >А если это не математика, а, например, лингвистика, то там внутрях всё равно математика.

                      Нет, ну тогда можно просто сказать, что любая задача так или иначе сводится к математике, ибо компьютер только ее нативно и понимает)


                      1. amarao
                        08.04.2015 20:57

                        Нет, часть проблем сводится не к «решению проблем», а к соблюдению определённых ритуалов и традиций (условно говоря — правильное форматирование кода, использование правильных мест размещения файлов, пакетирование, тесты и т.д.), что вместе называется software engineering.


                1. bushart
                  08.04.2015 19:28

                  Если хорошему специалисту дать время на обучение и эксперименты, то он с одинаковым успехом поднимит свои навыки в любом направление, в том числе и в разных математических категориях.


                  1. amarao
                    08.04.2015 21:55

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


                    1. bushart
                      08.04.2015 22:06

                      Извиняюсь за занудство, но, эта ветка комментариев отошла от комментария, повествующего о некой серьезной задаче. Я так понимаю, что предполагаема задача реальная и не оторвана от реальности. Следовательно и весь объем знаний, необходимый для ее ришения тоже не будет оторван от реальности.
                      Хороший пример B-дерево. Достаточно скучаная тема, но становиться интересной и понятной в контексте изучения области приминения, на пример того, как работают индексы в MySQL.


                      1. amarao
                        09.04.2015 11:40

                        B-tree — это очень плотно и реально. А вот какой-нибудь гомоморфизм самоотображающихся совершенных матриц на кольце альфа-функторов — вот тут вот ой.


          1. AndrewNikolaevich
            06.04.2015 17:17
            +5

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


            1. prishelec
              06.04.2015 23:46
              +2

              Чаще мы просто можем не замечать, что качество кода зависит от тех факторов, про которые как нам кажется, мы уже давно забыли.


          1. 0serg
            06.04.2015 17:37
            +4

            Лично мне очень пригодились линейная алгебра (это вообще всплывает на каждом шагу), теория вероятностей, матстатистика, численные методы (более узкоспециализированно). Сдается мне что в другой компании легко могли бы пригодиться так же теория чисел, комплексный анализ и высшая алгебра.
            Так что есть масса интереснейших проектов где высшая математика чрезвычайно востребована (и, добавлю, хорошо оплачивается)

            Буквально полгода назад у нас в команде (а мы делаем медицинские 3D-сканеры) например пришедший к нам очень сильный математик (и довольно слабый программист) помог свежим подходом из математического анализа и алгебр Ли решить несколько очень серьезных задач, значительно улучшив качество софта. Причем не то чтобы эти задачи ранее не решались вообще. Просто он предложил намного лучшее решение.


            1. Alexeyslav
              07.04.2015 09:39

              Это проекты… ваша задача разрешилась именно на прикладном уровне а не на уровне программирования. Проект — комплексная вещь, состоит из прикладной части и чистого программирования. Вы получили в команду хорошего прикладника и проект продвинулся именно благодаря прикладной его части.


              1. 0serg
                07.04.2015 13:12
                +5

                В конторах с которыми мне доводилось работать не было разделения на программистов и прикладников. Разве что UI мог рисовать отдельный дизайнер. В остальном придумывание того ЧТО кодить чтобы решить поставленную задачу было частью работы программиста. В моем понимании эта часть работы является одним из отличий software engineer-а от индусского кодера.


                1. sigizmund
                  08.04.2015 16:09

                  +1

                  Это раздление устарело лет 40 назад. В моей компании такого разделения вообще нет, и даже UI инженеры не обязательно работают только и исключительно над UI (хотя у всех, понятное дело, есть свои предпочтения и сферы интересов). Инженер он на то и инженер чтобы понимать задачу и решать ее наиболее эффективным способом.

                  (все это не исключает того, что бывают крайне специализированные области, где такое разделение осмысленно).


                  1. Alexeyslav
                    08.04.2015 16:22

                    Разделение это по большей части внутреннее, экономят как могут… зачем двоих держать когда один человек за двоих может работать.


          1. BalinTomsk
            06.04.2015 17:46
            +2

            А кто такой обычный программист?

            Я себя считаю заурядным, хоть и учился по индивидуальному плану в политехе.

            Но в жизни пришлось и заниматся и разработкой нового алгоритма компрессии и прочие алгоритмы упаковки карт, и многое другое, так что пришлось таки SC окончить в Принстоне. Хвала Всевышнему есть crousera.org/.


            1. kluwert
              08.04.2015 20:12

              Да вот в этом и беда, что заурядные программеры лезут алгоритмы сжатия разрабатывать! А потом, дико гордясь своим «произведением», вдруг налетают на реального спеца в этой области и быстро приземляются. «Ой, а что это за энтропия такая?… „


          1. ripatti
            06.04.2015 20:51
            +19

            Встречаются как-то два проктолога. И один другому говорит:
            — Тут коллеги недавно обсуждали вопрос: нужно ли врачу обладать навыками хирурга? Ну там людей уметь резать, операции всякие проводить. Что думаешь по этому поводу?
            — Резать живых людей? Да разве ж это медицина? Я уже 10 лет работаю врачом и еще ни одной операции не провел. Медицина — это когда ковыряешься в заднице. А не то баловство, которым они там занимаются.
            — Вот и я так думаю.


          1. forgotten
            06.04.2015 21:51
            +3

            Слова «высшая математика» как бы заставляют нас усомниться, что вы заканчивали именно математический факультет.


          1. Alexeyslav
            07.04.2015 09:37

            Да собственно и не нужна. Применение математики в программировании — это сугубо прикладная область.
            Если задуматься на секунду, на каком этапе в программировании применяется математика? На уровне тех.задания! После того как техническое задание составлено, то уже никакой математики — начинается программирование.
            И еще один момент. Чистых программистов не бывает, как правило тот кого называют программистом совмещает прикладника и программиста. Так вот той части которая касается программиста математика ненужна!


          1. stcherenkov
            08.04.2015 10:32
            +3

            Я вот тоже долгое время придерживался этого мнения.

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

            Бывают и исключения, но не так часто.


          1. boombick
            08.04.2015 10:35

            Что такое «обычный программист»?
            PS: Я ыот тоже думал, что не нужна, теперь приходится проходить все самостоятельно :) Особенно статистику :)


            1. Alexeyslav
              08.04.2015 11:20
              -1

              Так это ведь прикладная часть, к программированию как таковому отношения не имеет.


          1. amarao
            08.04.2015 17:53
            +1

            А что вы при этом создали?

            По моим наблюдениям, есть люди, которые кодят (и это может быть очень сложный процесс, например, разработка большого распределённого приложения с богатой архитектурой), а есть люди, которые решают задачи.

            Собственно, рядом со мной парочка таких людей сидит. По уши в всяких библиотеках математической оптимизации, игр с решением np-трудных задач с кучей эвристик и т.д.

            Как кодеры — ну просто божьи одуванчики. Как сисадмины — ну просто плакать хочется. С другой стороны, большую часть вещей, которые они решают, я даже понять не могу, ибо статистика под самое немогу.

            Надо различать области, в которых работает человек.


      1. eigrad
        08.04.2015 13:14

        > толпа «олимпиадников»

        откуда бы ей тут взяться))


        1. T-D-K
          08.04.2015 13:19

          Отсюда: codeforces.ru
          В треде уже встречались ники этих людей.


          1. Rumlin
            08.04.2015 18:38

            оттуда

            Ну этот пост просто обречён быть заминусованным.

            codeforces.ru/blog/entry/17301#comments


            1. T-D-K
              08.04.2015 18:42

              Да, но пост-то заплюсовали. :-) Т.к. аудитория там более чем адекватная.


      1. vabolshakov
        08.04.2015 19:37

        не так уж много олимпиадников, сэр)


        1. sp1983
          08.04.2015 20:47

          Ну на самом деле в карму я словил штуки 3 минуса. Впрочем это geektimes, тут всегда найдется кто-то недовольный кто поставит минус в карму за то, что кто-то напишет горькую правду.


  1. zorge_van_daar
    06.04.2015 11:14
    +30

    Всегда считал умение программировать это, как умение рисовать. Умея рисовать можно выполнять разные задачи — писать картины и строить чертежи, делать наброски схем или строить блок-схемы алгоритмов. С программированием те же дела — можно решать узкоспециализированную задачу как олимпиадник, можно делать продукт как разработчик в команде. Разные задачи — разные условия и цели. Например — олимпиадникам не поддерживать свой код, он должен быть быстрый, а не кристально ясный. Говорят, что код научных сотрудников жутко выглядит, но ПО для них не самоцель.
    Говорю как олимпиадник, а потом разработчик.


    1. Ivanhoe
      06.04.2015 11:24
      +22

      Есть мнение, что научить олимпиадника писать хороший код, делать продукт, поддерживать сильно легче, чем не-олимпиадника научить качественно решать сложные алгоритмические задачи.


      1. bachin
        06.04.2015 11:46
        +11

        Есть мнение, что для того чтобы научить человека побеждать на олимпиадах, а потом уже писать хороший код надо потратить больше усилий, чем просто научить писать код.
        Без сомнения, Михаэль Шумахер (дай бог ему выздоровления) отлично справится если его посадить на место таксиста. Но я что-то не вижу большого желания таксопарков нанимать себе пилотов Формулы-1.
        Если и есть подобные примеры — то явно в рекламных целях.


        1. Vapaamies
          06.04.2015 16:42
          +2

          Один раз он уже справился.


        1. Shekeen
          08.04.2015 15:11

          Нет большого желания у пилотов Формулы-1 идти работать в таксопарки. И правильно, зачем оно им?
          А научить писать хороший код гораздо сложнее, чем научить писать код, тут даже олимпиадный background приплетать ни к чему.
          Олимпиадник быстрее придумает, как решить конкретную небольшую прикладную задачу, а умение сделать крупный проект — оно только с опытом приходит, такому не учат, и уже не важно, олимпиадник ты или нет.

          Странное исследование, смысл его совершенно непонятен. Напоминает «потребление мороженого положительно коррелирует с количеством утонувших».


      1. aikixd
        06.04.2015 15:39
        +16

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


        1. vaslobas
          06.04.2015 16:39

          Скорее тест на айкью нужно воспринимать как тест на наличие умственной отсталости.


        1. AndrewNikolaevich
          06.04.2015 17:21

          А что тогда на счёт армейского спорта?


          1. aikixd
            06.04.2015 19:20
            +4

            Спортсмен делает сколько может, солдат сколько надо.


        1. stansult
          08.04.2015 02:56

          Всё вроде было понятно, но в конце запнулся — при чём тут армия?
          У вас отношение такое, если я верно понял:

          олимпиада : работа
          спорт : армия

          По каким же параметрам армия аналогично относится к спорту, как работа — к олимпиаде?


          1. aikixd
            08.04.2015 12:24
            +2

            В армии, как и в работе, нужно выполнять цели и следить, что-бы по мере выполнения вы по своим не палили и работу работали, причем часто за пределами ваших возможностей. В спорте важна только цель. К тоже же у всех там одинаковые условия. Начали в одно время, у всех одинаковые машины, язык, задачи. Так не бывает в реальной жизни.


            1. stansult
              08.04.2015 21:36

              а, ясно
              у меня немного иные ассоциации с армией, видимо :)


      1. namespace
        07.04.2015 09:28
        +4

        «Олимпиадник» — впечатляюще ацтойное слово. Что значит, олимпиадник? Тот, кто в школе / университете занимался спортивным программированием на разных соревнованиях-олипиадах? Вот я сейчас учусь в 10 классе, хожу на киевские по программированию с класса седьмого-восьмого и честно признаться, не хочу, чтобы меня называли «олимпиадником», это даже звучит, как ругательство какое-то.

        Реальность такова, что в проекте у тебя 90% бизнес-логики, прочей рутины и ровно 5-10% алгоритмов. Где-то надо эффективно сделать выборку, где-то надо найти максимальный поток в графе (пишем Форда-Фалкерсона). А подавляющая часть кода: тупые вьюхи и UX (в случае с пользовательскими приложениями). Есть куда более актуальные проблемы: например, работа с базами данных. У меня много знакомых программистов, уже выпускников (sic!) киевских университетов, которые просто не включают мозг при работе с БД.

        Software Engineer не должен быть переученым олимпиадником и не должен быть code monkey, который не слышал о MapReduce. Инженер должен правильно решать поставленные перед ним технические задачи, по возможности, максимально эффективным образом. Спортивное программирование, же, в свою очередь, это хобби. Реального применения у него попросту нет, ведь необходимый набор из пятидесяти с копейками алгоритмов можно освоить не решая задачки с топкодера.


        1. Rasifiel
          07.04.2015 09:37

          В разных компаниях сильно различаются доли того чем занимается разработчик. Особенно если смотреть на Гугл по которому изначальное исследование.


          1. namespace
            07.04.2015 09:41
            +1

            Какое бы это не было пользовательское приложение, бизнес-логики в нем всегда будет намного-намного больше алгоритмической части, что называется, under the hood. Даже если смотреть на Google, где огромная BigData (как я люблю этот термин) и агрессивный хайлоад.


            1. Alexeyslav
              07.04.2015 10:21

              А если это чисто прикладное приложение для обработки данных с БАК, где доля алгоритмов может превышать 90%…


              1. namespace
                07.04.2015 10:43

                Прикладные приложения — это уже совсем отдельная тема. Тем более, в контексте БАК. Там работают высококлассные специалисты одновременно по физике, информатики и куче других дисциплин. Исследования, все дела.


            1. Rasifiel
              07.04.2015 11:04
              +1

              Не все занимаются пользовательскими приложениями) Но просто не все либо бизнес-лапша, либо алгоритмика.


    1. WildHorn
      07.04.2015 13:56
      +2

      Говорят, что код научных сотрудников жутко выглядит, но ПО для них не самоцель.

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


  1. general
    06.04.2015 12:08
    +53

    Олимпиадники — это спринтеры. Их установка — достичь цели за минимальное время.
    Профессиональные программисты — это марафонцы. Причем, зачастую, программирование, это даже не марафон, а турпоход группы людей. С палатками. В тайгу. На 6 месяцев.

    Умение разбираться в коде, которому 5-10 лет — часто самый востребованный навык в больших проектах.
    "Средний программист пишет в день всего 11 строк, которые идут в релиз" (ц) Мифический человеко-месяц.
    Вот поэтому корреляция и отрицательная.


    1. JiLiZART
      06.04.2015 22:59
      +5

      Так вот откуда борода у программистов появляется :)


  1. Aingis
    06.04.2015 16:03
    +1

    Непонятно одно: как они оценивали успешность программиста?


    1. aikixd
      06.04.2015 16:28
      +1

      Они не знают, их оценивал ИИ.


      1. pehat
        06.04.2015 22:07
        +7

        , написанный олимпиадниками, которые просто решили слить конкурентов.


  1. bayandin
    06.04.2015 17:29
    +17

    Пожалуй, добавлю в резюме, что ни разу не побеждал на олимпиаде :)


  1. qw1
    06.04.2015 18:08
    -1

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


    1. cher11
      06.04.2015 18:36

      Вы так говорите исходя из того, что у вас опыт работы с олимпиадниками, или потому что статья зацепила?
      Набросать работающий код за несколько часов не парясь о его поддержке — это одно.
      Разбираться в энтерпрайзе, legacy-коде, ловить баги — это совершенно другое.


      1. qw1
        06.04.2015 23:50
        +3

        Я так говорю, потому что в статье нет критериев «успеха в работе». Может то, что автору кажется неуспехом, на самом деле не так и плохо.


    1. mukizu
      08.04.2015 13:42

      А причем тут манагерские способности? Основным критерием в карьерном росте является умение и желание брать бОльшую ответственность. А манагерские способность разовьются постепенно при необходимости, если человек конечно сам в состоянии такой груз принять.


  1. madhead
    06.04.2015 18:40
    +3

    Дата-майнинг позволил определить, какие факторы коррелируют с успешной работой сотрудника.

    Так какие же факторы коррелируют с успешной работой?


    1. alizar Автор
      06.04.2015 18:56
      +5

      Я думаю, частота моргания и любимый сорт чая. Должны коррелировать. Может, ещё цвет носков, кто знает…


      1. madhead
        06.04.2015 19:30
        +11


        корреляция, она такая, да


  1. Fedorkov
    06.04.2015 19:45
    +7

    Если вы хотите построить успешную карьеру в сфере разработки ПО, ни в коем случае не увлекайтесь спортивным программированием и участием в конкурсах.
    Питер Норвиг сказал противоположное, «it doesn't mean you guys should stop doing the contests». Корреляция — это не обязательно влияние первого фактора на второй; вполне возможно, что олимпиады позволяют раскрыть потенциал тех, у кого изначально слабые способности к аккуратной вдумчивой работе.


  1. stepik777
    06.04.2015 20:09
    +5

    Если вы хотите построить успешную карьеру в сфере разработки ПО, ни в коем случае не увлекайтесь спортивным программированием и участием в конкурсах.

    Такой вывод следует из беспристрастной статистики и дата-майнинга рабочих показателей сотрудников Google,
    Распространённое заблуждение, которому, видимо, подвержены многие пользователи geektimes, так как никто кроме предыдущего комментатора на это не обратил внимания. Корреляция между a и b ничего не говорит о причинно-следственных связях. Была найдена корреляция, делать отсюда выводы о том, что если вы начнёте заниматься спортивным программированием, то это плохо скажется на вашей работе, или, что если заняться коммерческой разработкой ПО, то это ухудшит ваши результаты в спортивном программировании, неверно.


    1. stepik777
      06.04.2015 20:17
      +3

      На эту тема даже статья в вики есть: en.wikipedia.org/wiki/Correlation_does_not_imply_causation


  1. evtomax
    06.04.2015 20:27

    А может всё немного по-другому? Завышенная самооценка из-за побед на конкурсах по программированию снижает мотивацию к усердной работе?


    1. QtRoS
      06.04.2015 22:28

      В некоторых случаях определенно да — наблюдал среди друзей, но все же от самого человека многое зависит, от его характера, от эго.


  1. MikeMirzayanov
    07.04.2015 01:59
    +9

    Ага, отрицательно. Чего же тогда Google просто мощным пылесосом собирает всех толковых олимпиадников прям со студенческой скамьи, а бывает что и раньше? Кроме того, проводит одно из самых крупных подобных мероприятий на протяжении уже десяти лет (и довольно агрессивно хайрит на нем).

    Отрицательная корреляция, вероятно, получается из-за того выборку составляют именно сотрудники Google. И выводы Норвига могут быть верны только для этой группы. Автор топика популистски пытается сдвинуть акцент на программирование вообще, что в корне неверная интерполяция.

    Кроме того:

    • Есть мнение, что кандидат-неолимпиадник, который решит их задачи на структуры данных, эффективную обработку и алгоритмы правда талантливее кандидата-олимпиадника, если тот покажет схожий результат. Ведь в самом деле, второй на протяжении нескольких лет тренируется решать задачки именно на алгоритмы, а в работе требуется более широкий скиллсет.
    • Есть мнение, что часто Google нанимает overskilled сотрудников для того объема в том числе рутинной работы, что есть в компании. Вероятно, победители контестов правда к ней меньше склонны.
    • Возможны спецэффекты вида, что массово олимпиадники появились в большей степени не так давно и многие из них еще молоды и не полностью раскрыли свой потенциал. Вероятно, средний сотрудник неолимпиадник старше и чаще занимает позицию повыше (middle vs junior).


    Да и вообще, это мнение далеко не разделяется всюду в компании:

    • Александр Мангилёв:
      Я техникал лид команды отвечающей за кластеризацию бизнесов в Гугле. Учился программировать исключительно учавствуя в олимпиадах (и ни чем кроме олимпиад не занимаясь). Благодаря навыкам полученным в олимпиадах я заметно лучше большинства моих коллег умею придумыать различные эвристики (что очень полезно на практике!). И пишу принципиально более эффективный (и мне кажется, что и более понятный тоже) код если требуются нетривиальные алгоритмы. Мечтаю о красном кодере в команде… Под зарез нужен человек, которому можно просто сказать: «Придумай как это сделать классно» — и что бы он был способен сам придумать классное решение и потом его закодить вообще без моего вмешательства. Полный текст.
    • Павел Наливайко:
      I work for a Search Quality team at Google. We absolutely love hiring winners from programming competitions. Whether they will develop into a high performing engineers or not depends entirely on them, but they definitely posses the raw talents and skills to become one [...] But there aren't too many places where you can get a very relevant background to work in Search Quality anyway. As a team lead, I'd be happy to hire a less experienced contest winner, teach him and help to develop into a star performer. And there are many successful examples (some of them were mentioned in this thread couple of times already ;) Полный текст.
    • Bartholomew «Ruberik» Furrow:
      The conclusion this article offers is drawn from a badly flawed study from over a decade ago, which Google decided neither to publish nor to use the conclusions from. Полный текст.




    1. VenomBlood
      07.04.2015 05:43

      И выводы Норвига могут быть верны только для этой группы.
      Норвиг — один из ведущих и достаточно известных людей в ML и AI (не считая разные закрытые исследования). Это так, к слову. Я не утверждаю что его выводы непогрешмы и священны, но упрекать его в подобных детских ошибках без приведения контраргументов (с циферками и тестами, а не в стиле «он не прав») все же считаю несколько опрометчивым.


      1. Rasifiel
        07.04.2015 07:30
        +2

        Если послшуать Норвига, то он сам и утверждает, что оно только про специфичные условия Гугла в плане сотрудников.


    1. Rasifiel
      07.04.2015 07:34
      +2

      Есть еще один немаловажный фактор — по своему опыту контакта с собеседованиями и олимпиадному прошлому у олимпиадника выше шансы пройти собеседования. И не потому что он обманывает систему и показывает знания которым не обладает, а потому что он лучше приспособлен к решению алгоритмических задач в ограниченных условиях с бонусным стрессом.


  1. complete_unknown
    08.04.2015 16:48

    Олимпиадки можно сравнить с забегами на сто метров, в то время как промышленная разработка это нечто больше похожее на 42-километровый марафон. Который к тому же бегаешь каждый день, а не раз в 4 года.
    Это не значит, что бегать стометровки не круто — отнюдь, это очень увлекательно и эффектно. Дали задачу, напрягся, через пару часов уже свободен, ставишь кубок на стенку. «Девки текут, парни боятся» (хотя скорее наоборот).
    Но вот в реальной жизни кубков не дают, задачи однообразны, проекты жуются годами, переменные надо называть из 4-5 существительных, комментариев писать столько, что хватило бы на небольшой роман, а еще митинги, код ревью, appraisal-ы, ну и прочие радости карьеры. И нет никакой гарантии, что олимпиадник будет увлечен подобной работой и будет делать ее хорошо, ему же надо решать ИНТЕРЕСНЫЕ ЗАДАЧИ, но при этом не вляпываясь в рутину. Некоторые так к 25 годам меняют по 5-10 компаний в поисках ЗАДАЧ, а их, бедолаг, везде заставляют CRUD-ы пилить.
    С другой стороны, если человек победил в значимой олимпиадке, то значит как минимум последние полгода он к ней усиленно готовился. Чаще — намного дольше, победители АСМ-ов обычно олимпиадят со старших классов. То есть пока кто-то имел время учиться тем же дженерикам, коллекциям, базам данным и фреймворкам, они учились считать количество монеток и площади фигур, совмещая выученные алгоритмы и школьные познания циклов, строк и массивов. Нет, в этом нет ничего позорного, ибо какой может быть программист без знания алгоритмов, это же фундамент. Но на на фундамент еще что-то и достраивать надо, а вот это олимпиадникам зачастую неинтересно, так как они уже испорчены тем, что любая задача решается за 2 часа.
    Я бы скорее взял человека, который в олимпиадках не участвовал, алгоритмы знает на уровне необходимого минимума, но, например, имеет хотя бы два своих законченных проекта — пусть это даже будут приложения для смартфонов или те же CRUD-ы. Неважно, сколько тысяч там строк кода, неважно сколько людей этим пользуется — куда важнее, что он закончил что-то большое и не сдался, что он способен бегать на длинные дистанции и не выдыхаться на первом километре.


    1. Zver1992
      12.04.2015 21:27

      Но вот в реальной жизни кубков не дают, задачи однообразны, проекты жуются годами


      У Вас грустная жизнь, мне Вас искренне жаль.