Почему GitHub не поможет нанять разработчика

https://www.benfrederickson.com/github-wont-help-with-hiring/
  • Перевод
Один из моих текущих проектов связан со сбором данных из GitHub-профилей разработчиков. Профили GitHub затруднительно использовать как источник данных, поэтому хочу сразу перечислить проблемы при попытке оценить разработчика только по его вкладу на GitHub.

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

Есть несколько правильных статей, почему нельзя требовать от кандидатов профили GitHub. Особенно рекомендую «Этика неоплачиваемого труда и сообщество Open Source» и «Почему GitHub — не резюме». Обе статьи отлично объясняют причины, почему при найме не следует спрашивать о вкладе в свободные проекты. Но я не о том, что это неэтично или что GitHub не слишком подходит для демонстрации проектов.

Я о том, почему эти профили просто малополезны.

Разреженность данных


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



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

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

  • Только 17% пользователей в прошлом году запушили какой-то код
  • Только 7,4% пользователей сделали это более 10 раз
  • Только 1,4% пользователей сделали это более 100 раз
  • Только 0,15% пользователей сделали это более 500 раз

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

Для примера взгляните на график по проценту разработчиков на GitHub с определённым количеством фоловеров:



Получить количество коммитов из GitHub API сложно [1], так что я привожу количество фоловеров, у которых похожее распределение. Если вы введёте свой userid на странице статьи, то получите мини-отчёт, на какой позиции находитесь.

Плюс в том, что даже с 10 фоловерами вы можете смело утверждать, что входите в топовый 1% всех разработчиков.

Минус в том, что если у подавляющего числа разработчиков нет данных в публичных профилях, то эти профили нельзя использовать для фильтрации кандидатов на работу. У 83% нет коммитов за прошлый год, а у 88% нет фоловеров. Это не значит, что они плохие разработчики. Просто у них нет нет вклада в проекты open source, чтобы похвастаться.

GitHub показывает только вклад в open source


Это очевидно: публичные профили GitHub действительно показывают только людей, которые создают программное обеспечение с открытым исходным кодом. Подавляющее большинство производимого ПО — с закрытым исходным кодом, и отсутствие вклада в open source означает примерно ничего, если вы всю карьеру работали над проприетарной технологией.

Думаю, наиболее поучительно сравнить известных программистов, которые работают в индустрии open source, с другими знаменитостями, которые работают в другой индустрии. Например, у Линуса Торвальдса больше всего фоловеров на GitHub. Это вполне оправданно, ведь он создатель нескольких невероятно успешных проектов с открытым исходным кодом, таких как Linux и git. С другой стороны, у Джона Кармака или Джеффа Дина вообще нет профилей GitHub, хотя они оба хорошо известны своей работой в одинаково успешных проектах с закрытым исходным кодом, таких как Doom и Google.

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

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

Большинство проектов GitHub не впечатляют


Даже у той малой части разработчиков c проектами на GitHub большинство проектов не слишком впечатляют.

В наше время на многих курсах по программированию и в университетах от студентов требуют создавать репозитории GitHub в рамках учебной программы. Хотя я полностью поддерживаю обучение новых программистов навыкам управления версиями, но проекты, которые при этом создаются, не говорят мне ничего кроме того, что они закончили курс. К примеру, на GitHub около 190 000 репозиториев с названием "datasciencecoursera".

Кроме того, из более чем 78 миллионов репозиториев в GitHub Archive около 1,1 млн называются "hello-world" и 1 млн называются "test".

Число фоловеров показывает популярность, а не талант


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

В качестве примера взгляните на Github-профиль Stichpunk:



У этого профиля около 1560 подписчиков, что вносит девушку в топ 0,002% лучших разработчиков на GitHub. У неё также несколько относительно популярных репозиториев и она, похоже, работает в крупной IT-компании. На первый взгляд, это довольно респектабельный разработчик.

Но это профиль не настоящего человека. Он создан авторами сериала «Кремниевая долина» для эпизода «Табы против пробелов»:


Каждый раз, когда вы всерьёз рассматриваете количество фоловеров GitHub как некий значимый показатель, просто помните, что у фейкового профиля персонажа из одного-единственного эпизода сериала больше последователей, чем у 99,998% разработчиков, и он располагается примерно на 670-м месте в мире.

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

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

Интервьюеры не проверяют профили GitHub


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

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

Судя по рассказам, это довольно распространённая практика. Например, Дэн Луу написал в твиттере:

«Несмотря на шумиху о том, как open source помогает вашей карьере и что github==резюме, у меня только в 2 из 50 интервью кто-то смотрел мой код» — Дэн Луу

Дэн Луу входит в топ-1000 по количеству фоловеров на GitHub. По крайней мере, мой опыт не объясняется только относительно скромным портфолио на GitHub.

Или вот на hftguy.com один разработчик изучал аналитику GitHub после прохождения множества собеседований — и обнаружил, что его проекты зашёл посмотреть только 1 человек (и это может быть он сам во время проверки):

«После дюжины телефонных собеседований (1 разработчик за звонок) и нескольких очных (от 4 до 7 интервьюеров) мой профиль посмотрели только один раз. Вывод: никого не волнует GitHub. Никто не будет его смотреть»

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

Сноска 1
На GitHub нет API, чтобы получить статистику по активности за последний год. Судя по всему, выдаётся временная шкала в SVG (вроде такой), которую можно распарсить. Я почти справился с этим хаком для данной статьи, но упёрся в некоторые ограничения CORS по загрузке этого в браузере. Можно было написать прокси для запросов, но это уже превращалось в маразм, так что я выбрал вариант с фоловерами.
Поделиться публикацией
Ой, у вас баннер убежал!

Ну, и что?
Реклама
Комментарии 203
  • +27
    Забавно, что статья так подробно описывает количественные характеристики (и вполне логично находит их бесполезными) и обходит молчанием качественные. К примеру, всего один, но весомый PR в репозиторий с серьезным code review позволит многое сказать о кандидате, начиная от умения разобраться в чужом коде до способности взаимодействовать с другими разработчиками.
    • +5
      А этот самый «весомый PR» в профиле довольно непросто найти. Только если специально заморочиться, но в статье же прямо указано, что профили и так никто не смотрит.

      Я вот сам смотрю только в том случае, если у меня возникают вопросы к резюме кандидата.
      • +5

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


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

        • +2
          Согласен, что это скорее исключение, когда изучают твой профиль на github. Но есть автоматизированные HR системы типа amazinghiring и они раздражают. Делаешь крупный pull request и к тебе в почтовый ящик начинают валиться десятки писем спама. Причем проекты такие, что даже если бы был безработный не пошел бы туда.

          Еще показателен социальный эксперимент мой профиль имеет всего 16 followers за 5 лет хотя у меня много проектов и являюсь контрибьютором даже в spring/spring-boot, а профиль моей девушки собрал 3 подписчика за неделю при минимальном вкладе.
          • 0
            По моему опыту устройства в Канаде, пока дойдешь до человека, который реально мог и хотел бы посмотреть код кандидата, 99 из 100 кандидатов уже будут отсеяны по не связанным с кодом причинам (теми же ATS и HR) и после этого, обычно, уже нет никакой разницы, есть ли у кандидатов код на гитхабе
          • 0
            Нанимая людей, смотрел профили всех кандидатов (если они были предоставлены). Если ЯП незнаком, пытался понять, что программа делает и какую задачу она решает. Это было неплохим подспорьем, чтобы завязать беседу.
            Сам предоставляю профиль, чтобы показать, какими технологиями и на каком (примерно) уровне владею, но в общем-то уже свыкся с мыслью, что это лишь пункт в чек-листе (наличие непустого профиля на GH — есть, высшее — есть, опыт работы — есть...) и не более того.
            Но да, большинство из того, что лично у меня выложено не имеет никакого отношения к моей работе (разве что к фрилансу), а текущая работа хоть и без NDA, зато с передачей смежных прав компании и ком.тайной (хотя где не указано, что это ком.тайна, значит это не ком.тайна). Предыдущая работа тоже не позволяла что-либо выкладывать на GH — другой стек, бинарные форматы, никакой версионности, в общем страшный сон и малопопулярный язык, а код прибит гвоздями к модели данных, без которой он представляет мало смысла и практически 0 ценности.
            • 0
              Просто спросить кандидата. Показать, чем он занимался, есть ли какие-нибудь проекты, которые можно посмотреть, спросить о достижениях — он сам все расскажет. Меня, во всяком случае, спрашивали.
              • +1
                Я бы в резюме явно написал «контрибутил в такие-то и такие-то проекты, список моих коммитов в этих проектах вот по ссылке». Разумеется, выбрав только наиболее значительные и релевантные планируемому месту работы, чтобы сэкономить время потенциальному работодателю.
              • 0
                позволит многое сказать о кандидате

                Но никто его не посмотрит.
              • +1
                Статья переводная ссылается на две статьи, обе довольно старые. С тех пор (с 2013 года) много воды утекло, в частности, появилась возможность прикреплять выбранные репозитарии (до 6 штук).
                • +1
                  найс, я оказывается вхожу в топ 0,15%, но с поиском работы это никак не помогло, кажется только один раз хедхантер заинтересовался, что у меня коммиты на гитхаб каждый день
                  • +2
                    заинтересовался, что у меня коммиты на гитхаб каждый день
                    И сделал вывод: он каждый день сидя на работе занимается другими проектами open-source…
                    • 0
                      Почему сидя на работе, а не дома после работы?
                      • 0
                        Да даже если и на работе после работы?
                        • 0
                          Так если дома после работы, то в чём вопрос?
                        • +1
                          Почему сидя на работе, а не дома после работы?

                          Потому-что чтобы понимать HR'ов, одной логики мало.

                          • 0
                            Ну и хорошо, сразу нелогичные эйчары отсеются.
                            • 0
                              Вы же будете работать не в отделе кадров с нелогичными HR. Их просто нужно пройти «на их условиях», чтобы наконец-то добраться до тех, с кем вам предстоит работать. А то так натягивая сову на глобус можно и на уборщиц жаловаться, что они не логичные и не читали Канта.
                              • 0
                                Эйчары чуть больше влияют на нанимаемых работников, чем уборщицы.
                          • 0
                            Тем более — значит это асоциальный элемент, которому нечем заняться, кроме программирования
                            • 0
                              Какая работодателю-то разница?
                              • 0
                                Очень большая, soft-skills, зачастую, значат намного больше знаний и опыта, если это не чувак на удаленке в ж… мира. Кому охота работать с человеком, с которым и поговорить не о чем?
                                • +1

                                  Как это не о чем? О программировании.

                                  • 0
                                    Думаете, ваше $hobbyname как-то резко повышает возможность пообщаться с вами по сравнению с моим $hobbyname?
                                    • 0
                                      Да при чем тут общаться и хобби. Просто работать с адекватным человеком гораздо проще и удобнее, чем с мудаком. Вообще, как-либо взаимодействовать с адекватными людьми удобнее, чем с мудаками.
                                      • 0
                                        Конечно, полностью с вами согласен по всем пунктам. Особенно по вопросу о том, причём тут хобби.
                        • +6

                          Странная статья… прежде всего наличие реп на гит(хаб|лаб)|битбакет говорит о том что чел хотябы знает что такое гит. Во-вторых — можно посмотреть его код. Если есть свои репо которые развиваются, это +, есть PR, еще +. Количество фолловеров и даже звездочек действительно не самый показательный критерий, можно просто вести репу типа awesome_xxx_list и нахайпить звёзд, можно зашарить какой-нить финтиперистый патч для драйвера специфической штуки, который нужен паре десятков человек из специфической отрасли.

                          • +1
                            У меня на гитхабе три пулл-реквеста с переводами для игры. Какую информацию обо мне получит наниматель?) Что я знаю как форматировать json?)
                            • +3
                              Что Вы готовы бесплатно работать не по специальности в свободное время!
                              • 0
                                А если в свободное время я серьёзно увлекаюсь, не знаю, авиамоделированием, работодатель такой же вывод случайно не сделает?
                                • А если в свободное время я серьёзно увлекаюсь, не знаю, авиамоделированием

                                  А авиа-компьютер (или как там этот модуль называется) вы ставите в свои модельки?
                                  А вы сами его программируйте?
                                  • 0
                                    Нет, я только в SolidWorks модельки считаю, с пониманием дела и гидродинамики, для примера. Такое вот моделирование.
                          • +2
                            Уже второй раз за сегодня читаю мысль о том что создать репозитарий для обучения на github это что-то вроде преступления. Репозитарий на github при оценке сотрудника вполне заслуживает внимания как один из факторов т.к. 1) это реальный код 2) это история коммитов.
                            • +3
                              Это может быть учебный пример или тестовое задание с искусственными ограничениями типа «не использовать сторонние библиотеки/фреймворки».
                              • +2
                                > заслуживает внимания как один из факторов т.к. 1) это реальный код

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


                                  Разумеется, рабочим условиям не соответствует. Но выводы все же сделать можно.

                                  Если это тяп-ляп и человек его не стесняется показывать работодателю потенциальному — это говорит о недостаточной адекватности (или чрезмерной романтичности; безалаберности) такого человека.

                                  Если код вылизанный — это говорит о том что человек способен вылизать код. Понимает как это делать. Способен вылизать код далеко не каждый.
                                  • +2
                                    > Но выводы все же сделать можно.

                                    Почему бы не делать их по навыкам вышивания крестиком тогда?

                                    > Если код вылизанный — это говорит о том что человек способен вылизать код. Понимает как это делать. Способен вылизать код далеко не каждый.

                                    Ой, да ладно вам. 90% «невылизанного кода» не вылизано либо по причинам лени, либо по причине «дедлайн вчера», но никак не из-за того, что программист не понимал, как нужно вылизать код.
                                    • +3
                                      90% «невылизанного кода» не вылизано либо по причинам лени, либо по причине «дедлайн вчера», но никак не из-за того, что программист не понимал, как нужно вылизать код.

                                      Citation needed.

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


                                        Гитхаб будет прекрасным дополнением к собеседованию.

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


                                        Вы хотите сказать лень не влияет на оценку рабочих качеств человека?

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


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

                                        Нельзя в одночасье научиться.
                                        Ты или практикуешься в хорошем коде. Или не умеешь его писать.
                                        • 0
                                          > Принципы SOLID взять хотя бы. Не каждый понимает их пользу и умеет применять.

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

                                          > Вы хотите сказать это не влияет на его рабочие качества?

                                          Это говорит о том, что вылизанный на гитхабе код никакой полезной информации не дает. Невылизанный, впрочем, тоже.
                                          • +1
                                            Не исполнять их можно _исключительно_ из-за лени и нехватки времени. Других причин просто нет (ну еще отсутствие необходимости, в определенных случаях).


                                            Эти принципы не просто же красивый код ради красоты.

                                            Если твой код не одноразовый, если тебе с ним самому еще работать, то SOLID — это экономия твоего же собственного времени.

                                            Без практики ты не сможешь декомозицию своего кода в SOLID провести вот так запросто на раз плюнуть.

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

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

                                            Я не верю, что человек не крутой программист только потому, что ему некогда.

                                            • 0
                                              > Если твой код не одноразовый, если тебе с ним самому еще работать, то SOLID — это экономия твоего же собственного времени.

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

                                              > Я не верю, что человек не крутой программист только потому, что ему некогда.

                                              А зря. Человек вообще практически всегда не крутой Х, потому что лень/некогда.
                                              • А зря. Человек вообще практически всегда не крутой Х, потому что лень/некогда.


                                                Сформулируем иначе.
                                                Человек не меняется в одночасье.
                                                И если у него до меня хороший код, то есть надежда что после того как я его найму — код останется все таким же хорошим.
                                                Если у него до меня плохой код, то надежда на то, что его код мгновенно станет крутым — глупа.
                                                • 0
                                                  Вы тут неявно исходите из того, что писать хороший код — какой-то нетривиальный навык, которым мало кто обладает. Некое секретное знание, сверхталант, мегаумение, познаваемое годами поста в шаолиньских монастырях. Если убрать эту неявную предпосылку, то все встанет на свои места.

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

                                                  Люди, код которых _преимущественно_ хороший (чаще пишут хороший код, чем другие, при прочих равных) — просто более старательные и с более сильной волей, в первую очередь.

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


                                                    Хороших программистов (как и хороших специалистов в любой сфере) — меньше, чем плохих (посредственных).

                                                    Это совершенно нормально.

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

                                                    Но не становятся фактически. Почему то у большинства чего-то не хватает. Усидчивости. Абстрактности ли мышления. Не знаю.

                                                    Что именно мешает — лень или пиво или девушка бросила или он больше любит туризм, чем работу — работодателю не интересно.
                                                    • 0
                                                      > Хороших программистов (как и хороших специалистов в любой сфере) — меньше, чем плохих (посредственных).

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

                                                      Да.

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

                                                      Нет, передёргиваете.

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

                                                      А если человек никогда не писал хороший код? У него просто никогда нет времени, или он просто не умеет? И важно ли это различие?

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

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

                                                        > у кого есть и навык, и время

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


                                                          Я видал людей и с семилетним опытом, фактически являющихся джунами.
                                                          • +2
                                                            Вы живёте в очень радужном и счастливом мире, я искренне вам завидую.
                                                • +1
                                                  Это как раз хороший пример — принципы элементарны, объясняются за 5 минут. Не исполнять их можно _исключительно_ из-за лени и нехватки времени. Других причин просто нет (ну еще отсутствие необходимости, в определенных случаях).


                                                  Принципы элементарны, а грамотно применять их весьма сложно.
                                          • 0
                                            Ну я надеюсь что человек которы будет смотреть на репозитарий вполне разбереться с этим всем. Если код в репозитарии плохой то 1) претендент может его не показывать это же не как раньше есть ли у Вас родственники за границей и нужно отвечать правдут т.к. все равно будет проверяться 2) я лично не верю в эти оегенды что тут у меня код плозой т.к. я торопился и все такое а вообще то у меня код белый и пушистый. Да и стиль работы он не меняется от языка к языку, от работы к работе.
                                        • +3
                                          Одна из распространённых ошибок — попытка работодателя отфильтровать кандидатов по профилям GitHub.


                                          «Несмотря на шумиху о том, как open source помогает вашей карьере и что github==резюме, у меня только в 2 из 50 интервью кто-то смотрел мой код» — Дэн Луу

                                          Так я не понял — проблема есть или ее нет?
                                          Ведь судя по данным из этой же статьи — ни разработчики ни работодателями не смотрят на профили в github, за крайне редким исключением.
                                          • 0
                                            Может интервьюеры, которые собеседовали Дэна Луу, не совершали распространенных ошибок?
                                            • Думаю имеется ввиду фильтрование по наличию профиля в GitHub.
                                              • 0
                                                Ни разу про такое не слышал
                                                • 0

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

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

                                              А почему? Он эту тонну кода по работе и по выходным пилил?

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

                                              С другой стороны, у Джона Кармака или Джеффа Дина вообще нет профилей GitHub, хотя они оба хорошо известны своей работой в одинаково успешных проектах с закрытым исходным кодом, таких как Doom и Google.

                                              А у Билла Гейтса и Стива Джобса не было высшего образования. Должно ли это опрадывать каждого 17-летнего лба, который вместо упарывания фундаментального матана идёт ваять сайты?

                                              Кстати, у id Software куча их старых наработок почему-то выложена в опенсорс.
                                              • +11
                                                По выходным человек может заниматься чем-то, отличным от программирования, например. Не понимаю, почему люди считают, что программист по умолчанию должен выкладывать хоть что-то в опенсорс (своё любого размера или контрибьютить в чужое).
                                                • +2
                                                  Обычно так считают, только те кто что-то выкладывает на гитхаб. Остальным пофиг. Наверно здесь замешано какое-то когнитивное искажение.
                                                  • 0
                                                    Потому что программированием обычно занимаются те, кому это интересно. А те, кому это интересно, иногда могут и по выходным этим заниматься, например.
                                                    • +3
                                                      Почти любым интеллектуальным трудом (в идеале) занимаются люди, которым это интересно. Вот только такое ожидание, особенно в таком масштабе, есть только от программиста. Вы же не ждёте, например, от корпоративного юриста бесплатных консультаций в сети (с консультациями пример не самый удачный, но идею понять можно)?
                                                      • +4
                                                        Если бы мне нужно было выбирать юриста, я бы выбрал того, который в свободное время поддерживает свои знания в актуальном состоянии в том или ином виде.
                                                        Если бы мне нужно было выбирать хирурга или иного подобного специалиста, я бы выбрал того, который в свободное время читает релеватные журналы или ходит на plos/biorxiv. Кстати, не только я, это мнение достаточно распространено и среди людей вообще, и среди врачей в частности.

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

                                                                Если бы у юристов был аналог stackoverflow, я бы туда зашёл перед выбором юриста.
                                                                • 0
                                                                  У юриста, на мой взгляд, ответственность выше на порядок. При этом, получается, требования вы к нему предъявляете ниже по факту.

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

                                                                    Отнюдь, требования те же: развитие в том или ином виде в личное время без обязательств.

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

                                                                    Выкладывание на гитхаб, возможно, совсем не нужных никому кроме самого автора вещей — так себе благотворительность.
                                                                    • +1
                                                                      Отнюдь, требования те же: развитие в том или ином виде в личное время без обязательств.

                                                                      Ну так программист ходит себе на митапы и конфы, почитывает хабр. Саморазвитие. Зачем гитхаб?

                                                                      Выкладывание на гитхаб, возможно, совсем не нужных никому кроме самого автора вещей — так себе благотворительность.

                                                                      Я о вашем примере с SO для юристов. Ответы на чужие вопросы в вашей профессиональной сфере, предоставление ваших профессиональных компетенций как услуги бесплатно — или благотворительность, или довольно близкая к оной вещь.
                                                                      • 0
                                                                        Ну так программист ходит себе на митапы и конфы, почитывает хабр. Саморазвитие. Зачем гитхаб?

                                                                        Как практика, потому что на одной теории трудновато.

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

                                                                        То есть, когда я отвечаю на вопрос на SO, я занимаюсь благотворительностью? Или, когда я гуглю решение задачи, которую у меня не получается решить, не нахожу, таки решаю сам за час-полтора и потом трачу 10 минут, чтобы написать решение — это тоже благотворительность? Я бы так это не называл.
                                                                        • +1
                                                                          Так от юриста вы при этом практики не ждёте, повторяю.

                                                                          Если для вас этот ответ известен (ну или вы уже его нашли и сформулировали достаточно хорошо для себя, т.е. переписывание его в форму «отправить ответ» на SE/SO не будет содержательным челленджем), и вы не ставите целью развивать свою профессиональную репутацию таким образом — это чистой воды альтруизм, да. Чуть более точное слово, чем «благотворительность» в данном контексте. Так вот, альтруизм — прекрасная вещь, которую я в людях в некотором объёме крайне ценю. Но требовать от других альтруизма — очень странная и крайне порочная, на мой вкус, что в личных, что в профессиональных отношениях практика. Особенно требовать его ретроактивно («а почему ты раньше не отвечал на SO?»), а не в будущем.
                                                                          • 0
                                                                            Так от юриста вы при этом практики не ждёте, повторяю.

                                                                            Я от юристов вообще ничего не жду, мне пока с ними сталкиваться не приходилось особо, поэтому оценивать сложно. Но про аналог SO я уже писал выше, а если я ещё про какого-то юриста услышу, потому что в ходе гуглежа проблемы наткнусь на его блог или ютуб, то шансы выбрать именно его повышаются. Вполне аналогично.
                                                                            • 0
                                                                              > потому что в ходе гуглежа проблемы наткнусь на его блог или ютуб

                                                                              Почему вы упорно сравниваете _блог или ютуб_ с _гитхабом_? Это же принципиально разные вещи.
                                                                              • 0
                                                                                Потому что это наиболее близкие вещи в рамках аналогии.

                                                                                Ну и, субъективно, писать код на гитхаб проще, чем писать годные и качественные статьи в блог.
                                                                                • 0
                                                                                  Ну вот у меня, например, постов на хабре больше, чем коммитов на гитхабе. Причём на порядок.
                                                                                  Вы бы из-за этого отбраковали моё резюме, попади оно к вам?
                                                                                  • 0
                                                                                    Вы неправильно ставите вопрос. Речь ведь не о бинарной переменной в одном большом логическом выражении, речь скорее о некотором признаке с некоторым весом. Статья утверждает, что вес признака нулевой, я (и многие другие) утверждаю, что нет.
                                                                                    • 0
                                                                                      Статья утверждает, что какой там вес (положительный, нулевой, отрицательный) — вопрос сложный. И приводит вполне логичные аргументы в пользу такой точки зрения.

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

                                                                                    Ну как же? Есть гораздо более близкие вещи. Например — сравнивать ютуб/блог с ютубом/богом!
                                                                                    • 0
                                                                                      Ну и останется у вас один Саттер с Ниблером.
                                                                            • +1
                                                                              > То есть, когда я отвечаю на вопрос на SO, я занимаюсь благотворительностью? Или, когда я гуглю решение задачи, которую у меня не получается решить, не нахожу, таки решаю сам за час-полтора и потом трачу 10 минут, чтобы написать решение — это тоже благотворительность?

                                                                              Ну да. А вы не знали? Юристы-консультанты вообще только такими вещами, кстати, и занимаются (платно, конечно).
                                                                            • Ну так программист ходит себе на митапы и конфы, почитывает хабр. Саморазвитие.


                                                                              А кто это знает (если он не пишет и не выступает)?
                                                                              Зачем гитхаб?

                                                                              Чтобы знали.
                                                                              • 0
                                                                                На собеседовании видно. Вот спрашивают вас про C++ что-то этакое, а вы вворачиваете, что Саттер на CppCon'15 про это говорил.
                                                                            • +1
                                                                              > Отнюдь, требования те же: развитие в том или ином виде в личное время без обязательств.

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

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

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

                                                                                Во-первых, есть выходные.
                                                                                Во-вторых, лично я не могу вечером заниматься гитхабом только тогда, когда на работе весь день я занимался рутинной и важной, но не очень интеллектуальной фигнёй вроде аккуратной выкатки в прод или чего такого. Если я на работе много и продуктивно работал, то почему бы и по приходу домой не поделать что-то? Да, по рабочим дням я вечером больше матана ботаю, чем гитхаб ковыряю, но то такое.
                                                                                • +2
                                                                                  А представьте, у некоторых людей бывают семья, дети и друзья ИРЛ.
                                                                                  • у некоторых людей бывают

                                                                                    Скорее наоборот — только у некоторых и не бывает всего этого.
                                                                                    • –1
                                                                                      Представил. И?
                                                                                      • 0
                                                                                        Значит я выберу юриста без детей и друзей ИРЛ, но который зато практикует.
                                                                                      • 0
                                                                                        > Если я на работе много и продуктивно работал, то почему бы и по приходу домой не поделать что-то?

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

                                                                                        > Во-первых, есть выходные.

                                                                                        Так выходные для отдыха и нужны.
                                                                                        • 0
                                                                                          Мне трудно (похоже, даже труднее, чем среднему человеку) удерживать концентрацию, если задача скучная, неинтересная или по паре других причин для прокрастинации. В тот же выходной я могу с утра встать, потупить часик и сесть за что-нибудь интересное на добрую часть оставшегося дня. Ну там, часов шесть поботать матан, часа три поковырять какой-нибудь идрис, ещё часа три пописать код на плюсах. Изредка прерываясь на еду и прочие потребности, да. Результат, сравнивая с менее нагруженными днями, вполне нормальный.
                                                                                          • 0
                                                                                            Вы путаете причину и следствие ;)

                                                                                            Не вам трудно удерживать концентрацию на скучной и неинтересной задаче, а задача, которая требует от вас концентрации и напряжения — ощущается как скучная и неинтересная.

                                                                                            Задача же, которая ощущается интересной и веселой — просто и не требует от вас существенного напряжения (потому таковой и ощущается). И после 8 часов расслабления за подобными задачами, конечно, можно и на гитхаб.
                                                                                            • 0
                                                                                              Ну, нет. Механический рефакторинг, весь день из унылых митингов, перелёт на самолёте, попытка собрать какую-нибудь левую библиотеку в левом окружении — это всё выматывает и убивает всякую возможность заниматься делами вечером куда сильнее, чем день за формальной теорией вероятности или матлогикой, обмазыванием свежими темплейтами и попытками написать на них что-то этакое, или игрой в тайпчекер с зависимыми типами. Хотя, думаю, концентрации и напряжения в смысле объёма необходимого контекста, который нужно удерживать в голове, во втором классе задач побольше нужно.
                                                                                              • 0
                                                                                                А с чего вы взяли, что игра с тайпчекером или обмазывание темплейтами, дает большую нагрузку на мозг, чем механический рефакторинг или траблшутинг левых библиотек? Как раз меньшую. Штука в том, что в задачах первого класса вы можете легко выбирать комфортный для себя уровень нагрузки, а в задачах первого — нет (именно в силу механистичности и определенной детерменированности процесса). Траблшутинг библиотеки вынуждает вас концентрироваться по максимуму, так как есть механические отсечки. Ботать же матан любой сложности можно свободно почесывая яйца и витая в облаках (как это и происходит в 99% случаев, если человек не сидит на экзамене по этому матану, более того, в случае матана это «витание в облаках» является даже необходимой частью процесса, в определенном смысле).

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

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

                                                                                                  А про матан — по студентам судите, что ли :)

                                                                                                  А перелёт утомляет даже на пару часов. Вчера региональный вот был, и всё равно утомляет.
                                                                        • 0
                                                                          > Если бы мне нужно было выбирать хирурга или иного подобного специалиста, я бы выбрал того, который в свободное время читает релеватные журналы или ходит на plos/biorxiv.

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

                                                                            Почему?

                                                                            Не, если чувак всё свободное время догоняется фрилансом, то либо жизнь у него тяжёлая, либо тоже навыки как-то так себе.
                                                                            • –1
                                                                              Например, потому, что хороший врач-специалист ценит своё время и силы, и сможет получить более чем достаточный объём практики на работе (не важно, self-employed он или в какой-то клинике/больнице/whatever).
                                                                              А если он подрабатывает неформально на стороне — возникают вопросы, а какие проблемы у него есть, что он не может эту практику получать внутри своей работы?
                                                                              • +1
                                                                                Ну вон вышла статья, скажем, про использование каких-то там то ли скальпелей особых, то ли веществ для сращивания нервов, и он в свободное время взял и почикал пару мышек или обезьянок, потому что на работе людей чикать не дадут.

                                                                                Понятно, что на гитхаб писать проще и как-то этичнее, чем мышей резать, но мы в рамках аналогии, увы.
                                                                                • 0
                                                                                  В свободное время почикать мышек или обезьянок вы тоже сможете только в лаборатории, не дома. И не в любой, подозреваю. Есть хорошая вероятность, что это значит, что вы будете находиться на работе.
                                                                                  • 0
                                                                                    Я не знаю, насколько много хирургов одновременно, собственно, практикуют на людях и работают в лабах.
                                                                              • 0
                                                                                > Почему?

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

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

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

                                                                                Чего это вдруг?
                                                                                Гитхаб для меня — это кодовая база third-party библиотек которые я использую. И если там есть ошибка — мне проще исправить её самому, а чуть позже, по времени, запуллить реквест.


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

                                                                              • 0
                                                                                Для этого для хирургов и врачей придуманы курсы повышения квалификации и конференции.
                                                                                А перед этим еще лет 5 ординатуру проходят.
                                                                                И делают кучу простых операций для набивки руки.
                                                                                А не режут в свое свободное время на дому животных.

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

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

                                                                                А у ученых вообще принято все свои наработки сразу выкладывать в «опен-сорс».
                                                                                • 0
                                                                                  Потому что консультация юриста не масштабируется, ты её дал один раз для одного человека, а время потратил.

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


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

                                                                                  А это на те же 90% реклама. "Вам нужно написать заявление в районный суд. Мы можем помочь вам с этим всего за ...".

                                                                              • –2
                                                                                > А те, кому это интересно, иногда могут и по выходным этим заниматься, например.

                                                                                Почему бы тогда в выходной не выполнить пару тасок по текущей работе? С пользой и (возможно) денежным возмещением?
                                                                                • +2
                                                                                  Потому что не всегда в рамках этой пары тасок можно изучить и освоить что-то новое.
                                                                                  • 0
                                                                                    Но давайте тогда уж явно скажем: у нас есть два совершенно разных процесса, назовем их условно «программирование-на-работе» и «программирование-на-гитхабе». Эти процессы похожи лишь внешне, кардинальным образом отличаясь по своей сути. И делать выводы о том, как человек будет справляться с одним из них, исходя из успеха в другом — никакой возможности нет. Возможно там вовсе антикорреляция.
                                                                                    • +2
                                                                                      Ну так кто считает, что там корреляция — просит гитхаб, кто считает, что нет корреляции — не просит, кто считает, что антикорреляция — снова просит. И все счастливы.

                                                                                      Только вот когда начинают обосновывать свои решения anecdotical evidence'ами (один мой знакомый лучший программист не имеет опенсорса, поэтому опенсорс вообще не решает) или, ещё лучше, Джонами Кармаками, вот тогда это выглядит как-то странно.
                                                                                      • 0
                                                                                        > Только вот когда начинают обосновывать свои решения anecdotical evidence'ами

                                                                                        Но ведь данном случае это как раз логически корректный аргумент.

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

                                                                                        Почему же все? Люди, которые имеют увлечения, отличные от написания кода, очевидно, не особо.
                                                                                        • +1
                                                                                          Но ведь данном случае это как раз логически корректный аргумент.

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

                                                                                          Почему же все? Люди, которые имеют увлечения, отличные от написания кода, очевидно, не особо.

                                                                                          Люди, которые хотят получать много денег и мало работать, тоже не очень счастливы.
                                                                                          • +1
                                                                                            > Люди, которые хотят получать много денег и мало работать, тоже не очень счастливы.

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

                                                                                            > Не вижу логики, если честно.

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

                                                                                              Не, если вы идёте в tweag.io писать на хаскеле, а в гитхабе у вас один пхп, то вряд ли это будет релевантно. Обратная ситуация, кстати, тоже.

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

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

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

                                                                                      • 0
                                                                                        Мне кажется, следует рассматривать это иначе. Это всё независимые навыки:
                                                                                        1) Навык написания кода
                                                                                        2) Навык вышивания крестиком
                                                                                        3) Навык самоорганизации для выполнения задач, которые тебе недостаточно интересны
                                                                                        Написание кода для гитхаба требует только первый навык, написание кода на работе требует сразу первый и третий навык (справедливости ради, третий навык нужен практически на любой работе). Не следует выдавать комбинацию двух навыков за какой-то особый новый навык.

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

                                                                                        Умение писать хороший код — тоже талант. Если взять случайного человека с улицы без опыта программирования, то скорее всего он не станет тут же писать хороший код ни под угрозами расправы, ни под обещаниями выплаты миллиарда долларов (ну или какой-то более индивидуальный вариант, как создать максимальный уровень мотивации), хотя и будет искренне стараться. Хорошими программистами обычно становятся люди определённого склада ума и после наработки определённого опыта. Профиль на GitHub может дать гарантию, что хоть при каких-то условиях человек может писать хороший код (кто-то не может ни при каких вообще и таких большинство — у них другие таланты). Достаточно ли человек организован, чтобы писать такой код не для удовольствия — уже совсем другой вопрос и к программированию имеет весьма посредственное отношение. Точно такой же навык нужен для практически любой работы.
                                                                                        • 0
                                                                                          > 1) Навык написания кода

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

                                                                                          > Умение писать хороший код — тоже талант.

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

                                                                                          Ну вот возьмем банальный нейминг — абсолютно все программисты знают, что хорошие, годные имена лучше, чем x/y/z, но что на практике? Вы видите кучу говнокода с x,y,z. Трудно ли придумать нормальные имена? Совсем нет. Надо лишь сесть и немного подумать — но нету времени/лень.

                                                                                          И вот выполнение буквально десятка подобных элементарных принципов уже сделает ваш код лучше, чем 90% кода, который пишут другие люди.
                                                                                          • 0
                                                                                            Ну вот возьмем банальный нейминг — абсолютно все программисты знают, что хорошие, годные имена лучше, чем x/y/z, но что на практике? Вы видите кучу говнокода с x,y,z. Трудно ли придумать нормальные имена? Совсем нет. Надо лишь сесть и немного подумать — но нету времени/лень.
                                                                                            Вспомнил нейминг в исполнении одного нехорошего человека: i1, i2, i3, i7, i12, i14, i15 и тоже самое для j, k и прочих. Причем часть из них — глобальные, часть локальные (иногда совпадающие с глобальными), часть объявлена и не разу не объявлялась, причем нужно понимать, что некоторые из них использовались в качестве счетчиков в циклах… и нужно понять еще будет она после того, как выйдет из цикла, использоваться или нет.
                                                                                            Вот я подозреваю, что если б этот код писался для демонстрации — такой хрени бы не было. А если никто не видит, ага…
                                                                                            • есть два отдельных, практически не связанных друг с другом навыка: «написание кода на гитхаб» и «написание рабочего кода».


                                                                                              Разумеется, это разные вещи. Но они связаны одним автором.

                                                                                              Если человек может показать шедевр — значит он в принципе способен его сделать. Это плюс.

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

                                                                                              Никто не говорит, что только на основании Гитхаба нужно делать вывод о специалисте. Это просто дополнительный плюс.

                                                                                              • 0
                                                                                                > Если человек может показать шедевр — значит он в принципе способен его сделать. Это плюс.

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


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

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

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

                                                                                                  Например, сейчас полно «войти-в-айти» окончивших курсы. Но с хорошо подвешенным языком. Лишняя (причем простая) проверка не помешает.

                                                                                                  Людей с годами опыта, которые пишут только жуткий говнокод и уже настолько к этому привыкли что не могут иначе — тоже полно.

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

                                                                                                    А кто говорит про «в одночасье»? Вот человек работал 5 лет, допустим. Этого вполне достаточно, чтобы прекрасно понимать, как писать хороший код.

                                                                                                    > Людей с годами опыта, которые пишут только жуткий говнокод и уже настолько к этому привыкли что не могут иначе — тоже полно.

                                                                                                    Так еще раз, они пишут говнокод не потому, что не знают, как писать хороший. Вопрос в мотивации, а не в умении.
                                                                                                    • Так еще раз, они пишут говнокод не потому, что не знают, как писать хороший. Вопрос в мотивации, а не в умении.


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

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

                                                                                                      А кто говорит про «в одночасье»? Вот человек работал 5 лет, допустим. Этого вполне достаточно, чтобы прекрасно понимать, как писать хороший код.


                                                                                                      Видал и с семью годами опыта — пишут говнокод на уровне джунов. Возраст не гарантия.

                                                                                                      Никому не интересно почему человек хреновый специалист. Ну разве что кроме родителей, которые удивляются почему такой умненький, но не может в жизни пробиться. Видимо виноваты злые начальники.
                                                                                                      • +1
                                                                                                        Хаха, видел немало людей с 5-ю годами опыта которые в принципе про принципы написания хорошего кода не слышали, просто как начали писать всю логику портянками на 1к+ строк в событиях UI элементов, так и продолжили. И нет, они так пишут не из за того что ленивые, просто даже не представляют что можно по другому. А уж «страшные» аббревиатуры DRY, KISS, SOLID и т.п. даже не слышали.
                                                                                                        • 0
                                                                                                          Я все же склоняюсь к тому, что все они прекрасно понимают. Просто считают, что нафиг не нужны эти ваши DRY с SOLID'ами, и что портянка на 1к+ строк «и так сойдет», вот и все.
                                                                                                          • нафиг не нужны эти ваши


                                                                                                            Вопрос-то о навыках.

                                                                                                            Навык приобретается только с практикой.

                                                                                                            Теоретические познания об то, что можно и так и эдак сделать и вприсядку — остаются всего лишь теоретическими познаниями.
                                                                                                            • 0
                                                                                                              > Теоретические познания об то, что можно и так и эдак сделать и вприсядку — остаются всего лишь теоретическими познаниями.

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

                                                                                                    Что же так резко меняется между работой и гитхабом, что для гитхаба мотивация есть (что навевает определённые мысли о внутренней мотивации и удовольствии от процесса самого по себе), а для работы она кончается?
                                                                                                    • 0
                                                                                                      > Что же так резко меняется между работой и гитхабом

                                                                                                      Чуть выше по диалогу же:

                                                                                                      > Почему бы тогда в выходной не выполнить пару тасок по текущей работе? С пользой и (возможно) денежным возмещением?

                                                                                                      > Потому что не всегда в рамках этой пары тасок можно изучить и освоить что-то новое.

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