阅读更多

7顶
1踩

研发管理

转载新闻 程序员为何喜欢半夜工作?

2013-01-16 16:25 by 副主编 WnouM 评论(25) 有11202人浏览
有种流传甚广的说法:如果你想将咖啡豆磨成代码,那就去买台“程序员”好了。

确实,如果你在一家编程高手云集的互联网公司工作,问问你身边那些程序员们,他们一般什么时候效率最高,点子最好?得到的答案,大部分是半夜——不管前半夜,还是后半夜。有些习惯在早上四点起床,然后工作到日出,还有些人则是习惯在早上四点后才睡觉。

如果只是为了避开无谓的干扰,何不关上门,带上耳机,为何一定要在深夜工作呢?我认为主要有三条原因:创作者的日程表、困倦的大脑,以及闪亮的屏幕。



创作者的日程表

通常来说,这个世界有两种日程表,一种属于管理者,一种属于创作者。传统的管理者日程表将一天按小时划分,而通常十分钟的打扰,对于程序员来说,可能需要一个小时去重新整理思路。

而创作者的日程表,著名投资教父Paul Graham在 2009 年也曾就创造者的日程表专门撰文。这个日程表是适用于比如作家或是程序员的。这类人的工作通常需要在内心建立起一个庞大而抽象的系统,不仅如此,在创作过程中,他们还需要不断的与自己的心理作斗争。

有个非常好的类比说,创作或编程的过程就好像拿昂贵而易碎的水晶搭建一所房子,一旦有人来打搅你,你所有的努力都可能会毁于一旦,倾注的所有心血可能就瞬间摔成碎片。

这就是为什么程序员在别人打搅他们时,异常愤怒的原因。正因如此,他们通常会在确定有一连好几个小时无人打扰的情况下才会开始工作。

事实上,你同一些程序员聊天时会发现,他们自己都会有种白天不能完成工作的感觉。持续不断的打扰、很多重要的事情需要打理、邮件要回等等,都会打乱你的节奏,不能让你安心工作。这也正是他们选择日出而息,日落而作的原因。

困倦的大脑

但就算习惯半夜工作的程序员,他们也是白天精神,夜里犯困。

那么为什么他们会在困倦的时候做非常复杂,需要脑力劳动的事情,而在大脑最活跃、最兴奋的时候,反而做一些非常简单的工作呢?

因为疲倦会让他们成为更好的“攻城狮”。

这跟鲍尔默效应类似,疲倦会让程序员更加专注,因为在大脑疲倦的情况下,就必须得非常专注的做一件事情。你仅存的脑容量已经不足以应付多余的事情了,只能专注于手头的事。

喝太多茶或是在一个糟糕的时间点喝了功能饮料之后,工作效率是最低的。兴奋会让你一会儿看一下 Twitter,一会儿瞅一眼 Hacker News,在社交网站上跳来跳去。

你可能感觉精力充沛的状态非常适合工作,但真实的情况却是你常常会做一些让自己注意力分散的事,大脑就是无法安静下来,把所有的注意力集中在一件事上。

反而当你有点困意的时候,你只想窝在椅子或者沙发上专心编程。而半夜,安静的不止是周边的环境,互联网也是如此,你会不知疲倦的写上好几个小时的代码,根本不会想到 Twitter 和 Facebook。

大部分程序员都是这样,白天你写出一个算法,然后加上十倍的量来搭建一个可供算法运行的环境。大部分时间里,你都只是做着一些“清理”工作,或是想办法让最终的结果以一种舒服好看的方式呈现。

闪亮的屏幕

这一点就更简单了。

如果你持续的盯着一个很亮的光源,睡眠周期便会往后延,如此即使是在早上三点,你也不知疲倦。而当夜晚再次降临之时,你也感觉不到疲惫,因为你上午 11 点才起床。这就好像你生活在另外一个时区一样,更有趣的是,一旦你习惯了这种作息时间,你很难再回去了。

当然,即使你 4 点才睡,你的闹钟还是会调到上午 8 点,这个世界最长有的偏见就是如果你下午两点才吃早餐的话,你一定是个失败者。

总结

总结一下,晚上给你一种更轻松、更安静的环境,你的大脑不会受到外界的干扰,并且显示屏的亮光也会让你保持清醒。

Via BI
  • 大小: 16.8 KB
来自: 36氪
7
1
评论 共 25 条 请登录后发表评论
5 楼 geminiyellow 2013-01-17 08:02
没办法,谁让无量的人白天不停的大声放屁。
4 楼 KeepCrazy 2013-01-17 00:15
我以为我一点睡就已经很晚了, 可到这里一看才知道原来我已经睡得很早了...
3 楼 o0rid0o 2013-01-16 20:39
我被代表了。。。

我就不喜欢晚上编程,最喜欢的是上午思考、设计,下午编程,晚上游戏、睡觉

要是编程遇到什么问题,不好解决,早晨是最好的时间,事半功倍
2 楼 freezingsky 2013-01-16 20:22
我也喜欢夜晚。而且理由不是上述所讲,而是更多的那个时候心会变得很安静。
1 楼 zyl小星星 2013-01-16 16:42
原来是酱紫,我也喜欢半夜编程,基本2点左右睡

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Hotspot源码

    从orcle官网上下载的hotspot源码,网盘被屏蔽了,放这里方便下载。

  • jdk1.8 下载。 hotspot (包含源码)

    jdk1.8。hotspot java jdk java开发工具。

  • hotspot 源码(JDK8)

    jdk8u-hotspot

  • JDK10(JDK10底层C++源码及hotspot虚拟机源码)

    JDK10(JDK10底层C++源码及hotspot虚拟机源码)

  • hotspot源码

    提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。

  • JDK7底层C++源码及hotspot虚拟机源码

    JDK7底层C++源码及hotspot虚拟机源码

  • openjdk hotspot源码

    openjdk hotspot源码,在研究JAVA虚拟机时,这个源码是必不可少的。

  • java-jdk-hotspot源码

    学习JDK 源码必备,提起HotSpot VM,相信所有Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。 但不一定所有人都知道的是,这个目前看起来“血统纯正”的虚拟机在最初...

  • 从零开始学JVM系列(五):搭建HotSpot源码阅读环境

    从零开始学JVM系列(五):搭建HotSpot源码阅读环境前言准备工作第一个环节:软件准备第二个环节:环境搭建IDE Clion测试IDE Clion可用安装Command Line Tools下载openjdk源码第三个环节:编译源码准备编译工具配置...

  • JDK9源码(底层C++源码及hotspot虚拟机源码)

    JDK9源码(底层C++源码及hotspot虚拟机源码)

  • hotspot源码阅读

    hotspot阅读 c++基础知识: 栈上对象,new堆对象delete释放空间. 地址引用. posix线程创建.

  • JDK6底层C++源码及hotspot虚拟机源码

    JDK6底层C++源码及hotspot虚拟机源码

  • hotspot源码下载

    jdk的开源主要体现openjdk项目上,下面简单介绍一下jdk及其子项目hotspot的源码下载方式。 首先我们进入网址:http://hg.openjdk.java.net,这个网址下面列出了所有开源的openjdk项目,从中我们可以看到jdk项目。 ...

  • Hotspot源码解析一

    hotspot源码的确比较恶心,要懂C/C++,还要懂ASM,算法也要掌握.直接劝退.看了一整天,本来迷迷糊糊,现在更加迷迷糊糊了.= = call_stub javaCalls.cpp StubRoutines::call_stub()( //连接器 (address)&link, // ...

  • 如何下载hotspot源码

    怎么下载jvm的源码,当然下载的是openjdk的jvm源码: 1. http://hg.openjdk.java.net/ 选择格式下载即可: 各路径的意义: ├─agent Serviceability Agent的客户端实现 ├─make 用来build出HotSpot的...

  • Book Porter 2021-09-11 第二章 HotSpot 源码(1)

    3.下载openjdk源码,安装 IDE Clion后 打开源码,此时你的大脑可以脑补 第一章 Java HotSpot VM 中第三点:HotSpot VM图解 一、下载openjdk源码 http://hg.openjdk.java.net/jdk8 二、安装 IDE Cl

  • openJDK_HotSpot源码下载

    ​ 最近在研究多线程的内容,在看Java源码的时候有很多是调用native的本地方法,就想着下载一下Hotspot源码从而能更深入的了解一下底层原理。好了废话不多说,下面介绍一下Hotspot源码下载方法。 1、登录 打开...

  • CAS和hotspot源码

    } this.getIntVolatile(var1, var2) 和this.compareAndSwapInt(var1, var2, var5, var5 + var4) 均为native方法,需要看hotspot的源码才行。 二、this.getIntVolatile(var1, var2) 从偏移量中先取出获取当前值 ...

  • 从openJDK官网下载Hotspot 源码

    讲了下载java8对于的JVM源码,jvm源码中只有.h的头文件,并没有.cpp的具体实现文件。还需要下载hotspot源码。4.选择hotspot,点击进入新界面。选择browse,点击进入新界面。

  • Hotspot VM源码

    HotSpot正是目前世界上java虚拟机的最好的实现。 HotSpot的基础代码是许多人辛勤劳动的结晶,这个过程迄今已持续了超过10年的时间(当然时间长并不意味着一定好,一半一半吧)。所以到现在为止,他的体积是很大的。...

Global site tag (gtag.js) - Google Analytics