640?wx_fmt=gif

对于程序员而言,编码的能力取决于自己经验的积累、新知识的汲取、实践的历练......然而万万没想到的是,它也与睡眠和作息有关。

640?wx_fmt=jpeg

作者 | Hillel

译者 | 王艳妮,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

技术界最有争议的一种看法是,你的睡眠质量和你感受到的压力程度远比你选择用哪种语言或者遵循什么样的代码规范都要重要得多。没有什么能与睡眠质量相比了,我们日常使用到的类型系统不能、TDD(Test-Driven Development 测试驱动开发)不能、形式方法不能、任何东西都不能。

接下来,我来解释一下。

倘若你随便说一个能“改善软件”的技巧,我保证实证结果会是好坏掺半的。这些技巧可能各自都有倡议者,但实际的研究、试验、案例分析和人种学会证明,这些方法最多也只有很弱的作用。最有可能的情况是它们不是决定性因素。

比如:

  • 对语言的选择:GitHub上大范围的研究不能证明语言的选择会在很大程度上降低软件或者应用的缺陷(https://arxiv.org/pdf/1901.10220.pdf)。

  • TDD呢结果有好有坏。它可能抵消缺陷http://www.sserg.org/publications/uploads/04b700e040d0cac8681ba3d039be87a56020dd41.pdf),也可能根本一点也不降低缺陷!(http://softwareprocess.es/pubs/borle2017EMSE-TDD.pdf

  • 简洁代码?在增加特征时有些帮助但有可能使debug变得更困难。(https://www.duo.uio.no/bitstream/handle/10852/51127/master.pdf?sequence=1

  • 契约式设计(Design by Contract)?能找到任何实证研究吗?祝你好运吧。

  • Code Review? 好吧这个是真的有用。

现在你可能会说这些研究有缺陷,或者种类太繁杂了,或者这些方法在别的情境下才会起作用。但这些研究结果都承认:

  • 它们只在特定条件下才起作用。

  • 它们最多也只能起辅助作用。

但也有可能好处很明显,而我们只是无法去研究而已。也有可能我们能对软件工程做的的任何改善都很微不足道。

但是,还存在一些我们所知道的能对任何领域都产生明显的,压倒性影响的东西。

比如睡眠

有调查发现:

  • 在持续清醒24小时以后,新手开发者会丧失自己一半的代码能力:https://arxiv.org/pdf/1805.02544.pdf

  • 长期睡眠不足七小时会使人在面对各种智力测验时,能力都严重退化。

  • 人们不知道SD(Sleep Deprivation, 睡眠剥夺)何时使他们的能力减退的。(如上)。

过度工作也有很大影响:

  • 如果你一周工作50小时,那么8到10周以后你每周的工作效率会比那些一周工作40小时的人还低。

  • 游戏开发团队在“赶工模式”(crunch mode)下表现得比平时还差,这没有任何益处。

  • 压力水平会击垮你的效率(https://www.cdc.gov/niosh/docs/99-101/#Stress,%20Health,%20and%20Productivity)。

一个快乐的程序员解决问题的速度会更快(http://neverworkintheory.org/2014/05/01/happy-sw-devs-solve-problems-better.html)。

这些发现适用于所有人群,所有产业。而且这还仅仅是在谈论冷冰冰的生产力而已。它们对健康和幸福感的影响更大。

一方面,研究不同情境下睡眠,工作量和压力水平如何影响我们的能力和生产力的文献浩如烟海。

另一方面,我们珍视的几种工具/方法被发现没什么好处或者不起决定性作用。

对我来说,这太美妙了,使我开心。我们最珍贵的天资就是思考的能力。我们的上限不是由我们是选择Rust而非Haskell, 或是选择Scrum而非Kanban决定的,而是由压力和缺觉在多大程度上困扰我们决定的。

没有任何一种方法,工具,语言,能有我们自己的头脑那么重要。如果你想写出好的代码,那就回归到正常人类,保持健康吧。别的都没有那么重要。

…除了Code Review. 这个还是有用的。

(PS:很明显这些也不完全是我们能自己控制得了的:压力的来源有很多,很多人有健康问题等等。但公司可以选择,是意识到良好工作环境的重要性呢,还是为了短期利益就选择毁掉自家的生产力呢。)

原文:https://threadreaderapp.com/thread/1119709859979714560.html

本文为 CSDN 翻译,转载请注明来源出处。

【END】

640?wx_fmt=jpeg

作为码一代,想教码二代却无从下手:

听说少儿编程很火,可它有哪些好处呢?

孩子多大开始学习比较好呢?又该如何学习呢?

最新的编程教育政策又有哪些呢?

下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)

戳他了解更多↓↓↓

640?wx_fmt=jpeg

 热 文 推 荐 

开源需自立!Android、GitHub、Apache 全线告急!

☞任正非回应美国禁令推迟90天实施;小米无惧安卓系统禁用;苹果5G芯片有望2025年面世 | 极客头条

程序员过关斩将:小小的分页引发的加班血案

☞揭秘清华 AI 学堂班:姚期智担任首席教授,2019 年首批招收 30 人

程序员 520 脱单指南!

《使女的故事》大火,AI是背后最大推手?

☞十面九问的逆天异步神器-celery,你了解多少?

黑客亲述: "倾家荡产,是你们的事! "

Docker 系列学习文章 | 什么是容器云?

☞大神!这段代码让程序员躺赚200W,源码简单,你怎么看?

640?wx_fmt=gif点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

640?wx_fmt=png 你点的每个“在看”,我都认真当成了喜欢
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐