4 марта в 00:35

Программисты не могут написать алгоритмы без помощи: ещё раз про интервью

Дэвид Хэнссон, создатель Ruby on Rails, признался в своём твиттере, что не написал бы сортировку пузырьком на доске. Дэвид подсматривает код в интернете всё время:

image

Его поддержали многочисленные коллеги:

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

Не секрет, довольно часто интервьюеры спрашивают т.н. Основы языка (в моём случае, это JavaScript), которые в том числе включают в себя алгоритмы. И тут любой нормальный (вокруг этого определения возможна дискуссия, но я настаиваю именно на нормальности, без кавычек) инженер сталкивается с двумя трудностями. Только сначала маленькое пояснение к «нормальности»: обычный разработчик обязан использовать в коммерческой разработке передовые технические решения, принятые в его области. Например, лучшие алгоритмы. Однако обязан ли рядовой, нормальный программист помнить конкретные реализации лучших алгоритмов в коде, это вопрос.

Итак, две трудности:

1) Зачастую на интервью перед тобой лист бумаги и карандаш. Либо доска и маркер. В реальной разработке мы пользуемся многочисленными инструментами, снимающими некоторые рутинные задачи: например, выполняющими автодополнение кода. И поэтому, к тому же учитывая несколько стрессовую обстановку на собеседовании, с лёту написать правильный, синтаксически верный код не всегда удаётся.

2) Вторая трудность является следствием фундаментальной особенности цифровой эры. Поясню на маленьком примере.

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

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

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

Ровно о же самое можно сказать и о знаниях в программировании. Положа руку на сердце, каждый может признаться: он рано или поздно подзабывает какие-то вещи, принятые относить к Основам. Например, любой хороший курс по JavaScript включает себя понятие ООП, раскрытие темы наследования, создания «классов» и так далее. Однако в современных проектах, особенно основанных на фреймворках, программист напрямую использует ООП-парадигмы в написании своего кода не так часто. Не так часто, как спрашивают ООП на интервью при приёме на работу (а его любят спрашивать практически всегда). Естественно, возникают коллизии между тем, что есть на самом деле, и тем, что ты, как тебе кажется, твёрдо запомнил (и успешно забыл).

Другими словами, успешно работающий программист, который знает где и как быстро восстановить знания по текущей теме, выдающий каждый день код и даже способный на решение весьма нетривильных задач (например, придумать RoR), на интервью вдруг с треском проваливается, мыча что-то не очень внятное, глядя на, казалось бы, «детскую» задачу. Тогда вопрос — а что на самом деле определяет такое интервью?

По этой теме у буржуев, кстати, есть исследования. Например, вот это.

Вывод: «там не всё так однозначно». Конечно же, любой нормальный наниматель в первую очередь желает видеть перед собой человека, знающего элементарные вещи. Поскольку вся наша культура является прежде всего письменной культурой, наниматель в праве требовать, чтобы свои знания кандидат мог изложить на бумаге. Однако с программированием (и, вероятно, с некоторыми другими областями напряжённого умственного труда) всё очевиднее простой факт: человек уже не в состоянии воспроизвести все свои знания без специальных ключиков, подсказок. Скорее на интервью было бы продуктивнее предлагать соискателю решать ту или иную практическую задачу, интегрально оценивая его способности и умения находить решение, а не только вспоминать отдельные куски кода.

По материалам статьи, русский перевод частично здесь.
Максим @botyaslonim
карма
13,0
рейтинг 47,4
Программист
Самое читаемое Управление

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

  • +5
    На собеседованиях не требую синтаксической правильности, сразу говорю, что пишите псевдокод похожий на целевой язык. И не требую проверки всех граничных условий. Но прошу назвать некоторые, которые кодом не предусмотрены. В общем, относитесь к людям так, как хотите, чтобы они относились к вам. Гуглом пользоваться запрещаю.
    • 0
      Граничные условия — это, кстати, хороший «дополнительный вопрос».
    • +26
      В реальной работе тоже запрещаете?
      • –34

        Если в реальной работе на каждый вопрос лезть в Гугл — очень долго результата ждать будут. Обычно без Гугла не могут любители СтекОверфлоу-дривен-девелопмента.

        • +10
          «Вы так говорите, как будто это что-то плохое»(с) ))
          • +6
            Что именно? Что человек не способен ни на что кроме СОДД? Мы ведь еще про собеседование говорим?

            А чтобы понять, что решение на СО подходит для специфики — это тоже можно нагуглить? А недостатки решения, о которых не сказали, потому что для примера автора это не недостаток, а для нашего приложения это критично тоже на СО нагуглится?

            Я пять лет собеседовал людей в свою команду для разработки игр на js в Варгейминге. И я знаю, что большинство решений на СО нельзя вставлять в свой код без предварительной подготовки?

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

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

            Люди думают, что если бы Гугл, то сразу же на синьйорные позиции, которые раньше имнедоступны были они бы сразу смогли устроится?

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

            Может для типичных сайтиков бездумный СОДД вполне подходит. А в чем-то менее типичное всегда есть своя специфика.
            • +5
              Ну, тут не только люди с «другой» стороны баррикады.
              Просто вы очень уж жесткую позицию занимаете.
              В мире интернета, да без гугления?
              Да и такое пренебрежение «для типичных сайтиков бездумный СОДД вполне подходит».
              Почему же бездумный сразу? А вы попробуйте наклепать типичных сайтиков. Та еще работенка.
              Не вижу ничего плохого в гуглении.
              Это как была у нас бабушка, преподаватель высшей математики в институте.
              Да, пользуйтесь, говорит, учебниками на экзамене, на здоровье, только сумейте задачи решить.
              Ну да, будет по первой гуглить (если ближе никто не может отвлечься, что бы подсказать), потом будет гуглить меньше и меньше.
              Хотя речь про таких себе «синьоров», которые прямо таки должны все знать. :)
              Я правда по БД, обычно в новой команде больше времени уходит, что бы структуру базы уяснить, чем на гугление.
              • +2

                На физтeхe (во всяком случае в моe врeмя) на многих экзамeнах, включая по-моeму гос по физикe, официально можно было использовать учeбники. Это очeнь правильный подход и на рeальный рeзультат — провeрку понимания, а нe зубрeжки — никакого негативного влияния нe оказываeт.

                • 0
                  Согласен.
                • 0

                  Только на письменных. На устных нельзя.

                  • 0
                    не буду спорить, давно все ж было. но на устных тоже на определения/стандартные решения вопросов вроде не было никогда, скорее «ну на билет вы ответили, это ясно, давайте-ка просто поговорим». тут уж никакой учебник не спасет.
                    но это наверное оффтоп злостный уже.
                • +2
                  На собеседовании Вас не просят вспомнить алгоритм. Вас просят его реализовать. Это простая проверка Вашей способности выразить что-то простое на целевом ЯП.
                  Если Вы решили вспоминать алгоритм на собеседовании — Вы, скорее, его завалили. ИМХО.
                  • 0

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

                  • 0
                    не знаю, на чем вы пишите и какие задачи выполняете, но я тоже не помню когда последний раз писал сортировку пузырьком(наверное школе), но я легко могу восстановить алгоритм, т.к. его не нужно помнить если понимаешь его суть.
                    • 0
                      Это потому что сортировка пузырьком — наивный алгоритм. А сможете описать суть например БПФ?
                      • 0
                        А сможете описать суть например БПФ?
                        Вы о простом "разделяй и властвуй" подходе? Собственно этих слов плюс пары наводящих вопросов должно быть достаточно для приличного программиста, чтобы реализовать БПФ.

                        Хотя для интервью (волнение, руки дрожат, голова «кипит») это всё же сложновато IMO.
                        • +1
                          Возможно, распишусь в собственной неполноценности, но думаю, что для меня этого было бы недостаточно. И не думаю, что это так уж плохо. В конце концов, программисты в реальности сильно отличаются от голливудских программистов. Никто и никогда не сидит с таймером, чтобы в последние десять секунд успеть написать квиксорт, чтобы остановить ядерный взрыв (или даже задеплоить хотфикс). Если программисту для подобных вещей надо будет заглянуть в гугл, это не страшно, на мой взгляд.
                      • 0
                        Если Вы о преобразовании Фурье, то с точки зрения математики, еще не успел забыть с университета, а вот с точки зрения программирования мне не приходилось сталкиваться, сомневаюсь, что я решил бы эффективно подобную задачу, без подглядывания в умные книжки.
                    • +1
                      Собственно, я именно это и сказал =) Необходимости помнить эти алгоритмы — нет. В ряде случаев даже нормально не знать их суть. Например, требовать от JS-программиста знать суть QSort/MergeSort/etc — очень странно. Но если он не смог за полчаса ни один алгоритм сортировки сочинить… Ну я бы не хотел с таким JS-разработчиком работать.
            • 0
              СОДД — что это?
              • 0
                СтекОверфлоу-дривен-девелопмент
            • +5
              Насчет типичных сайтиков и бездумного SODD.

              К примеру, реальная задача: есть легаси REST сервис, который крутится на Tomcat и есть HTTP-клиент для этого сервиса. Вместо русского текста: сервис возвращает краказябры, клиент возвращает краказябры, в логах краказябры. Поэтому нужно начать везде использовать UTF-8 и проверить, что это действительно так.

              Как решал бы здоровый человек — убедился бы, что:

              1. БД использует правильный collation (ага, гуглим какой для кириллицы: Cyrillic_General_CI_AS);

              2. JDBC-драйвер использует UTF-8 (ага, гуглим параметры инициализации: useUnicode=true;characterEncoding=UTF-8);

              3. установил кодировку сервлета в параметрах Tomcat (снова гуглим, выясняется: URIEncoding="UTF-8" в настроечном файле);

              4. на этом этапе сервис начинает работать нормально, гуглим про клиента. По умолчанию он общается с сервисом в Latin1, документация подсказывает второй параметр в конструкторе про кодировку. ОК.

              5. и вишенка на торте — ставим везде UTF-8 в логах:
              <encoder>
                <charset>UTF-8</charset>
              <encoder>
              


              На все ушло порядка 10 минут, с проверкой на каждом этапе. А вы здесь говорите про «бездумное гугление». Я понимаю, для кого-то не проблема переключить в голове пять разных технологий, но блин. Кто-то пишет калькуляторы, а кто-то — компиляторы. Это нормально.
              • 0

                По сути это всё не задачи разработчика, максимум вынести параметры инициализации в конфиги.

                • 0
                  Вот игра в responsibility-ping-pong отнимает в разы больше времени чем гугление.
                  • 0

                    Я про то, что это не SODD, задача к разработке мало отношения имеет, это диагностика проблемы эксплуатации.

                    • 0
                      Не важно. Так же могут придираться к работе админа. Мол, ты должен все настройки по памяти помнить. Ну или встроенный man читай. Если начал гуглить — провалился.
              • 0
                Кто-то пишет калькуляторы, а кто-то — компиляторы.


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

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

            Не забывайте, мы сейчас говорим именно про собеседования.
            • +2

              "Если разработчик неспособен без СО даже поговорить на собеседовании с другим технарем" — мне кажется такой разработчик и на СО вопрос сформулировать не сможет.

            • +4
              А что, в приведенном вами примере про Бетмена, была именно такая команда, которая без гугла шагу ступить не могла? Вы это точно знаете? Если да, расскажите. плиз, интересно.
        • +37
          Долго ждать результата будут, если НЕ лезть в Google.
          Если вы считаете иначе — либо у вас феноменальная память, либо слишком простая работа.
          • –8
            Вы б посмотрели мои статьи, что-ли, перед тем, Как предположения делать
            • +9

              Посмотрел. Согласился с предыдущим оратором.

        • +8
          Всегда казалось, что в наше время 80% навыков программиста/инженера – умение думать и добывать необходимую для задачи информацию, и только оставшиеся 20 – знания какого-либо языка или технологии. ИМХО, конечно.
          • +1
            Зачем вы подменяете понятия «умение думать» и «умение нагуглить ответ на вопрос»? Как раз никто не приносит с собой на собеседование ноутбук и не предлагает пользоваться гуглом, потому что хочется проверить умение думать.

            Или вы думаете, что я, как собеседующий — это такой робот, который сверяет, совпадает ли ответ с листочком и если нет, то отказывает даже талантливому кандидату?
            • +4
              Простите, конечно, но с каких пор умение искать и добывать информацию в доступных источниках перестало быть умственной деятельностью? Честно, я не представляю разработчика, который был бы высококлассным специалистом и при этом бы не пользовался на работе гуглом.
              • +2
                Простите, конечно, но с каких пор умение искать и добывать информацию в доступных источниках перестало быть умственной деятельностью?

                Конечно умственная, но это то что отличает инженера от кодерочка.
            • +1
              Ходил на собеседования с ноутбуком. Сажали в комнату на 40 минут с Wi-fi и гуглом и просили написать код для алгоритмической задачи. Это и есть проверка умственных способностей инженера: из подручных средств собрать работающее решение конкретной проблемы.

              Да и вообще — полным полно таких задач, на которые было бы неплохо найти хоть какое-нибудь решение, а потом уже его совершенствовать.
            • –1
              > Зачем вы подменяете понятия «умение думать» и «умение нагуглить ответ на вопрос»?

              Я думаю есть вопросы над которыми надо думать, а есть вопросы, которые надо гуглить. И это разные вопросы. Вы на собеседовании какие задаёте?
              • +3
                Я думаю есть вопросы над которыми надо думать, а есть вопросы, которые надо гуглить. И это разные вопросы

                Ну так «в продакшене» и на собеседовании требования к вопросам различаются. Тот же «написать алгоритм чего-то» в боевых условиях предполагает нагуглить и проверить реализацию, а на собеседовании означает «пошевелить мозгами и придумать реализацию самому».
                • –2
                  > требования к вопросам различаются

                  К ответам?

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

                  Задавать вопросы на собеседовании — это как KPI выставить. Что попросите, то и получите.
                  • +3
                    К ответам?

                    К вопросам.

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

                    Нет. Конкретно с моим примером — программистов :)
                    Вы, (если вы программист, конечно), должны прекрасно понимать, что такое абстракция. Задание на собеседовании — абстракция, которая показывает умение программиста решать задачи какого-то там типа. Реализовать, грубо говоря, хеш-таблицу на собеседовании — это не означает, что выполнивший это задание программист способен делать только хеш-таблицы, и ничего более, и если его посадить за разработку, он будет переписывать хеш-таблицы, алгоритмы сортировки и поиска по ключу. Это всего лишь значит, что он умеет придумывать алгоритмы, а значит, в принципе профпригоден.
                    А приличный человек на такой вопрос может и обидеться.

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

                      В целом, велосипедостроитель — профпригодный программист. Не эффективный, но профпригодный.

                      Только вот по хеш-таблице нельзя сделать вывод о том, что он умеет придумывать алгоритм. Он его вспомнил. Его на прошлом собеседовании тоже хеш-таблицу спрашивали, а на позапрошлом — пузырёк.

                      > Взрослый человек переживёт, не помрёт.

                      Конечно не помрёт. Но лично у меня некоторые собеседования вызывают неприязнь, а другие интригуют. Если я прихожу и вижу темный подвал, 17" мониторы и странные вопросы на собеседовании — я туда работать не пойду.

                      Ну конкретно написать хеш-таблицу — это не странный, но очень скучный вопрос.
                      • 0
                        Только вот по хеш-таблице нельзя сделать вывод о том, что он умеет придумывать алгоритм. Он его вспомнил.

                        Может быть и вспомнил. Если вдруг это стало трендом и спрашивают везде, конечно. Я, например, не вспомню, я просто знаю принцип и буду придумывать, если спросят. Но практика показывает, что трендом не стало, и даже банальный пузырёк люди обычно выводят, а не вспоминают.
                        Если я прихожу и вижу темный подвал, 17" мониторы и странные вопросы на собеседовании — я туда работать не пойду.

                        А если вы приходите, видите обычный офис, 24" мониторы, и у вас просят написать алгоритм — вас это меньше пугает, чем тёмный подвал и 17" мониторы?

                        Ну конкретно написать хеш-таблицу — это не странный, но очень скучный вопрос.

                        Ну извините. Если что, попросите собеседующего рассказывать вам анекдоты ;)
                        • 0
                          > и даже банальный пузырёк люди обычно выводят, а не вспоминают.

                          Лично мне хватает хитрости притвориться, что я «вывожу» )

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

                          > А если вы приходите, видите обычный офис, 24" мониторы, и у вас просят написать алгоритм — вас это меньше пугает, чем тёмный подвал и 17" мониторы?

                          Да, меньше. Но при прочих равных, что я пойду работать не туда, а в офис класса А с 2 27" мониторами. И где анекдоты рассказывают. И смузи на халяву
        • +8

          Вступлюсь за TheShock. Человек, вообще-то дело говорит.


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


          Зазубрить 3 разных алгоритма — круто, но бесполезно, если не знать, что такое, узко говоря, вычислительная сложность, а широко говоря — теория алгоритмов.


          И в этом кардинальный минус СтекОверфлоу-дривен-девелопмента. Люди собирают куски кода, лепят всё вместе, но не понимают почему, например, в финансовых операциях (и то — не всех) нужно использовать банковское, а не математическое округление: какое было в найдёном примере — то и возьмут.
          Каждый второй новоиспечённый гэймдевелопер — это вчерашний дизайнер. Эти ребята проходят недельный курс С++, находят какую-нибудь биржу кода и контента, лепят лепят, а на выходе получают эффективный прожигатель заряда акума телефона. Им невдомёк, что сцена отрисовывается в несколько слоёв не просто так, а для повторного использования многих слоёв в последующих кадрах. Им — пофиг. Ведь можно взять куски кода, слепить их… уяк, уяк — в продакшн!
          Они думают, что NoSQL решения реально круче RDBMS. Потому что маркетологи им так сказали. А спроси их что такое RDBMS? "британский бойз-бэнд, да?"


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


          Кто смотрел сериал "Друзья", вспомнит отличную зарисовку: Джо взял хорошо написанное письмо, и каждое слово заменил тезаурусом на синоним. Каждое, отдельно от контекста. Получилась белиберда, хотя и смешная (https://www.youtube.com/watch?v=yGR78nzyznM).
          Такой же нелепый результат получается и при использование СО/гугл, обладая лишь поверхностными знаниями. Продукт получается, вроде бы как проходящий по спецификации, но воняет жутко: мобильный апп — батарею сжирает, сайт визитка — проц на 100% загружает, сервер — дедлокит...


          Будет хороший проект на JS, обращусь за помощью к TheShock — программистов с таким критическим образом мышления всё меньше остаётся в нашем, хипстерами пропитанном, мире.

          • +5

            Совершенно верно, есть большая разница между "помнить" и "понимать".


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


            @TheShock просто неудачно сформулировал свою мысль, уверен, что он имел ввиду не такую ситуацию, а именно тупой копипаст с SO.

          • 0
            Программистов с таким критическим образом мышления всё меньше остаётся в нашем, хипстерами пропитанном, мире.

            Возможно в нашем мире задач требующих такой уровень столько нет?
            Поэтому и проходит оптимизация, как и везде, в этой жизни.
            Не требуется столько краснодеревщиков. Не все отращивают мышцы, как у Шварца, не все могут водить автомобиль, как гонщик Формулы… и т.д. Просто на всех не хватит такой работы, да может и не всем дано.
            Зато вот «сайтики» или мебель стандартную, выпускают очень много людей.
            Мир стремится достигнуть большего, при меньших затратах. Этот закон везде работает.
            Ну, в самом деле, посадите TheShock клепать сайтики.
            Он окажется не эффективен для этой работы, по параметру цена/качество, потому, что слишком дорого стоит.
        • 0
          Не пойму понять, что за «СтекОверфлоу-дривен-девелопмент». На stackoverflow не принято просить, чтобы за тебя писали код или реализовывали какой-то функционал (помимо минусов, которые сразу прилетят, это напрямую противоречит правилам форума). На моем опыте, на SOF чаще всего обращаются с просьбой найти конкретную ошибку. Не уверен, что искать ошибку самому это всегда сильно быстрее, чем найти аналогичную ситуацию и ее решение (сильно сомневаюсь).
          • +3
            Имеется ввиду нагуглить решение в виде вопроса и чьего то ответа на so, а потом его тупо скопипастить.
      • +5

        Нет, конечно. Но там есть требование писать синтаксически правильный код :)

      • +9
        Честно говоря, это разные вещи. Я, когда собеседую человека, тоже прошу написать алгоритм сортировки, и не даю пользоваться гуглом. И это я делаю не потому, что мне интересно, знает ли он алгоритмы сортировки. Мне не это интересно. Наоборот, я уверен, что кроме вчерашних студентов, их никто наизусть не помнит. Мне интересно, может ли он *придумать* алгоритм, т.е. умеет ли человек вообще программировать.
        То, что он в реальной жизни сможет нагуглить сортировку, это и так понятно. А вот нагуглить алгоритм работы контроллера насосной станции, которые мы изготавливаем, он не сможет. У него будет блок-схема от инженера-гидравлика, и ему самому нужно будет сочинять алгоритм работы машины состояний и т.д. Вот это я и хочу увидеть на примере сортировки массива, способен ли человек взять задачу, разложить её на шаги и запрограммировать.
        • –2
          Не стебусь, но что даже в компанию, где пишут софт для насосов у вас есть возможность выбирать из нескольких кандидатов? Или вы спрашиваете про сортировку, и не важно отвечает или нет — все равно принят?
          • +7
            Ну а чем софт для насосов принципиально отличается от софта, например, для смартфонов? Тем, что у такой установки разрешение экрана не FullHD, а всего 320х480 (я тут тоже не стебусь), и она не поддерживает блютус? Позвонить на неё, кстати, в принципе можно :) Она имеет ADSL-модем для телеметрии.
            Мы же на эти задачи ищем не программистов с опытом работы с насосами, а программистов, имеющих опыт программирования микроконтроллеров. Обычное программирование промышленных контроллеров, ничего военного и уникального.
          • 0

            Навскидку я писал непубличный софт для:


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

            Это не считая "сайтиков", краулеров, конверторов и т. п., где предметная область по сути чистая информатика — взять информацию в одном виде и показать/сохранить её в другом. И без них минимум с десяток программно-аппаратных платформ (включая гетерогенные сети на экзотических ныне основах) по 2-3 языка на каждую часто.


            Неужели думаете, что какие-то насосы (пускай даже несущие угрозу миллионам людям) меня испугают, а DrPass откажет мне лишь потому, что у меня нет опыта работы конкретно с насосами?

    • –1
      +1. На доске код можно писать очень сокращенно, если все детально устно комментировать. Например, для js и разговора о композиции вполне пойдет такой код:
      cl Dog ext Anim (
        eat(IMeal meal)
         list.add(meal)
      
        bool isHungry()
          ret list.len == 0
      )
      


      С точки зрения языка тут много ошибок, но если вы понимаете тему настолько, что можете устно объяснить ее — это очень легко.
      • –1
        Конечно, Если речь о разговоре хотя бы на мидла или синиора и понятно, что синтаксис человек знает. Никогда джунов не нанимал, а там слегка другие законы, но вполне возможно, что мне бы захотелось проверить, что человек правда знает основы синтаксиса.
      • +8
        Сортировку я писал последний раз в 2005 году, на Pascal.

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

        После 12 лет в деле, написать сортировку на доске звучит как оскорбление. Вам надо сортировки писать, или вам нужно что-бы кто-то исправил ваше приложение, которое заваливает 5 серверов, где должен справиться 1 веб сервер + сервер базы данных?
        • +3
          вам нужно что-бы кто-то исправил ваше приложение, которое заваливает 5 серверов, где должен справиться 1 веб сервер + сервер базы данных?
          Нам нужно чтобы «кто-то» не создавал приложение, которое заваливает 500 серверов притом что задача, которую он решает, может быть решена и одним.
          • +3
            Если вы ищите человека по алгоритмам, вы пишите это в объявление о найме, а не говорите об этом на собеседовании.
            К тому же, если мы говорим о 500 серверах, то о сортировке пузырьком спрашивать вообще глупо.

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

            Я не работаю с алгоритмами, я не планирую с ними работать и лезть в науку или обработку огромных массивов данных — это не моя область. Если мне понадобится это делать — я найму специалиста, который этому посвятил свою карьеру.
            • +1
              Я не работаю с алгоритмами, я не планирую с ними работать и лезть в науку или обработку огромных массивов данных — это не моя область.
              Если бы все были так честны и не пытались устраиваться на software engineerа обладая знаниями application engineerа — мир был бы гораздо светлее. Но, увы, в реальном мире это не так.

              К тому же, если мы говорим о 500 серверах, то о сортировке пузырьком спрашивать вообще глупо.
              Почему глупо? Вы можете себе представить человека способного создать распределённую сортировку на кластере в 10000 машин, но не способного написать пресловутый «пузырёк»? Я — нет. Никто же не говорит о том, что вы должны уметь писать только пузырёк!
        • +2
          За всю мою карьеру мне каким либо алгоритмом, который нужно было реализовать самому, пришлось сталкиваться 2 раза.

          Простите, а кем вы работаете? Не программистом же, ведь бОльшая часть работы обычного программиста и состоит в реализации алгоритмов, когда поданных сверху, когда придуманных самим. Весь написанный нами код (по крайней мере императивный) и является записью алгоритмов в конкретной нотации, будь то PHP, C, Assembler или Python, записью последовательности действий по достижению нужного выходного состояния при определенном входном.

          • 0

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

            • 0

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

              • 0
                * Придумать конечно означает придумать как реализовать и реализовать. Разговор ведь про программирование.

                Я о том, что «реализовать алгоритм оформления заказов» и «реализовать алгоритм сортировки с вот такой сложностью» это разные понятия «реализовать алгоритм». Первая бизнес-задача, вторая техническая. Реализации первых используют реализацию вторых. И вот реализацию вторых во многих случаях делать не надо, потому что они уже есть в виде библиотек или встроенных возможностей.
                • +1
                  Я о том, что «реализовать алгоритм оформления заказов» и «реализовать алгоритм сортировки с вот такой сложностью» это разные понятия «реализовать алгоритм». Первая бизнес-задача, вторая техническая.

                  Вообще, нет. Это просто разные предметные области. А суть работы одна и та же. Может быть, сложность конкретной задачи отличаться. Причём не факт, что оформление заказов будет проще — например, если в процессе присутствует функция расчета автоматического дозаказа.
                  • 0
                    А суть работы одна и та же.

                    Если бы это было так, никто бы не давал задачи на алгоритмику. Проверяли бы только ООП и умение закодить задачу.


                    Причём не факт, что оформление заказов будет проще

                    Вот про это многие и говорят, а другие говорят, что это и не программирование вовсе)

                    • 0
                      Если бы это было так, никто бы не давал задачи на алгоритмику. Проверяли бы только ООП и умение закодить задачу.

                      Следует различать задачи на алгоритмику ("реализовать сортировку с временной сложностью O(n*log n)", "реализовать воркфлоу заказа с такими-то ограничениями"), то есть на придумывание или поиск готовых алгоритмов, и задачи на реализацию готовых алгоритмов ("реализовать сортировку массивом пузырьком", "реализовать воркфлоу заказа конечным автоматом с таким-то графом переходов статуса заказа")

                • 0

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


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

                  • 0

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

                    • 0

                      Как кандидат реально сталкивался с ситуациями когда даётся название, а полное описание по вопросу: "деталей не помню, вам по памяти писать или не тратить время вообще"? Подход понравился, использую теперь с другой стороны баррикад :)

              • +1
                Заменим «алгоритм сортировки» на «алгоритм хеширования», И вот уже 90% программистов отсеивается из программистов.
                Заменим на «алгоритм шифрования», желательно каким-либо более устойчивым, чем SHA1, и останется 1% тех, кто собственно работал в разработке алгоритмов шифрования.

                Давайте не будем цепляться к словам — понятно же, что человек писал не об алгоритмах вообще, а именно о технических алгоритмах, которые есть не на SODD а в виде best practice.
                • +1

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

                  • +1
                    Я еще пойму, если нужно написать простейший работающий алгоритм пузырьковой сортировки. Его действительно можно использовать.

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

                    В общем окей, у каждого свое видение как подбирать команду.
                    • 0

                      Просто проверить способность человека из вольного описания алгоритма создать его формальное описание на псевдокоде, близкому к целевому языку.

                    • 0

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

                  • 0

                    Устроят ли тогда такие ответы: сортировка — пузырёк; хэширование — разбиение данных на блоки по 4 байта и последующий XOR, шифрование — XOR 4-байтных блоков с фиксированным ключом?


                    Или нужно блеснуть знаниями и вспомнить, как вычисляется MD5 или SHA1, вспомнить, как работают RSA и AES? Особенно при условии, что на практике будут использоваться только библиотечные реализации этих алгоритмов.

                    • 0

                      Устроят.

                • +2
                  Заменим «алгоритм сортировки» на «алгоритм хеширования», И вот уже 90% программистов отсеивается из программистов.
                  Заменим на «алгоритм шифрования», желательно каким-либо более устойчивым, чем SHA1, и останется 1% тех, кто собственно работал в разработке алгоритмов шифрования.

                  SHA1 как раз алгоритм хеширования, а не шифрования.
                • 0

                  И тут вдруг обнаруживается, SHA1 — это алгоритм хеширования, а не шифрования… Фейл.
                  UPD, а, уже сказали. Ну ладно, будет ещё раз.

    • +36
      Мне кажется умение делать исследование вопроса — лучшее качество для разработчика. Например можно понаблюдать как человек это делает. Выбирает первый попавшийся ответ или сравнивает с другими. Сверяется ли потом с документацией. Правильно ли задает вопросы? Может ли объяснить ответ, который он выбрал. Поделитесь пожалуйста, что за мотивация запрещать гуглить?
      • +6

        как жаль, что таких людей мало среди интервьюеров =)

      • 0

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

      • +2

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


        А задачки на доске/на листочке, теоретически, нужны лишь для того, чтобы поговорить о решении (ну не дашь для этого сложную задачку, зато возможности адаптации решения — хорошая тема для разговора). Но на практике — почему-то люди на них отсеиваются (в примере с сортировкой — как если бы человек не то что не воспроизвёл по памяти quick sort или пузырёк, но даже не смог бы на коленке придумать хоть какую-то сортировку за O(n²) или написал вместо неё slow sort)

      • +6
        Мне кажется умение делать исследование вопроса — лучшее качество для разработчика.
        Это может быть лучшее положительное качество. А собеседование призвано отсеять людей обладающих отрицательным качеством. Всё что эти тесты позволяют сделать — избавиться людей, которые будут решать задачу квадратно-гнездовым способом.

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

        Просто потому что если вы «увязните» в сложной задаче — у нас найдутся десятки, сотни людей, которые смогут вам помочь и разобраться. А вот если вы «налажаете» в чём-то простом… то может оказаться что два датацентра встанут и мы получим убытки примерно в размере вашей зарплаты за 100 лет.

        Вот и всё. Как вы умеете решать сложные задачи — несомненно важно, но куда важнее — знать умеете ли вы решать задачи простые.
        • +1
          Спасибо! Вы заставили задуматься об этом в другом ракурсе. Никогда не смотрел на собеседование с такой точки зрения.

          Около месяца назад смотрел выступление на тедтолкс, где человек говорил тоже самое. https://youtu.be/YyXRYgjQXX0. Его выступление конечно же не про собеседование разработчиков, но про собеседования вообще. Забавно, но только сейчас я понял его совет.

          Он говорит что при собеседовании важнее исключить неподходящих людей, чем пропустить подходящего. Можно сказать что False Positive ошибка предпочтительнее, чем False Negative при стремлении недопустить в команду неправильных людей.
        • 0
          отсеять откровенно некомпетентный народ может и сам хр без технического народа.
          у вас правда в конторе десятки-сотни народу ничем не занимаются, только решают чужие проблемы? и они вот прям самые скиллованные из всех?
          или всё-таки у них есть свои задачи, от которых еще надо оторваться, въехать в чужую проблему, решить ее, а потом опять вспоминать свою задачу столько же времени?
          • +2
            У нас принято помогать друг другу. И да, чаще всего помогают самые скиллованные. Они не делают это все время, у них есть и своя работа. Взаимопомощь и код ревью укрепляет отношения внутри команды. Благодаря этому джуны и мидлы боятся сделать что-то плохо, нечитаемо или неверно. А главное, они не бояться задавать вопросы. И в этом стремлении писать хорошо их мотивирует совсем не бизнес, а что-то другое, чисто человеческое. Если никто не будет помогать, ничего этого не будет. Будет тупое производство кода.

            Зря вы зацепились за гиверов и тейкеров, тут вопрос не о людях и их работе, а о целях собеседования. я не имел ввиду что нужно переложить концепцию выявления гиверов при собеседовании разработчиков. Я имел ввиду что идея «лучше отсеять вредителей, чем не нанять приносящего пользу» мне понравилась. Как это делать совсем другой вопрос.
            • 0
              ну конечно, если проверять то, что в работе на хрен не надо, на собеседовании, и не проверять нужные скиллы, неизбежно возникнет необходимость хотя бы снизить процент полной лажи. тогда да, принять недоумка хуже, чем не упустить гения. особенно если это что-то типа госконторы, из которого этого недоумка потом сложно уволить.
              но почему бы просто не проверять нужные навыки сразу, а не придумывать под это идеологию какую-то?

              я вижу в этом необходимость только в том случае, если это какое-то двойное слепое собеседование :) так нет же, соискатели тоже заинтересованы в том, чтоб не ходить на заведомо неподходящее собеседование и прийти на перспективное, и в резюме они обычно пишут, что умеют

              я как-то раз видел со стороны собеседование, где человека спрашивали, знает ли он, что такое переменные.
              и интервьюерами в этом случае были мужик из заводского цеха и какой-то абстрактный начальник. то есть полная лажа со стороны hr.
              вот только в этом случае я вижу плюсы от проверки пузырька
              • +1
                так нет же, соискатели тоже заинтересованы в том, чтоб не ходить на заведомо неподходящее собеседование и прийти на перспективное, и в резюме они обычно пишут, что умеют
                Вашими бы устами. Нормальные соискатели — да. Проблема в то, что на собеседовании вам, в подавляющем большинстве будут встречаться подобные персонажи. Их, в общем потоке не так много, но за счёт того, что «нормальные кандидаты» проходят одно-два интервью и устраиваются на работу, а вот эти вот «выпускники курсов на которых их обучали не говорить что у них нет опыта» интервьюируются в сотни компаний — их процент «на входе» резко повышен.

                И как вы их предлагаете отсеивать?

                но почему бы просто не проверять нужные навыки сразу, а не придумывать под это идеологию какую-то?
                Ещё раз: потому что важнее не то, что кандидат умеет делать, а то чего он не умеет — но пытается.

                вот только в этом случае я вижу плюсы от проверки пузырька
                Вы вообще сколько людей в своей жизни проинтервьюировали? За исключением тех, которых вам знакомые порекомендовали?

                А если я вам скажу что на телефонном интервью больше половины соискателей не могут написать ничего? Ну вот совсем ничего — ни FuzzBuzz, ни пузырка, ни чего-либо подобного?
                • –1
                  Вот я — на бумажке не смогу написать ничего — ни физбаз, ни пузырька. Ни на одном языке программирования. Уверяю с честными глазами, что знаю их три, а основной — один.
                  Давайте обсудим:
                  1. с какой стороны меня это характеризует как специалиста?
                  2. чем плохо для компаний меня нанимать?
                  • +2
                    1. с какой стороны меня это характеризует как специалиста?

                    Либо вы в любой мало-мальски сложной ситуации теряетесь, либо вы действительно так себе специалист. Для меня непонятно, как можно не написать тот же самый физбаз на бумажке, если человек знает хоть какой язык программирования. Синтаксис циклов, условий и определения массивов — это штука, которая в любом случае должна быть в голове, а не в гугле. Разработчик без локального кеша самых основных знаний так же неконкурентоспособен, как и процессор без кеша.
                    2. чем плохо для компаний меня нанимать?

                    Ну как минимум риски выше, чем в случае кандидатов без этих проблем.
                    • –1
                      С позиции «нужно рассудить и решить здесь и сейчас» вы правы, но есть подвох.

                      Если встретите кандидата, который не может написать физбаз, спросите его номер телефона, день рождения или что-нибудь еще, что он вроде «должен» знать. И удивитесь…

                      Люди разные. У кого-то собеседование вызывает заметный стресс и с каждым случаем нужно разбираться. Времени ровно час. Мы все куда-то спешим.
                      • +1
                        Если встретите кандидата, который не может написать физбаз, спросите его номер телефона, день рождения или что-нибудь еще, что он вроде «должен» знать. И удивитесь…

                        Это абсолютно разумный критерий проверки, но есть нюанс. На собеседования же никто «с места в карьер» не скачет. Т.е. не бывает такого, что приходит кандидат, ему сразу говорят: «Берите ручку, первый вопрос физбаз, второй баблсорт. Садитесь, пишите, время пошло.»
                        Есть этап знакомства, есть этап общих вопросов. И когда доходит до практической задачки, уже и так прекрасно видно, кандидат растерян/перепуган, или нормально всё воспринимает. Поэтому и к результатам теста уже относишься вполне объективно.
          • 0
            у вас правда в конторе десятки-сотни народу ничем не занимаются, только решают чужие проблемы?
            И близко нет. И всех есть свои задачи. Но если вы «увязните», если задача вам окажется «не по зубам» — помощники найдутся.

            или всё-таки у них есть свои задачи, от которых еще надо оторваться, въехать в чужую проблему, решить ее, а потом опять вспоминать свою задачу столько же времени?
            Разумеется есть. Потому писать пресловутый «пузырёк» они за вас не будут. А вот исправлять приложение, которое заваливает 500 серверов и с которым вы уже месяц совладать не можете — будут.

            Потому умение вами самостоятельно справиться с пузырьком важнее, чем умение совладать с 500 серверами.
    • +7

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


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

      • +4
        Проблема с тестовым в том, что неясно сколько по факту человек времени потратил на его решение. У нас был печальный опыт найма сотрудника, когда с тестовым он справился неплохо, а в итоге выяснилось, что этот человек работает в 3 раза медленнее остальных наших разработчиков.
        • +1
          Есть как минимум два хороших способа засечь время для выполнения небольших задач и один — для больших.

          1) Тесты на Codility
          2) Посадить человека с ноутбуком за стол, дать задачу, засечь время
          3) Дать человеку рабочую задачу за деньги и поставить дедлайн. Если выполнил вовремя и согласен продолжать за те же деньги — значит с большой вероятностью работает удовлетворительно.
          • 0
            1) У нас тестовое на Unity3d.
            2) На удалёнку ищем. Это, во-первых. Во-вторых, я бы как соискатель отказался от такого тестового, что за контроль такой? Недавняя история с устройством на работу в Амазон вспоминается; то ли тут, то ли на гиктаймс была статья. Как следствие, я бы таким образом явно не стал человеку тестовое давать. Это, как минимум, не слабый стресс для него.
            3) Разработчик как правило ищет работу не в конкретную контору. При прочих равных, вряд ли он будет тратить время на тестовое в таких условиях.
            • +1
              Да, в случае удаленки + Unity первые два варианта — не вариант :) По поводу третьего — меня удивляет ваш подход, честно говоря. Что значит «разработчик ищет работу не в конкретную контору»? Как это связано с тестовым заданием? Разработчик ищет работу, есть тестовое задание для этой работы.

              > При прочих равных, вряд ли он будет тратить время на тестовое в таких условиях.

              Ключевые слова в моем предложении — «за деньги». Что значит «в таких условиях»? Самые нормальные обычные рабочие условия. Есть работа за деньги. В вашем случае — удаленно, на Unity 3D.
              • +7

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

                • +2
                  Тут ещё дело не только в нежелании делать тестовое, но и в том, что в компанию, куда вы хотите устроиться, также и другие люди подаются.

                  В итоге, пока вы делаете тестовое (даже оплачиваемое) для одной компании, можете упустить рабочее место в другой. Вон у zagayevskiy можно спросить. Он несколько недель потратил на тестовое для ZeptoLab. За это время вакансию, где тестового нет, уже и закрыть могут. Правда, в его случае, он целенаправленно в ZeptoLab шёл…
                  • +6

                    Лично для себя вижу два варианта, когда соглашусь делать тестовое не "на бумажке" прямо на собеседовании на 10-15 минут:


                    • очень хочу в конкретную фирму
                    • условия заметно выделяются среди рыночных, скажем, предлагают процентов на 20 больше или офис в пешей доступности от дома.
                    • 0
                      Второй вариант является разновидностью(входит в подмножество?) первого :)
                      • 0

                        Скорее наоборот, например заметно выделяются среди рыночных предложение с условием "Кратко о себе: https://google.com"

          • +3
            1) Codility — полный бред, даже хуже вопросов по алгоритмам у доски. Может там и можно создать свое уникальное задание, но те, что давали мне, были задачками далекими от реальных и представляли собой классические олимпиадные задачки. Все бы ничего, но в них очень много граничных условий, которые очень сложно продумать за отведенное время. В итоге получаешь очень низкий рейт из-за мелкой ошибки вроде (< вместо <=). Все задачи, что мне давали, гуглились. Это значит, что проходят эти задания не те, кто честно пытаются их решить, а обычные Stack Overflow Driven девелоперы или олимпиадники (которые часто не так хороши в разработке реальных проектов).
            2) Довольно хороший подход из моего опыта как со стороны кандидата, так и со стороны собеседующего.
            3) Тут уже зависит, есть ли подходящие задачи для такого аутсорса.
            • 0
              Я несколько раз проходил тесты на Codility как первый этап. Потом переходили к пункту 2, обычно. И на этой стадии я нередко выяснял, что codility нужен чтобы отбраковать людей, которые совсем не умеют писать код и простейшие алгоритмы (никак олимпиад, например может быть простая функция для преобразования массива по заданному правилу). Без подобного отсева на следующие этапы, по утверждениям рекрутеров, будет тратиться неоправданно много ресурсов впустую. Есть же статьи в т.ч. на хабре про то, как много людей не умеют писать код, на примере FizzBuzz. Так что есть смысл сделать комбо. Быстрый отсев через Codility-like (задание поставьте хотя бы FizzBuzz), потом переход ко второму или третьему варианту.
              • 0
                Отсеивать можно, но тут важно не перегнуть палку. Я проходил вроде бы 3 теста на Codility. Уровень сложности задач был от очень простых до реально олимпиадных, при чем время на олимпиадные было меньше, чем на простые. Однако даже для простых задач есть набор тестов, которые по сути должны являются требованиями, но вы о них ничего не знаете. Соответственно ваш код могу запустить, например, с массивом очень большой длины на которую вы не рассчитывали, а условие задачи об этом умалчивает, и вы получите очень низкий рейт. Некоторые даже давали второй шанс с указанием результатов, в котором был список тестов: зеленых и красных. Но в попытке пофиксить один тест можно с легкостью завалить два других (вы ведь не видите код теста, только его абстрактное название) и еще ухудшить рейт. На код обычно вообще не смотрят при этом, так как тест дает рекрутер (видимо даже не советуясь с нанимателем) и пропускает только основываясь на рейте.
              • +1

                С простыми задачками, которые писать три минуты, можно сделать проще — во время скайп-интервью попросить расшарить экран и написать код (конечно, надо заранее предупредить об этом, чтобы человек подготовил себе среду разработки). Быстрый отсев имеет смысл, только если у вас поток кандидатов огромный, а на таком отсеется процентов 80. Вряд ли это такой частый случай. Зато видно, что человек не гуглил готовое решение.

            • 0

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


              Но то, что гуглится, позволяет сэкономить время: там часто удобнее сначала написать брутфорсный вариант, а потом уже искать "правильное" решение, используя брутфорсный в качестве теста. Гуглом можно сэкономить минут 5-10.


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

              • 0
                В моем случае гуглились именно что правильные решения с учетом всех граничных условий. Я когда их находил, уже после отправки задания (пытался быть честным, да и интересно было самому решить), — сильно расстраивался, так как понимал, что рейт будет завален.
                • 0

                  Я до отправки гуглил только последнюю, которую не решил. Когда нагуглил решение (причем это был не код, а статья об олимпиадной задаче и формула, описывающая суть решения) — офигел, понял, что у меня на это ушло бы часа три, реально олимпиадная мозгодробилка. Вместо решения поставил комментарий со ссылкой и написал, что копипастить не хочу, а сам решить не смог. :)


                  Первые две потом погуглил — правильных решений не нашел, одни брутфорсные. Видимо, свежие задачки попались. Я их решил, но в граничных условиях немного накосячил. Сразу после отправки понял, где, и написал об этом в емейле, проканало. :)

          • +1

            Codility — это вообще фигня бессмысленная. Умение решать околоолимпиадные задачки очень слабо коррелирует с умением решать прикладные задачи.


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

        • +7

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

          • 0
            А что мешает человеку, выполнившему тестовое задание быстро, впоследствии работать медленнее остальных?
            Да ничего. Правда, в таком случае с человеком придётся распрощаться.
            Мой опыт также говорит, что медленнее — не значит хуже (если вы, конечно, не студия-потогонка).
            Я число 3 не просто так привёл. Этот сотрудник делал таски в 3 раза медленнее, а баги в его коде мы отлавливаем до сих пор.
            Минус, безусловно, и в нашу сторону, у нас нет нормального процесса код ревью =\

            А вот детальное обсуждение результатов тестового задания, с дополнительными сопутствующими вопросами — дает отличное представление о том, что человек умеет и знает на самом деле.
            Проблема в том, что тестовое должно быть не слишком большим. Как следствие, довольно сложные штуки туда не впихнёшь. Тестовое показывает, что человек владеет технологией/движком. А вот уже при работе с конкретными вещами на проекте возникают проблемы.
            • 0
              при работе с конкретными вещами

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


              баги в его коде мы отлавливаем до сих пор

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

              • 0
                Ну вот попался вам криворукий персонаж, это понятно, но почему из этого опыта вы делаете странный вывод о том, что скорость выполнения задания — главный параметр, по которому его стоило отсеять?
                Я такого не говорил. Я лишь сказал, что нам не нужен разработчик, который работает очень медленно и при этом косячит.
                • 0
                  Проблема с тестовым в том, что неясно сколько по факту человек времени потратил на его решение.
                  • 0

                    Я при устройстве на нынешнее место работы заранее знал, что смогу взяться за задание не раньше, чем через неделю — просто не было времени, работал (отделка, сантехника, всё такое, а дома нет возможности поставить MS SQL). Поэтому меня этот вопрос (демонстрация реально затраченного времени) затрагивал очень сильно. Так что неделю я потратил на анализ ТЗ на бумаге и задавал много вопросов — предупредив, впрочем, когда смогу реально приступить к проекту. А готовый проект отправил вместе с репозиторием (типа трекинг работы). В результате оказалось, что про Гит там ни сном, ни духом (мне, впрочем, разрешили — в моём единоличном ведении отдельное приложение), а решающую роль сыграли заданные вопрсы...

            • 0
              > Минус, безусловно, и в нашу сторону, у нас нет нормального процесса код ревью

              Кроме этого возможно, что нет грамотной постановки задачи, приемочных тестов с приличным code coverage и QA и т.д. и т.п.

              > Проблема в том, что тестовое должно быть не слишком большим.

              См. выше. Это не проблема, когда за уделенное вам время и предоставленные результаты вы начинаете платить деньги. Тогда «тестовое» задание может быть сколь угодно большим и сложным и результаты пойдут в работу. На самом деле это реальная работа. Просто посмотрев результаты вы либо примете человека в проект, либо нет. Вот и вся суть «теста».
              • +3
                Мы над проектом более 3 лет работаем. Человеку только чтоб разобраться в нём, как минимум, пару дней потратить придётся. То есть, мы заплатим за неделю, а по факту за день работы. Таких соискателей несколько. Если не касаться вопроса денег, то это много времени занимает с нашей стороны, а команда у нас небольшая.

                Это не фриланс заказ на какой-то небольшой скрипт, который работает и ладно.
                • 0
                  Тестовым заданием оторванным от работы протестить работу в проекте где неделю разбираться надо конечно не получится. Если у вас только неделю в работу въезжать надо… ну вы либо это оплачиваете работнику, либо продолжаете есть кактус, либо что-то меняете в процессе разработки (я НЕ утверждаю что он плохой, может действительно у вас там rocket science). Можно только посочувствовать.

                  И да — подбор хорошего программера в крупный/сложный проект занимает много времени. Ну а что делать. На периоде в год неудачный выбор принесет большие убытки, а удачный — большой профит, так что это все равно стоит того. Вы наверняка это и сами все понимаете, так что у нас наверное и нет спора как такового.
              • +1

                1) Проблема вхождения в проект
                2) Нет гарантий, что результаты пойдут в работу, а деньги платить надо. Предлагать же вариант "если мы возьмём вас на работу, то оплатим и время, потраченное на тестовое" очень похоже на развод, особенно если с десяток соискателей на одну позицию.

              • 0
                > Просто посмотрев результаты вы либо примете человека в проект, либо нет. Вот и вся суть «теста».

                Это суть испытательного срока
            • 0
              Я число 3 не просто так привёл. Этот сотрудник делал таски в 3 раза медленнее, а баги в его коде мы отлавливаем до сих пор.

              А человека, который делает таски в 3-5 (буквально) раз медленнее, но баги вылазят через полгода и связаны с неверно сформулированными в тз граничными условиями, а на ревью правится разве что кодстайл вы бы тоже не взяли?
              • 0
                Вы какие-то абстрактные вопросы приводите, когда я конкретный пример привёл =\
                Проблема была не в ТЗ, так как другой сотрудник по такому же ТЗ нормально всё сделал.
                • –1
                  Но вы-то подаёте это так, как будто вообще не стоит брать разработчиков, которые не хреначат код нон-стопом и вообще скорость — главный параметр при собеседовании.
              • 0

                Как неверно сформулированные в ТЗ граничные условия могут привести к багам в коде? Баг — неверно реализованное ТЗ, а если ТЗ не соответствует бизнес-задаче, но верно реализовано в коде, то баг в ТЗ, а не в коде.

        • +4

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


          У нас был только один случай когда человек сделал на почти отлично тестовое задание, а потом не справлялся со своей работай. Но это стало понятно в первый же месяц испытательного строка и мы с ним быстро распрощались. Я так думаю что тестовое задание он просто не сам делал. Но это опять таки исключение. Чтоб отлавливать такие исключения есть испытательный срок.

        • +6

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

        • 0
          Медленно-то в каком плане? Набора кода или проектирования, продумывания архитектуры, уточнения требований и условий? Если второе — то это не плохо, а скорее даже хорошо. Если первое — это временное явление, которое с опытом нивелируется, выучит синтаксис, паттерны конетного языка (или набора языков) и т.д.
          • 0
            1) Медленно набирает. Hot keys почти не использует. А человека мы нанимали изначально удалённо, про это узнали, только когда в офисе все вместе собрались.
            2)
            Если второе — то это не плохо
            Чем же хорошо? Я приведу конкретный пример. У нас в игре есть различные персонажи, у каждого свои спелы. Стояла задача сделать спелы для нового персонажа. Человек провозился несколько недель. Уже прошло несколько месяцев после увольнения, но баги то тут, то там всплывают.
            Другой сотрудник для уже следующего нового персонажа сделал все спелы за пару дней. Ну да, сложность проектирования новых спелов +- может отличаться, но не в 3-4 раза по времени.
            • +3
              Я почти не использую хоткеи в некоторых средах, где проще через гуй сделать что-то, что я теперь разработчик никакой из-за этого?
              • 0
                Copy/paste тоже мышкой?
                • 0
                  Нет, хотя в редких случаях бывает мышкой.
                  Что меня бесит — так это когда некоторые функции можно использовать исключительно используя клавиатуру, некая «недоступность» для изучения/напоминания, ты просто должен запомнить все эти комбинации.
                  • 0
                    Но я сомневаюсь, что у вас сильно производительность страдает от этого. Знаете ведь все эти шуточки про «секретарш, который набирает текст 1 пальцем»? Вот примерно такое качество набора было у этого программиста. Я считаю, что это неприемлемо, тем более, что человек был на роль лида.
                    • 0
                      Ну на роль лида все-таки следует отбирать повнимательнее, что-же вы так)
                      • 0
                        Первые несколько месяцев работали только удалённо. А вот когда съехались в один офис, тогда и осознали свою ошибку…
            • 0
              1) Я всего два хоткея знаю, которые и использую. Оба для Sublime Text. Первый чтоб скопировать текщую строку, а второй, чтоб быстро выделить слово в разных местах и сделать быструю автозамену.

              2) У вас такой пример. У меня есть другой пример. Человек пишет код довольно быстро и крайне бездумно. Любит приступать сразу же, без какой-либо подготовки. Никаких паттернов, никакой выдержанной структуры, продуманной архитектуры. Разные отступы? Ой, ну и ладно. Спагетти-код all the way. Зато да, якобы работает. Тестируется всё это дело так же как и пишется — на глазок.
            • –1

              Ну и что такого, что медленно набирает? Программист — не секретарь. Главное — решение задачи за приемлемые сроки.


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

              • 0
                Ну и что такого, что медленно набирает?
                Главное — решение задачи за приемлемые сроки.
                Вы в своих же сообщениях противоречия не видите? Две недели тратить на таск, который делать 2 дня — это как раз-таки не укладывается в приемлемые сроки.

                • –1
                  Вы в своих же сообщениях противоречия не видите? Две недели тратить на таск, который делать 2 дня — это как раз-таки не укладывается в приемлемые сроки.

                  Нет, не вижу. У обычного программиста скорость набора выше, чем скорость мысли.
                  Или задача сводилась просто к бездумному набору большого количества кода?

                  • 0
                    Задача была реализовать новые спелы для персонажей. Нормальный разработчик это сделал за 2 дня. Медленный такое же задание за 2 недели.
                    • –1

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


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

                    • 0
                      Приходя в новый существующий проект, я дико торможу. Потому что нужно уложить в голове новую схему, взаимосвязи, местные практики, а параллельно с этим — выгнать оттуда предыдущую. Но зато через два месяца в голове всё утрясается, и то, что поначалу занимало неделю, делаю за день или меньше, и часто знаю о коде и проекте больше, чем те, кто делали его год. Видимо, у вас бы я испытательный срок не прошёл.
                      • +1
                        Человек у нас уже проработал 5 месяцев до этого…
              • 0

                А как бы вы посмотрели на человека, который устанавливает отладчик на продакшен сервер?

            • 0
              Медленно набирает. Hot keys почти не использует.


              Так вам наборщик кода нужен или разработчик? К примеру я мало набираю кода в течении дня, большая часть времени уходит на проектирование, нахождение решения, профилирование, оптимизацию, отладку бизнес логики… то чем должен заниматься разработчик, а не строчить гавнакод
              • 0
                Я вот не понимаю, вы все шутите так или на полном серьёзе? Речь не о том, что человек обдумывает задания долго; сам факт того, что он даже copy/paste делает мышкой — это уже звоночек. Я бы даже сказал ЗВОНОЧЕК.
                • +1

                  Скажите, за использование нестандартной цветовой схемы в IDE у вас сразу увольняют, или сначала выговор?

                • –1
                  В чём такая принципиальная проблема в том, что кто-то делает так как ему лично удобно?
                  Вы что упоротый фанат командной строки ненавидящий графические интерфейсы?
                  • 0
                    Пускай делает, но если это не мешает работе.
                    Вы что упоротый фанат командной строки ненавидящий графические интерфейсы?
                    Нет, я человек, который хочет нанять сотрудника, который будет помогать нам в разработке проекта, а не человека, который будет просиживать часы и за это получать з/п.
                  • 0
                    Судя по минусам в Карму мне и DistortNeo — у кого-то из манагерров нехило бомбануло, от того что ему написали, что работа программиста не измеряется количеством написанных вд ень строк.
                    • 0
                      Я и не говорил, что работа программиста измеряется количеством строк кода. Я вам простую аналогию приведу: вы чем будете сверлить стену, отвёрткой или дрелью? В данном случае медленный (не в плане кодинга, а в плане сдачи тасков) сотрудник — это отвёртка.
                      • +2
                        Я думаю, все проще. Если человек сосет в таблице умножения, то очень маловероятно ожидать успехов в решении дифференциалов. Я не говорю что такое невозможно, но искать корнеркейсы и как работодателю набивать шишки чтобы понять эту простую истину, смысл?
                        • 0
                          Человек с тестовым заданием справился хорошо, при разговоре тоже не было ничего подозрительного.
                • 0
                  сам факт того, что он даже copy/paste делает мышкой


                  и что? я работал с человеком который пользовался трекболом, его в топку? я еще как то наблюдал за кибер «спортсменами», были крутые чуваки которые одной мышкой с доп. кнопками делали хот кейшиков… дело в навыках и моторике
                  • 0
                    Вы видите в моих сообщениях то, чего там нет. Если продуктивность НЕ страдает, то его дело. Но если таски делаются в разы медленнее, чем должны, то да, в топку. Медленный набор — это лишь 1 из пунктов не в пользу этого сотрудника. Само собой только за это его бы никто увольнять бы не стал.
      • +1

        Тестовые задания люди не любят делать, если просто ищут работу, рассматривая множество предложений.

        • 0
          Ещё от позиции зависит. Если поиск сотрудника идёт на роль лида или т.п., то соискатель думает, что его портфолио и так красноречиво за него говорит и делать тестовые не хочет в принципе.
          • 0

            Угу. По крайне мере если условия предлагают среднерыночные.

        • +1

          Мы с такими не работаем. Если человек не хочет делать тестовое задание то просто дальше с ним не общаемся. В моей практике было два случая когда взяли без тестового задания:


          1. Я сам тогда рядовым сотрудником работал. Кандидат на собеседовании сказал что-то типа "чего это я такой крутой и буду тут тестовое делать?". Начальник его взял. Гонору от него было… И делал он проект один месяца три. Так и не сделал. Потом я за него почти с нуля за неделю все написал. Все сроки профукали. Через год со скандалом уволился.


          2. Тут кандидат просто сказал что вот я для других делал почти такое же, может его посмотрите. Тут все понятно.

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

          • +2
            Если ты такой крутой программист, что хочешь быть сениором, то сделать тестовое тебе не составит труда.

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

            • 0

              И вы на все хотите пойти и на всех условия одинаковые что все задания надо делать?


              Ну тестовое задание на день работы сениора это действительно многовато. Наше где-то на 2-4 часа расчитано (я надеюсь).

              • 0

                "нас устраивает запрошенная вами в резюме на сайте ххх сумма, когда вам будет удобно прийти на собеседование? Кратко о себ: занимаемся разработкой" вс "нас устраивает запрошенная вами в резюме на сайте ххх сумма, сделайте тестовое задание во вложении и сообщите когда вам будет удобно прийти на собеседование? Кратко о себ: занимаемся разработкой". Куда сначала пойдёте? Начнёте ли писать тестовое для второй, если в первой сспросят "прямо сейчас готовы приступать?", а на ответ "у меня ещё одно собеседование запланировано" скажут "приступайте прямо сейчас и мы вам даем на 15% больше чем вы просили".

                • +1

                  Погуглю что за фирмы и какие условия. Но если все одинаково то пойду сперва к тем кто сперва собеседует. Тех кто "приступайте прямо сейчас и мы вам даем на 15% больше чем вы просили", скорее всего пошлю — такая поспешность это явно что-то не здоровое. %)

                  • +2

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

          • 0
            Была ситуация почти как в 2. но с исходом как в 1. Только вместо тестового мне предоставили код какого-то проекта. Кандидат при этом хорошо знал основы языка (Objective-C) и платформы, поэтому решили взять, хоть и не без сомнений.
            Еще одной причиной был обычный для IT дифицит кадров. настолько большой, что компании боятся отпускать более-менее вменяемых кандидатов. Если сегодня вы не берете кандидата «сходу» и предлагаете ему тестовое задание, то завтра он примет офер другой компании.
          • +5

            Представления не имею, что называете «сеньором» вы, но на тех, кого называю сеньором я, идет охота хедхантеров. В очереди стоят, чтобы только я согласился безо всяких тестовых заданий поехать поговорить с работодателями.

            • 0

              Наверное поэтому нам и тяжело найти сениора :).


              Но не представляю как можно брать человека на работу не видя того что он может сделать. Ну да, open source всякий можно использовать, но большое количество проектов (кода) далеко не у всех хороших программистов есть в open source (сам тому пример, буквально пара небольших открытых проектов есть). Всякие статьи/конференции тем более не показатель.


              Но это все уже немного другой вопрос, как мне кажется

              • –10
                open source всякий можно использовать,
                но большое количество проектов (кода)
                далеко не у всех хороших программистов есть в open source

                Это иллюзия и самообман. На дворе 2017 год. У всех людей, могущих претендовать на позицию сеньора есть мегабайты кода в open source и минимум несколько тысяч репутации на SO.


                Остальных — я на сеньора даже резюме смотреть не стану.

                • +13

                  Зря вы так думаете. Знаю не мало хороших программистов (про себя скромно умолчу) у кого очень мало open source. И уж тем более репутация на SO (это я бы вообще не рассматривал, т.к. чтоб заработать там репутацию надо не столько знания, сколько время). Далеко не у всех есть время чтоб занимать open source'ом. Хорошо если начальство/клиент позволит выложить в open source то что было в рабочее время написано. А если нет, то где взять время даже не представляю.

                  • –5
                    Знаю не мало хороших программистов (про себя скромно умолчу)
                    у кого очень мало open source.

                    Далеко не у всех есть время чтоб занимать open source'ом.

                    Я с самого начала и сказал: мы разное понимаем под понятием «сеньор». Сеньоры работают на позициях, на которых есть заранее оговоренное время (обычно — 1 день в неделю) на занятия open source’ом, домашними проектами. Также сеньор в рабочее время часто отдыхает на SO, потому что 8 часов в день без остановки писать хороший код невозможно. Ну и, разумеется, сеньор часто коммитит в основные чужие репозитории проекта. Мы недавно включили Riak в стек — мои коммиты сразу появились в коде официального клиента для наших языков.


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


                    «Хороший программист» — это мидл, там другие требования. Но я недавно понял, что и от мидла уже хочу кода на гитхабе: людей вокруг много, мне не трудно подождать подходящего.

                    • +5
                      Я с самого начала и сказал: мы разное понимаем под понятием «сеньор».

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


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

                      • –7

                        Я живу в нормальном мире, в котором сеньоров мало. Иначе смысл, вложенный в слово, высыпается из него.


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


                        А если любого разработчика с опытом и мозгами называть сеньором, но у меня есть разделение гораздо понятнее: девелоперы (это то, что вы называете сеньором) и обезьяны (это то, что вы называете мидлом).

                        • +9
                          А если любого разработчика с опытом и мозгами называть сеньором, но у меня есть разделение гораздо понятнее: девелоперы (это то, что вы называете сеньором) и обезьяны (это то, что вы называете мидлом).

                          В общем вы Д'артаньян, а остальные… понятно кто.
                          • –2

                            Вы ничего не поняли, что неудивительно.


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


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


                            Но если вам всем так необходимо считать себя сеньорами — да хоть господами богами считайте.

                            • +3

                              А что там на SO делать? Код-то я писать люблю, за последние лет пять только один день без коммитов был, а вот с людьми общаться я люблю уже меньше. В свободное или непродуктивное на работе время я лучше статьи почитаю.

                              • 0
                                вот с людьми общаться я люблю уже меньше

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


                                Читайте статьи, я что, против что ли? Хоть рассаду выращивайте. Просто сеньор — это набор навыков и умений, а не «пишу код хорошо». Просто писать код я аусорсеров найму за полцены. Сейчас программистов, которые способны написать километр очень внятного изящного архитектурно продуманного кода — вагон.


                                Сеньора же отличают другие навыки, в частности — менторские. Так что тут все просто: хотите позицию сеньора — покажите вашт наработки в этой области. Кроме репутации на SO более-менее объуетивных параметров нет. Вот и все.


                                Ну и да, лучше помочь одному индусу написать хороший код, чем трепать языком тут с горсткой неудачников :)

                                • +1
                                  покажите вашт наработки в этой области

                                  Закрыты NDA — ещё вопросы? И ваша классификация явно не укладывается в общепринятую. Менторские качества от сеньора обычно не требуются, это качества для лидов, которые должны вести людей за собой. От сеньоров требуется в этом плане консультировать интернов, джунов и мидлов при необходимости (определяется лидом или ПМ-ом в общем случае), а не тащить их.

                                  • –4
                                    Закрыты NDA — ещё вопросы?

                                    Нет, больше никаких вопросов, до свидания. Ищите контору, которая вам на слово поверит, или попросит баблсорт на доске изобразить.


                                    ваша классификация явно не укладывается в общепринятую

                                    Обще- — это кем? Людьми, которые хотят называться сеньорами невзирая ни на что? Так, чтобы в каждой конторе было по пять сеньоров на одного мидла и половину джуниора? Тогда да, отличается.


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

                                    • +2

                                      Зачем мне искать, я от них отбиваюсь :)


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


                                      Сеньор — это должность, Senior Software Engineer/Developer, в русском бюрократическом переводе — старший инженер/техник-программист. Лид — тоже должность, ведущий инженер-программист.


                                      Да, не может быть сеньоров много, вернее больше чем миддлов/джунов в устоявшемся режиме развития или даже стагнации отрасли, поскольку каждый сеньор должен побывать джуном/миддлом, но не каждый джун/миддл дорастет до сеньора. Но поскольку отрасль развивается и каждый день число джунов растёт уже много лет, то растёт и число сеньоров каждый день.

                                • 0
                                  Просто писать код я аусорсеров найму за полцены. Сейчас программистов, которые способны написать километр очень внятного изящного архитектурно продуманного кода — вагон.

                                  К сожалению, не такой уж и вагон. Не хватает даже их.


                                  Сеньора же отличают другие навыки, в частности — менторские.

                                  Значит, мы просто разных людей называем сеньорами. Нестыковки в терминологии — бывает.


                                  Так что тут все просто: хотите позицию сеньора — покажите вашт наработки в этой области.

                                  Вот статьи на хабре, вот статьи в рецензируемых журналах (правда, уже не совсем по программированию), или вам SO обязательно как инструмент для того, чтобы делиться знаниями?

                                  • +2

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


                                    Да, наверное, встречаются потенциальные сеньоры у которых чего-нибудь нет. Статьи (лучше бы, конечно, свой автономный блог на английском)? — Прекрасно. Код не на гитхабе, а на дискетке? — Тоже ничего.


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


                                    Вот и все, что я хотел сказать.

                                    • 0
                                      Когда вдруг понимаешь, что тебе есть, о чем рассказать на конференции

                                      И при этом не слишком хикка, чтобы на эти самые конференции ходить.

                                      • –1

                                        Сеньоры ходят на конференции, и рассказывают о своей работе. Это — часть понятия «сеньор».


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

                                        • +1

                                          Очень у вас обширное понятие.

                                          • –2

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


                                            Мы же просто грамотных людей в писатели не записываем.

                                            • 0

                                              Высшая ступень — техлиды, ведущие инженеры по советско-российским классификаторам.

                                            • +2
                                              Теперь наконец стало понятно в чём беда. В общепринятой лестнице Senior Software Engineer — это где-то 4-5я градация в лестнице из 10-12 уровней. Дальше там идут Staff Software Engineer, Senior Staff, etc. То, о чём вы говорите — это, скорее, какой-нибудь Google Fellow или Intel Fellow. Гораздо выше на лестнице, чем просто Senior.

                                              Но как рахз они даже и в 2017м редко чего выкладывают на GitHub! В лучшем случае там может оказаться код, который они писали несколько лет назад!

                                              Тут скорее научные статьи и конференции могут быть, чем профиль на GitHub…
                                              • –1
                                                В общепринятой лестнице Senior Software Engineer — это где-то 4-5я градация

                                                Ну если у вас после них идут кто-то у кого в названии есть слово Staff, то мы вряд ли поймем друг друга.


                                                Google Fellow или Intel Fellow

                                                Бгг. В Гугл и Интел идут только те, кому миру сказать самим нечего, за редчайшим исключением. Я как раз сейчас активно отговариваю одного из наших сеньоров идти в Гугл на позицию руководителя направления. Скука смертная же.


                                                В лучшем случае там может оказаться код, который они писали несколько лет назад!

                                                Не в лучшем, а в любом. И код — не парное мясо, с годами не протухает.

                                                • +1
                                                  Ну если у вас после них идут кто-то у кого в названии есть слово Staff, то мы вряд ли поймем друг друга.
                                                  Разумеется. Я живу в мире, где иерархия устроена примерно так. Вы либо никогда не сталкивались с задачами, выходящими за рамки компетенций Senior Software Engineer'а просто. Или, скорее, живёте в каком-то выдуманном вам мире, похоже, имеющем мало отношения к реальности. С учётом безумного напора на важность GitHub'а и Stack overflow — при полном нежелании на вашем примере показать чего ж там такое должно быть, чтобы Senior был Senior'ом я скорее к этому варианту склоняюсь.

                                                  И код — не парное мясо, с годами не протухает.
                                                  Код — нет, а человек — может и да. Вы на работу код собрались нанимать или человека?
                        • +8

                          Подведем итог спора:


                          • Один считают сениором того кто знает все алгоритмы и может посреди ночи за 5 секунд написать любой алгоритм на перфокартах
                          • Другие считают сениором того кто имеет кучу OS проектов на гитхабе и напсиал 100500 пул реквистов в чужие
                          • Третьи — того кто имеет высокий рейтинг на SO
                          • Четвертые — тех кто выступает на конференциях и имеет не меньше тысячи статей на хабре и все с рейтингом не меньше сотни
                          • Пятые — тех кто умеет решать задачи

                          Осталось запилить новый пост на хабре с опросом и выяснить кого больше :)

                          • +5
                            Добавьте 6 категорию.
                            Сеньор это тот кто получает зарплату сеньора в соответствующей должности:)
                            Потому что в итоге именно работодатель решает подходит ли оный кандидат на должность сеньора или нет.
                          • –3

                            Ничего себе итог.


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


                            Другие им возражают, мол, верхние позиции в любых рейтингах существуют не для того, чтобы почесать ЧСВ всех желающих, но для того, чтобы можно было обозначить действительно лучших, и что для попадания в такую категорию необходимо прикладывать много усилий, помимо восхищения собственным уровнем. В частности, помимо уже перечисленного: не зависеть от работодателя, не обращать внимания на зарплату, быть педагогом для всей команды и многое что еще.


                            И, заметьте, ваша точка зрения тут популярна, а моя — нет. Знаете, почему? — Потому что все хотят быть сеньорами не прикладывая никаких усилий, кроме работы в рабочее время за большую зарплату.


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

                            • +8
                              Нет, ваша точка зрения не популярна потому, что для вас сеньор — это некое место в мироздании, какая-то абстрактная великая миссия, тяжкий но почётный пост спасителя галактики индустрии.
                              То есть вы попросту путаете понятия «сеньор» и «гуру».
                              А для нас, «тёмного» народа, сеньор — это в первую очередь позиция в команде. Да, конечно, есть какой-то средний по отрасли уровень скила, который определяет этот уровень, но он и сильно гуляет от команды к команде и состоит в основном из навыков, непосредственно связанных с работой.
                              • –1
                                То есть вы попросту путаете понятия «сеньор» и «гуру».

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


                                То, что описал я — как раз сеньоры. И да, повторюсь, в 95% компаний сеньоров нет, и хорошо. Но мы тут вроде бы обсуждали собеседования, то есть пока компании нет: надо оценить уровень кандидата по засоренному им эфиру.


                                Так вот у сеньоров — есть портфолио. Всегда.


                                А если портфолио нет — это мидл в лучшем случае.


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

                                • 0
                                  А давайте поговорим конкретно, а? Применим физические подход: рассмотрим предельный случай.

                                  Вот у нас есть конкретные тезисы:
                                  У всех людей, могущих претендовать на позицию сеньора есть мегабайты кода в open source и минимум несколько тысяч репутации на SO.

                                  Остальных — я на сеньора даже резюме смотреть не стану.
                                  и
                                  Закрыты NDA — ещё вопросы?
                                  Нет, больше никаких вопросов, до свидания.
                                  И есть конкретный кандидат. Без «портфолио», без open-source проектов, без репы на Stack Overflow.

                                  Так как: таки «давай досвиданья» — или может ещё подумать?
                                  • +1

                                    Ну, технически, стоимость false positive при найме существенно выше стоимости false negative в значительной части областей.

                                  • 0

                                    Вы упоролись, что ли?


                                    https://github.com/google/protobuf


                                    и еще дозиллион строк кода: https://research.google.com/pubs/jeff.html


                                    Вы там ниже пишете:


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

                                    В 2017 — это глупость, граничащая с абсолютной неадекватностью. Для особо одаренных повторяю: pet projects, pull requests во все, чем пользуется ваша команда, просто что-то, что контора может выложить в опен сорс.


                                    И да, если у вас этого нет, это значит только то, что вас нелепо рассматривать в качестве сеньора. Вот и все. Это нормально.

                                    • +1

                                      Даже pull request в публичный репозиторий, используемый в работе, может быть рассмотрен как нарушение NDA, коммерческой тайны и т. п. Локальный форк для внутренних патчей и всё. Более того, есть конторы в которых использование опенсорса запрещено, вернее запрещено использовать софт без прямого двустороннего лицензионного договора с правообладателем или его законным представителем в России.

                                      • –3

                                        Дык можно ведь и на наркодилеров работать, там вообще могут в бетон закатать за коммиты в open source.


                                        Я никак не пойму, что вы пытаетесь доказать: что есть неадекватные работорговцы, работа с которыми приводит к деградации разработчиков? Не сомневаюсь.


                                        Зачем нормальному работодателю с девелоперами, на такое согласными, связываться-то? Повторю, наверное, в стотыщпятисотвосьмой раз: на дворе 2017 год. Тенденция такова: у достойных внимания на позицию сеньора разработчиков всегда (ну хорошо, за редчайшим исключением) есть портфолио.


                                        Да, мы рискуем пропустить маньяка-йети, который программирует не выходя из леса. Ну как бы и хрен с ним. Зато есть внятный критерий отбора и не нужны пузырьки на собеседовании: покажи профили github/so, и поговорим.

                                        • +4

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


                                          И не путайте наличие портфолио и наличие истории вкладов в опенсорс проекты.


                                          С этим критерием отбора вы рискуете получить специалиста, который:
                                          а) решает прежде всего задачи сообщества, а не ваши, но за ваш счёт
                                          б) не считает нужным вообще хранить в тайне какую-то информацию
                                          в) будет конфликтовать даже по поводу лицензий под которыми выкладывать рабочий код, скажем, будет считать что MIT недостаточно православна


                                          Был такой печальный опыт.

                                          • –2

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


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


                                            С оставшимися я разговариваю. Экономия времени — впечатляющая. В моем и нашей компании мире сеньором называется человек, который может не только о себе сообщить, что он — сеньор, а все остальное накрылось NDA, но и доказать это. Повторяю: настоящие сеньоры обрастают этим багажом между делом.

                                            • +2

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

                                              • –2

                                                Неправда. Необходимо, но не достаточно. Это просто понять, попробуйте.
                                                У сеньора есть много отличительных признаков. Если любого одного недостает — до свиданья. Один из них в 2017 году — код для сообщества.
                                                Переформулирую: нам не интересны гуру подковерной разработки. И мы такие не одни, а в хорошей компании. Но я ни в коем случае не навязываю этот паттерн отсева. Просто сообщаю, что так удается собрать самую сильную команду в двухмиллионнике.

                                                • –2

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

                                                  • 0

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

                                                  • –1

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

                                                    • +1
                                                      Код может быть для интересной задачи, но закрытый. Или такой, что бесполезно выкладывать, вроде численных экспериментов в некоторых очень узких областях, или алгоритм управления рубильниками для балансировки нагрузки в электросети.
                                                  • –1

                                                    Ох, зря вы это, сеньоры заклюют.

                                                • 0

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

                                                  • –1

                                                    Ох. У нас бывают открыты позиции мидлов и джуниоров. Добро пожаловать, пока кандидат не позиционирует себя как сеньора.


                                                    Если вдруг — требования отличаются.

                                                    • +4
                                                      Можно поглядеть Ваш GitHub-аккаунт?
                                                      • 0

                                                        Я, в принципе, отправил личным сообщением, но аргумент «сам дурак» — так себе аргумент, и я выше по ветке сто раз повторил, что не уверен, что дотягиваю до сеньора сам.

                                                        • +2
                                                          Не имею привычки называть людей дураками только лишь по тому, что их мнение отличается от моего. Мне просто любопытно, чем мне стоит обзавестись, чтобы считаться Вами годным разработчиком.
                                                          Насколько я понял, аккаунт, что Вы мне показали — рабочий, т.е. там представлена работа, за которую Вам платят деньги? Тогда да, этот аккаунт мне не интересен. Вам чертовски повезло, что Ваш работодатель так относится к сообществу и активно делится наработками. Это здорово! Но я вижу сложившуюся ситуацию так, что бОльшая часть компаний всё ещё закрывает свои наработки. Поэтому всё, что сможет показать разработчик на собеседовании, каким бы крутим он ни был — свои личные проекты, которые он делает в свободное от работы время. Увы. Вот мне и интересно, какая у меня должна быть активность в разработке pet-проектов, чтобы котироваться организацией, подобной Вашей как годный разработчик.
                                                          • 0
                                                            Вам чертовски повезло

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


                                                            Нет, спешу вас разочаровать. Все было не так. Это я убедил руководство выкладывать код, которую напрямую не закрыт NDA. Это я оторвал свою жопу от дивана и сначала уехал в далекую и совершенно неизвестную Германию, потом вернулся, а потом определился с Испанией и почти год целенаправленно искал работу здесь. Это я сам согласился но говнопохапе, чтобы получить визу. Это я неоднократно разговаривал лично с директором, объясняя ему выгоду от участия в open source на длинном отрезке времени. Это я заставил команду вести корпоративный блог. И после всего этого мне довольно странно читать вот это вот волшебное «повезло». Да хрен там, я работал над этим.


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


                                                            Я внятно изложил?

                                                            • +1
                                                              Ой молодец какой! Возьми с полочки какую-нибудь вкуснятку.

                                                              Я опущу ту часть про Ваши путешествия как не имеющую отношения к сути разговора (если вдруг Вы считаете, что эта проблема связана с географией — нет, не связана; я вот в американской компании работаю; такого пристального слежения за кодом нигде пока ещё не видал).

                                                              напрямую не закрыт NDA
                                                              Это какой код то? Какие-нибудь вспомогательные скриптики? Может, ещё что-то? Насколько его много относительно того, что напрямую покрыт NDA? Думаете, в других проектах его много?

                                                              Вы правда считаете, что разработчики в «закрытых» компаниях не стремятся делиться с сообществом? Стремятся. И посылаются далеко. Нашу команду начальство посылало на 4 буквы (в английском нет известных мне направлений из трёх букв) пару раз. И аргументы их не интересовали. Вы, конечно, можете сказать, что недостаточно эти разработчики старались, надо было сильнее жопу рвать (ну, как Вы, например). Но что, если Вам просто немного… да, с тем, что Вы имеете возможность публиковать свои рабочие наработки — Вам, помимо всего прочего, повезло. Это, кстати, ничуть не умаляет Ваших заслуг. В том числе на поприще популяризации OpenSource.

                                                              Хорошо, давайте пойдём с другой стороны. Покажите мне любой GitHub-аккаунт, которым, по Вашему мнению, стоит обзавестись, чтобы считаться сеньором. Изначально то меня именно это интересовало.
                                                              • 0

                                                                Вот такой пойдет: https://github.com/KronicDeth/


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


                                                                И нет, повторяю еще раз: мне не «повезло». Это мой сознательный выбор.

                                                                • 0

                                                                  Есть тренд, что чем больше запретов, тем выше зарплата.

                                                                  • +1

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


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

                                                                    • +3
                                                                      Есть тренд, что когда ты не первый месяц в профессии, зарплата не играет первостепенного значения, да и второстепенного тоже.

                                                                      Это целиком и полностью зависит от ваших потребностей, а не от стажа. Я, например, хочу домик в хорошей европейской стране. Но домик в 30 км от Женевы стоит порядка $700K. А зарплаты хорошего программиста, увы, хватает и на еду, и на хороший отпуск, и на неплохую машину… но на домик в Женеве не хватает.
                                                                      И если мне предложат зарплату, которая сделает его ближе, я прекрасно обойдусь без, ах божечки, твиттерного трёпа в течении 8 часов в день, и без работы над пет-проектами в оплаченное работодателем время. Тоже мне, ценности нашли.
                                                                      И уж тем более, споров с работодателем/заказчиком на тему, можно ли выкладывать мой код, сделанный по его ТЗ, на гитхаб в публичные репозитории. Да ради бога, он за него заплатил, он вправе решать его судьбу. Я абсолютно бесплатно сделаю так, как он попросит, даже без всяких NDA.
                                                                      • 0
                                                                        — Скажите, Шура, честно, сколько вам нужно денег для счастья? — спросил Остап. — Только подсчитайте все.
                                                                        — Сто рублей, — ответил Балаганов, с сожалением отрываясь от хлеба с колбасой.
                                                                        — Да нет, вы меня не поняли. Не на сегодняшний день, а вообще. Для счастья. Ясно? Чтобы вам было хорошо на свете.
                                                                        Балаганов долго думал, несмело улыбаясь, и наконец объ­явил, что для полного счастья ему нужно 6400 рублей и что с этой суммой ему будет на свете очень хорошо.
                                                                        — И. Ильф, Е. Петров, «Золотой теленок»

                                                                        Ничего с тех пор не изменилось, даже потребности не сильно возросли. Рабская психология — неистребима.


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

                                                                        • +2
                                                                          У вас специфический сарказм. Но как говорится в смежном источнике, «кому и кобыла невеста». Кто-то считает, что жить хорошо на съемной квартире, а отдыхать с рюкзачком в палатке, а кому-то нравится свое собственное жильё, машина, и комфортный отпуск.
                                                                          В твиттер ходят, чтобы ссылки на актуальные статьи в своей профессиональной области получать сегодняшним днем, а не в ужасном переводе на желтушном сайте типа говнохабра.

                                                                          Вы, наверное, единственный пользователь твиттера, который использует эту свалку студенческого трёпа с такой целью. Если вам, конечно, поверить.
                                                                          • –1
                                                                            кому-то нравится свое собственное жильё, машина, и комфортный отпуск.

                                                                            Да всем нравится, и что? Ну, за исключением того, что в Швейцарию я не то, что жить, я на конференции езжу с неохотой: такая скука, что хочется запить через 20 минут после приземления, это все вами перечисленное — само собой. Как из этого следует необходимость вылизывать жопу начальству?


                                                                            единственный пользователь твиттера, который использует эту свалку студенческого трёпа

                                                                            Даже не знаю, какая фамилия вас заинтересует. Джоэл Сполски, например, ведет активный интересный твиттер. Джо Армстронг. Вирдинг. Кармак. Роб Додсон. Да все, собственно.

                                                                            • +2
                                                                              Да всем нравится, и что?

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

                                                                              Я не уверен, что вас туда приглашали. Не из-за профессиональных качеств (их я не знаю), а просто потому, что я там был, и знаю, что вы говорите ерунду. Ни Женева, ни Цюрих ничем в плане времяпровождения не отличаются от любого другого крупного европейского города.
                                                                              Даже не знаю, какая фамилия вас заинтересует. Джоэл Сполски, например, ведет активный интересный твиттер

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

                                                                              Понимаете, есть наёмная работа, есть фриланс. Если вы фрилансер или предприниматель, то у вас нет начальства, и вообще непонятно, к чему этот спор. Если же вы наёмный работник, то вы выполняете условия, под которые заключили сделку, в том числе и соблюдаете правила распорядка (то, что вы почему-то называете «вылизывать жопу»), нравятся они вам или нет, а работодатель выполняет со своей стороны (обеспечивает условия для работы и платит зарплату). Если вы этого не делаете, то вы просто как специалист — говно. Хорошего специалиста характеризует не только умение писать код, но и добросовестность отношения к своему делу.
                                                                              • –1
                                                                                Я не уверен, что вас туда приглашали.

                                                                                Мне приглашение не нужно: сел в машину, да поехал.


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

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


                                                                                вы выполняете условия, под которые заключили сделку

                                                                                Неужели же так трудно понять: я никогда не предлагал нарушать условия договора (например, потому, что я не гнида). Я все время говорю о том, что в условия договора на берегу надо закладывать важные для тебя вещи. Потому что начальников вокруг до хрена, а я — один, и никакими деньгами приличного человека купить и заставить делать то, что ему не по душе — нельзя. В идеале, конечно.

                                                                                • +2
                                                                                  Я все время говорю о том, что в условия договора на берегу надо закладывать важные для тебя вещи.

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

                                                                                    Не нужно говорить, что мне надо делать, и я не стану говорить, куда вам надо идти.


                                                                                    запреты болтовни в твиттере

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


                                                                                    Каждый выбирает, конечно, сам, во что вписываться. Но на то большинство рабов, которые подписываются ради денег на любое говно, заявленное работодателем в качесте обязаловки — мне насрать, я не Мария Тереза.


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

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

                                                                                      … и почему-то свято уверены, что ваше непонятное «нравится» — такое хорошее, что его надо рекламировать до усрачки. Поверьте, в мире не существует такой потребности в высокооплачиваемых и необременённых ответственностью специалистах, чтобы у вас появилось сколько-нибудь значительное количество последователей. Если вы, конечно, высокооплачиваемый, а не живёте в копеечной съемной квартире где-нибудь в испанском колхозе.
                                                                                      • –1
                                                                                        необременённых ответственностью

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


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


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


                                                                                        И я никого не агитирую. Я рассказываю, откуда берется тот открытый код, которым сейчас многие любят пользоваться. Рассказываю, что отдавать — полезнее, чем тупо получать. Окупается сторицей. Вот вам вид из окна нашего офиса, так сказать, в подтверждение моей точки зрения:


                                                                                        image

                                                                                        • +2
                                                                                          Вот вам вид из окна нашего офиса, так сказать, в подтверждение моей точки зрения

                                                                                          Так сразу бы и сказали, «парни, я затеял этот спор, дабы понтануться, смотрите у меня тут море-океан под окном и дефки на пляже в бикини, а вы там давитесь в своих кубиклах» :)
                                                                                          Я рассказываю, откуда берется тот открытый код, которым сейчас многие любят пользоваться. Рассказываю, что отдавать — полезнее, чем тупо получать. Окупается сторицей.

                                                                                          Я — человек аполитичный. В 20 лет поработал админом в одной известной в 1990-х политической партии, посмотрел на эту штуку изнутри, увидел, сколько там говна, и больше туда ни ногой. Поэтому ваши политические/коммунистические лозунги про открытый код я тоже воспринимаю крайне скептически.
                                                                                          Потому что открытый код — это просто открытый код. Вы, как автор своего кода, абсолютно вольны с ним делать что угодно, хранить под замком, продавать или раздавать всем. Если вы сделали код по заданию работодателя, то это служебная задача, и имущественные права на неё у заказчика, и что делать с кодом, это уже его дело. Если это не закреплено документально, то это можно оспорить при желании, но это уже нифига не fair play, и мы такой вариант не обсуждаем.
                                                                                          И вот говорить, что надо раздавать свой код другим — это все равно что говорить «надо раздавать свою зарплату другим». Не надо. Хорошо раздавать или не хорошо раздавать чей-то код, вы не можете знать. Этой информацией обладает только его владелец.
                                                                                          И ничего особо страшного в том, что какие-то библиотеки являются проприетарными, тоже нет. Код — это не лекарства и не продукты первой необходимости. Мы так или иначе почти все занимаемся коммерческой разработкой. Если нашли бесплатный код, который решает вашу проблему, ну ок, спасибо, сэкономили денюжку вашему заказчику. Если какая-то нужная библиотека не является бесплатной, совершенно не проблема её купить или написать.
                                                                                          • –2

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


                                                                                            ничего особо страшного в том, что какие-то библиотеки являются проприетарными, тоже нет

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


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


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

                                                                                            • +3
                                                                                              Повторюсь, я не агитирую, я просто рассказываю случайно зашедшим людям

                                                                                              Давайте расскажем случайно зашедшим людям более полезные вещи:

                                                                                              Представляю, какой вы код пишете, если не в состоянии уследить на нитью простой дискуссии

                                                                                              свой выкидыш

                                                                                              1. Переходить на личности плохо.
                                                                                              2. Хамить плохо.
                                                                                              3. Навешивать ярлыки, всего лишь на тех людей/организации, которые делают не так, как вы, плохо.
                                                                                              4. А дружит ваша компания с сообществом или нет — как раз пофигу.
                                                                                              Поэтому ваше «рассказываю случайным людям» приносит куда больше вреда, чем пользы. Но по крайней мере, у вас есть возможность понтануться офисом, это у вас не отнять.
                                                                                              Недвига, кстати, в Испании нынче недорогая, как и еда, как и шмотки. Куда дешевле, чем в Москве. Позволить себе это несложно. Другое дело, что там, скажем так, тоже на любителя. Летом там днём такая жарища, что никакими деффками в бикини меня туда не заманишь.
                                                                                              • –1

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


                                                                                                Летом там днём такая жарища

                                                                                                Вот я люблю, когда о стране судят по дешевым курортам.

                                                                                                • +1
                                                                                                  Вот я люблю, когда о стране судят по дешевым курортам
                                                                                                  А как цена курорта связана с климатом??

                                                                                                  Лично ездил по всей Испании летом, и так же не хотел бы там работать летом. Что на юге, что на севере, что в центре. Жара — она не для всех.

                                                                                                  • –2

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


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

                                                                                                    • +1
                                                                                                      пацаны-то не в курсе

                                                                                                      Вы меня подловили, сдаюсь.


                                                                                                      типа pornhub, хабрахабр и подобных

                                                                                                      Хорошо, что вы стесняетесь не ресурсов, а именно своего присутствия на них. Если бы я писал то, что пишите вы — тоже бы стеснялся.


                                                                                                      Мне прям интересно стало, что, а главное в какой манере, вы там — на pornhub, комментируете :D

                                                                                                    • +1
                                                                                                      «типа pornhub, хабрахабр и подобных»

                                                                                                      Какое замечательное сравнение.
                                                                                                    • 0
                                                                                                      Вы бы подправили Википедию тогда, а то пацаны-то не в курсе, что там у них жара-не-для-всех.

                                                                                                      Для меня, например, идеальная температура на улице — от 15 до 20 градусов, а температура выше 25 градусов просто некомфортна. Поэтому если в Москве я испытываю дискомфорт только 1-2 месяца в году, то в Сан-Себастьяне будет 4-5 месяцев неприятной жары.

                                                                                                      • 0
                                                                                                        Для меня, например, идеальная температура на улице

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


                                                                                                        Испания в разговоре появилась исключительно как иллюстрация того, что я работаю там, где я хочу. Я никого же не агитировал, да и не приглашал, если честно. Вам Испания не только температурой не понравится: тут не так много работы, зарплаты заметно ниже среднеевропейских (€60K, например, — для Испании уже очень много, и далеко не сразу; в то время, как в Германии можно торговатся за 80 от входа).


                                                                                                        У каждого такое место свое, разумеется. Если вам идеально подходит ваш сегодняшний офис/дом, то эта ветка вообще не для вас.


                                                                                                        Я лишь утверждаю, что при наличии портфолио на github’е и SO (и, желательно, персонального блога на английском) — работу в том месте, которое вас полностью устраивает найти в тысячу раз проще. Сами вас найдут.


                                                                                                        Меня норвеги и англичане, например, постоянно вызванивают — вот это, наверное, климат для вас. И я лишь говорю, что для современного разработчика, претендующего на работу мечты — github и SO существенно ускоряют ее, этой самой работы мечты, осуществление.


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


                                                                                                        Я про тенденцию. Которая может пригодится молодым.

                                                                                                        • 0
                                                                                                          И я лишь говорю, что для современного разработчика, претендующего на работу мечты — github и SO существенно ускоряют ее, этой самой работы мечты, осуществлени

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

                                                                                                          • –1

                                                                                                            Чего только ни сделаешь, чтобы тебя поняли правильно :(


                                                                                                            Я переформулировал в менее обидной форме, только и всего. Сиречь, да: тональность, конечно, изменена. Смысл — нет.


                                                                                                            Весь вопрос в том, кем мы себя полагаем сами. И чем ниже та ступень в самополагании, тем больше шансов, что de facto — она выше.


                                                                                                            Разве нет?


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


                                                                                                            Такие дела :)


                                                                                                            @greendimka там выше уже просили, я уже показывал, оно легко гуглится.

                                                                                                            • 0

                                                                                                              @am-amotion-city — ну напишите ссылку еще раз, пожалуйста. Нагуглить ваши репозитории легко не удалось.

                                                                                                              • 0
                                                                                                                Я его репозиторий нашел за 5 минут. Просто не гуглите, а ищите)
                                                                                                                • 0

                                                                                                                  Да где искать-то? Трудно написать?

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

                                                                                                                      Если вы про https://github.com/KronicDeth/ — то это не его/её, насколько я понял.

                                                                                                                      • 0
                                                                                                                        Нет. Конечно я не про комментарии к этой статье.
                                                                                                                        • 0

                                                                                                                          Ну что же — будем ждать комментария от am-amotion-city.

                                                                                                                          • 0

                                                                                                                            А комментарий очень простой: очередная иллюстрация моим тезисам.


                                                                                                                            @TheShock любит загадки — и нашел за пять минут. Хотя и не просил показать, что характерно. Не знаю, какой ему от этого прок (смею полагать, что кроме интереса к собственно разгадыванию загадок — никакого).


                                                                                                                            А вам вот вроде и нужно, но не судьба, видать.


                                                                                                                            Жизнь так порой несправедлива.

                                                                                                                            • 0
                                                                                                                              А вам вот вроде и нужно, но не судьба, видать

                                                                                                                              Серьёзно? Вы себя таким/-ой незаменимым и важным почувствовали вдруг?
                                                                                                                              Мне не нужно — это вы тут всем доказываете, что опенсурс — наше всё, что все вокруг дураки, и вы — снизошли до общения с низшим сословием, обитающем на ресурсе хабрахабр.
                                                                                                                              А на прямой вопрос показать портфолио… показать оказалось нечего?!


                                                                                                                              Да вы неуловимый джо!

                                                                                                                            • 0
                                                                                                                              Вы думаете, что greendimka дурак?

                                                                                                                              Тот Ваш аккаунт, что гуглится «за пять минут» — весьма… пустой; ибо не имеет открытых репозиториев (он и есть личный, верно?). Я бы усомнился, что это Ваш аккаунт после всего, что Вы тут написали. И не зря: у Вас ведь есть ещё один (или даже больше).

                                                                                                                              Отсюда ещё вопрос: Вы уверены, что TheShock нашёл «тот самый» аккаунт?
                                                                                                                              • 0

                                                                                                                                Я думаю, что TheShock написал мне в личку и весело поинтересовался: «этот?» — указывая на, да, один из не пустых аккаунтов.


                                                                                                                                И да, я думаю, что greendimka дурак, но это к делу отношения не имеет: вы спросили, я ответил.

                                                                                                                                • 0

                                                                                                                                  Ну что, Леша, как программист — ты хорош. А как человек — ты мудак.


                                                                                                                                  Дабы сэкономить время остальным: https://github.com/am-kantox

                                                                                                                                  • 0
                                                                                                                                    Дабы сэкономить время остальным

                                                                                                                                    Хм. А нафиг он нам нужен?
                                                                                                        • 0

                                                                                                          А слабо показать портфолио?

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

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

                                                                                              > Повторюсь, я не агитирую, я просто рассказываю случайно зашедшим людям, что это выгодно на длинном отрезке времени. А просто гнать бабло — нет. Вот и все.
                                                                                              Вот и выясним действительно ли это так. Потому что взять да тот же один Microsoft — IMHO он один может покрыть по количеству рабочих мест все те компании, которые вы назовете.
                                                                                              • –1

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


                                                                                                1. Гипотетический Microsoft разумеется покроет по количеству рабочих мест все компании, где хочется работать. И что? Платят там мало, скука смертная, бюрократия, говнокод. Причем тут это вообще? Я где-то говорил, что хочу трудоустроить всех быдлокодеров? Ваша логическая ошибка называется «подмена частного общим»: я говорил с точки зрения хорошего программиста, которому не нужен миллион рабочих мест, нужно, прикиньте, одно.


                                                                                                2. Microsoft, кстати, в курсе, что на дворе уже не 1986 год, и выкладывает в open source тонны кода, а также соблазняет (по личному опыту могу сказать) именно всеми теми плюшками, которые я описал. Не на позиции «с девяти до шести», разумеется. И — сюрприз — как раз Microsoft нашел меня как раз на Stack Overflow, и их рекрутер внимательно изучил мой профиль на github’е, прежде чем написать мне.

                                                                                                Как дети, честное слово.

                                                                                                • +2
                                                                                                  Как дети, честное слово

                                                                                                  Как ребёнок, честное слово. Вот профиль у вас вроде женского рода, а комментарии — пишите от мужского.

                                                                    • 0

                                                                      Бывают и другие материальные интересы кроме выживания.


                                                                      Да пилить обычно никто не запрещает, запрещают выкладывать рабочие наработки.

                                          • 0
                                            решает прежде всего задачи сообщества, а не ваши, но за ваш счёт

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

                                            • 0
                                              Если ваши задачи при этом выполняются хорошо, то какая разница, чьи ещё задачи и когда он решает?

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

                                              • 0

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


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


                                                Недальновидно, короче.

                                        • +3
                                          Я никак не пойму, что вы пытаетесь доказать: что есть неадекватные работорговцы, работа с которыми приводит к деградации разработчиков?
                                          Он пытается указать на один простой факт: время между созданием чего-то, соответствующего статусу сеньора и его попаданием в открытые источники зачастую измеряется годами.

                                          Да, вы отрыли часть вещей, которые Джефф Дин создал несколько лет назад. Вещи, которые он делает сейчас — вы не увидите ещё три-пять лет (а часть — не увидите никогда в принципе). И что — вы будете о нём судить вот о той верхушке айсберга, которая всплыла на github'е? Вот по этим нескольким случайно убежавшим процентам того, что он сделал?

                                          Тенденция такова: у достойных внимания на позицию сеньора разработчиков всегда (ну хорошо, за редчайшим исключением) есть портфолио.
                                          Извините, но вы несёте чушь сейчас. Подавляющее большинство компаний свой код никому показывать не хочет и не будет. Тот факт, что сейчас на github кода, выложенного разработчиками из Гугла составляет несколько процентов от всего кода, который ими написан как бы говорит сам за себя.

                                          Да, мы рискуем пропустить маньяка-йети, который программирует не выходя из леса.
                                          Нет — мы рискуем пропустить нормальных 90% кандида