Я слышал о программистах, которые два дня бездействуют, пьют кофе и Red Bull . Также в таких фильмах, как The Social Network , в сцене они показывают, что Марк Цукерберг программирует в течение 36 часов. Также я где-то читал, что в таких компаниях, как Facebook, Google, Foursquare и т. Д. Они могут кодировать более 24 часов без сна.
Это правда? Можете ли вы на самом деле создавать высококачественный код, если вы лишены сна? Могут ли такие вещи, как Red Bull наверстать упущенное?
productivity
Peter Mortensen
источник
источник
Ответы:
Просто нет . Кодирование в течение 36 часов не имеет ничего общего с программированием, скорее это атрибут человека. Очень немногие люди могут бодрствовать в течение 24 часов, и даже когда они бодрствуют, их ум действительно теряет навыки решения проблем. Водители, которые сонные, просто бьют по другим машинам. Бухгалтеры, которые сонные, просто делают ошибки в своих расчетах. Также многие программисты, когда спят, пишут меньше качественного кода.
PS: есть болезнь, называемая бессонницей, которая заставляет вас меньше спать. Но я не думаю, что Google нанимает людей с такой болезнью. :)
источник
Это, наверное, один из тех известных, постоянных мифов. Вы много слышите об этом, потому что это убедительная идея, но на самом деле она не имеет реальной основы.
О, конечно, может быть, какой-то молодой ребёнок, только что закончивший среднюю школу, сможет совершить нечто вроде чудеса кодирования за 36 часов. Но так ли написан код, поддерживаемый? Это даже читабельно? Это масштабируется? Это следует за разумными методами программирования? Это задокументировано?
Твиттер взломал сайт, который работал, а затем переписал его «правильным» способом, потому что он падал, когда нагрузка становилась слишком большой. Facebook собрал свой оригинальный сайт за сравнительно короткий промежуток времени для такого проекта, но позже привлек кучу новых разработчиков, чтобы переписать платформу PHP , на которой работал сайт, потому что он не будет масштабироваться.
Исключения подтверждают правило.
источник
Единственная часть, которая может быть правдой об этом мифе, - это то, что программисты работают лучше всего, когда они непрерывны в течение длительного периода времени. Когда вы кодируете, чем больше вещей вы можете манипулировать в своей голове, тем быстрее вы сможете писать код, потому что вам не нужно искать такие вещи, как использование API или то, как другая часть кода была написана вами или кем-то еще. Я обнаружил, что, когда меня прерывают, всегда требуется некоторое измеримое количество времени, чтобы вернуться к полной скорости, и, если я делаю что-то важное (или забавное), иногда я отказываюсь идти домой в обычное время, потому что после нескольких часов когда ваши перерывы идут домой. Я также был известен тем, что остался до 3 или 5 утра по той же причине.
Однако, как я уже сказал, ваша скорость и качество кода зависит от того, сколько внимания вы уделяете и сколько вещей вы можете манипулировать в памяти. Когда сон становится проблемой, вы можете думать, что работаете на полную мощность, но на самом деле это не так. Большая часть программного обеспечения, разработанного, как и в приведенных вами примерах, быстро стартует, но в то же время быстро становится огромной ответственностью и головной болью при обслуживании.
Вы определенно можете создать много кода, если много работаете, и при достаточных усилиях вы можете запускать функцию за функцией. Но, не обращая внимания на архитектуру / дизайн, вы не будете производить легко масштабируемое, обслуживаемое или расширяемое программное обеспечение. Исходя из опыта, гораздо сложнее думать о дизайне и жонглировать компонентами / интерфейсами / уровнями абстракции в вашей голове (или на бумаге), чем продолжать писать чистый код.
источник
Все это звучит как преувеличение нахождения в «зоне». Когда вы полностью сосредоточены, как программист, время искажается, минуты становятся секундами и т. Д. Вы, вероятно, работаете наиболее продуктивно. Иногда бывает трудно войти в это состояние, и довольно легко выйти из него (в основном, из-за внешних факторов), но когда вы… вау!
источник
Я могу - и иногда делал - программировать на 36 часов подряд.
Я думаю, что худшее, что я когда-либо переживал, была неделя с примерно 10 часами сна или около того.
Для меня кофеин и энергетические напитки не помогли. На самом деле, на такой длительный срок кофеин может оказывать довольно негативное влияние. Мой совет - много пить . Увлажняет, и прогулки в туалет - хороший побочный эффект: вы немного растягиваете ноги и автоматически делаете короткие перерывы.
При этом, мне все труднее. Я бы предположил, что это емкость, которая истощена и в конечном итоге исчерпана. И, может быть, имеет некоторые негативные последствия для здоровья - физические или психические, долгосрочные или краткосрочные, я не могу сказать.
Что я могу сказать, так это то, что вы чувствуете себя зомби, и вы будете чувствовать себя так же и в дни после такого марафона. Лично у меня было очень сильное выгорание после того, как я делал это часто в течение года.
То есть: некоторые люди могут эффективно работать в течение такого промежутка времени, но это обходится дорого .
Обычно это было следствием плохого планирования и отсутствия опыта в заполнении пробелов, оставленных нетехническими руководителями проектов, это был единственный вариант.
Теперь вы редко найдете качественный код, производимый во время таких марафонов. Однако основной причиной этого являются обстоятельства, при которых происходят эти марафоны: Ситуации, когда вам необходимо доставить функции X, Y и Z в течение очень короткого периода времени. Никто на самом деле не заботится о качестве кода в этот момент, поэтому вы накапливаете большой технический долг с помощью быстрых исправлений и других хаков.
В то же время это указывает на неповрежденную работу мозга: быстрые исправления и взломы требуют как обзора, так и творчества.
Не следует забывать, что качественный код редко пишется за один прогон. Особенно, если код имеет длительный срок службы. Качество кода достигается за счет проверки и рефакторинга. Никто не потрудится сделать это за 48 часов до истечения срока.
Суть в том, что вы должны работать только столько, сколько сможете, а не дольше . Если вы можете работать только 4 часа, тогда хорошо. Сделайте перерыв и работайте после этого. Попытки бодрствовать в течение 36 часов, в течение которых вы выполняете 8 часов работы, бессмысленны. Вы получаете вдвое больше работы, если вы делаете 4 сеанса по 4 часа каждый и используете оставшиеся 20 часов для регенерации.
Если вы можете работать так долго, значит, вы более гибко реагируете на недооценку. Однако долгосрочное решение улучшает ваш процесс планирования и оценки. Если это невозможно на вашем рабочем месте, поменяйте местами. Если люди ожидают, что вы будете работать так долго, смените место работы. Вам не нужно ничего никому доказывать.
источник
Хорошие программисты действительно могут программировать в течение 36 часов. Это не значит, что они могут создать код лучшего качества за 36 часов. Я не хороший программист, и я делал это несколько раз в колледже, и даже пару раз, когда мне было за тридцать, когда я пытался исправить ошибки, связанные с сроками сдачи корабля. Как правило, это глупая идея и отражает плохие навыки планирования и планирования.
источник
Вы можете не спать и работать в течение 36 часов, если вы здоровы. Но в этот раз вы не напишите свой лучший код или не решите очень сложные проблемы. Я работал очень долгие часы время от времени. Большую часть времени это было для соблюдения некоторых сроков. Но работа тогда заключалась в добавлении незначительных функций, таких как печать некоторых списков, полировка некоторых макетов. Ничего такого, где нужно много думать, больше похоже на много печатания. Основные функции и сложные части программ, где уже закончены.
Иногда ваша нехватка концентрации является основной причиной долгих часов. У нас когда-то был срок на следующий день. После уже очень долгого дня мы закончили все это, и было 2 часа ночи. Оставалась только одна неприятная ошибка. У моего босса была назначена встреча с заказчиком в 9 утра, так что времени было много. Мне потребовалось несколько часов, чтобы найти и исправить то, что в противном случае я бы исправил через полчаса. Я просто знал наверняка, что смогу найти его в любом случае, и не было никаких причин подводить моего босса, так как ночь все равно прошла.
источник
Да. Обилие анекдотической информации говорит о том, что может. Я сомневаюсь, что кто-либо может физически сделать привычку из марафонов работы. Медицинские интерны тянут такие часы.
Вы, вероятно, сделаете больше ошибок, вероятно. Я предполагаю, что все это предполагает, что вы можете написать качественный код в первую очередь. В этих ситуациях вы находитесь под прицелом и просто хотите заставить его работать. Качество не имеет значения. Мы исправим это после того, как получим финансирование.
источник
Это не невозможно, и это произошло в действительности. Поскольку глава длинная, позвольте мне процитировать фактический абзац:
Конечно, это не значит, что это одно правило для всех. Некоторые люди могут это сделать, а другие нет. Самое главное, чтобы вас не прерывали, а работали в те периоды, когда вы чувствуете себя очень продуктивно. Таким образом, вы можете попробовать для себя и сделать выводы :)
источник
Я думаю, это возможно, если вы машина - я не сомневаюсь, что некоторые могут это сделать. Но опыт научил меня, что подавляющее большинство программистов будут писать худший код вскоре после 8–10-часовой отметки и ужасный код после 16-часовой отметки.
Несколько раз, когда наша команда была вынуждена работать всю ночь, мы фактически получили некоторый код, который нужно было откатить.
источник
Сомневаюсь, если честно. Фактически, несмотря на то, что мифы и истории о людях, достигших X, Y и Z, не спали в течение 24 часов, они оказываются в экстремальных обстоятельствах и встречаются редко.
Давным-давно, я обычно предоставлял пул для набора текста для юридической фирмы, которая иногда заставляла людей тянуть всех на ночь, чтобы попытаться достать вещи в определенные времена. Любой, кто занимался сумасшедшими часами при составлении документов, обычно заканчивал тем, что отправлял эти документы, чтобы их ночные изменения были отменены. На мой взгляд, невозможно постоянно выполнять на высоком уровне более 12 часов за раз (и даже это чрезмерно), переживая недостаток сна, повышая уровень кофеина. Я думаю, что людям нравится рассказывать эту историю, но если они будут честными, они признают, что их средняя работа в течение длительных сессий, независимо от того, какая работа, будь то кодирование или написание юридических документов, редко, если вообще когда-либо, достаточно хороша чтобы соответствовать их выходу, если они получили достаточный отдых.
В кодерах нет ничего особенного, независимо от того, насколько они хороши, например, водители, например, операторы тяжелой техники, они подвержены усталости, и я был бы ошеломлен, если бы кто-нибудь мог доказать, что кодер может обеспечить высокое качество продукции без отдыха в течение примерно 12 часов. ,
источник
Когда я изучал программирование в университете, было несколько вечеров, где я чувствовал себя более продуктивно, чем днем. Это связано с тем, что ночью отвлекается меньше, травка сделала меня достаточно комфортным, чтобы сидеть спокойно, и я все равно не вставал в этот день до 2 часов дня, так что я не был слишком уставшим. Я мог кодировать до 8 утра, прежде чем я был безумно голоден на мой завтрак. С учетом сказанного на следующий день я мысленно потерпел бы крах к 5 вечера, и я никак не мог быть продуктивным. Программирование ночью может быть более продуктивным, но лишенный сна сон никогда не повышает качество кода, и вы никогда не планируете уставать при кодировании.
источник
Я и многие другие творческие люди демонстрируем черты биполярной личности. При разработке программного обеспечения я склонен следовать алгоритму Фейнмана:
Запишите проблему. (Протокол)
Думай очень усердно. (Между днями и годами)
Запишите решение. (дни)
Гипоманический эпизод с резко сниженным сном (кофеин или нет) - это всего лишь билет до финиша №3.
источник
Пожалуйста, смотрите этот пост в Skeptics.SE: Пик Баллмера настоящий? и, в частности, этот ответ Е.С. Султаника .
Почему я думаю, что эти два вопроса связаны? Мне кажется, что нарушение, вызванное недосыпанием, чем-то похоже на пьянство, хотя у меня нет никаких ссылок, подтверждающих мое утверждение.
Цитата из цитируемой ссылки Е.С. Султаника,
Я бы сказал, что можно лучше создавать модели абстрактной архитектуры, лишенные сна, но фактический исходный код, набранный на клавиатуре, все равно будет опьянен.
источник
Когда кто-то вынужден писать код в течение 36 часов, это обычно из-за крайнего срока доставки продукта. Когда наступает такой крайний срок, качество кода, как правило, в первую очередь выбрасывается. «Просто сделай это» - мантра. «Мы исправим это в версии 2» - это еще одна мантра.
Поэтому, как правило, когда кодирование выполняется 36 часов подряд, качество кода ухудшается ... но это не имеет значения с точки зрения бизнеса ... потому что, если вы не отправляете что-то, даже сломанное, вы, возможно, не будете в бизнесе сделать это правильно.
Когда кто-то хочет писать код в течение 36 часов подряд, это потому, что у вас сильный творческий всплеск, и вы не хотите его прерывать. Вы не будете писать качественный код в течение этих 36 часов, но вы будете писать творческий код. Затем вы возвращаетесь позже и смотрите на этот код и удивляетесь, как он вообще работает.
Творчество - одна из тех вещей, которая часто приходит всплесками. Вы не можете контролировать это, поэтому вы используете это, когда оно показывает себя. Вы всегда можете исправить код, когда вы менее креативны.
источник
Несколько месяцев назад я пила со своими коллегами. На следующий день, когда мы вернулись в офис, мы остались на месте ... но, к нашему изумлению, закрыли рекордное количество ошибок.
На первый взгляд, эти ошибки было нелегко найти, и большинство из них не имело каких-либо этапов репликации, однако, все еще будучи «не в своем уме», должно было заставить нас «думать из коробки», когда дело дошло до исправления ошибок.
Хотя мы не были «лишены сна», у нас все еще не было правильного мышления для работы над кодом ... просто странно, что случилось в тот день, мы всегда упоминаем об этом.
О, и для склонности большинство из нас максимально использовало JD & Coke :)
источник
Я думаю, что работать продуктивно так долго без сна для большинства людей невозможно.
Но я думаю, что вы можете сделать потрясающую работу, скажем, за 3-4 часа хорошего сна. Это работает даже в течение нескольких дней интенсивной (интеллектуальной) работы с небольшим сном.
Однако, для меня это должно сопровождаться периодом восстановления после этого; скажем, пару ночей с обычными 7-8 часами сна.
источник