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

作者 | 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】

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

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

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

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

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

戳他了解更多↓↓↓

 热 文 推 荐 

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

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

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

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

程序员 520 脱单指南!

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

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

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

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

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

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

你点的每个“在看”,我都认真当成了喜欢

程序员编码能力差,竟是睡眠不足惹的祸?!相关推荐

  1. 程序员编程能力和年龄的关系

    <Is Programming Knowledge Related to Age?>, 这篇论文是两个北卡罗莱纳州立大学计算机科学系的两个人Patrick Morrison 和 Emers ...

  2. 程序员是青春饭吗-最新研究显示程序员的能力从50 岁后才会开始下降

    程序员是青春饭吗 很多人都说写代码最多到 35 岁,妥妥的青春饭,然而科学分析不这么认为.<Is Programming Knowledge Related to Age?>论文对 169 ...

  3. 程序员的能力拓展模型

    听人说了一个词儿,叫作"Comfirtable Zone",中文是"舒适区". 这个词儿让我瞬间联系到程序员的能力边界问题,我画了能力拓展模型图.如下: 我觉得 ...

  4. 程序员的能力具体体现在哪些方面

    程序员的能力具体体现在哪些方面?我认为应该从这几个方面来分析,包括技术的深度和广度.个人经验.协作能力.学习和总结能力.行动力和执行力.创新能力,这几个方面是相辅相成的,各方面又会相互影响和促进.技术 ...

  5. 【杂谈】PHP程序员的能力水平层次

    PHP程序员的能力水平层次 前言 之前看过很多篇关于服务端工程师和PHP开发者的能力模型介绍,每篇都对能力有侧重点. 下面我们来详细谈谈以开发能力为基准点的PHP程序员的能力水平层次. 层层递进 1. ...

  6. 程序员编程能力7个能力提升阶段分析

    前言 程序员的编程技能随着经验的积累,会逐步提高.我认为编程能力可以分为一些层次. 百牛信息技术bainiu.ltd整理发布于博客园 下面通过两个维度展开编程能力层次模型的讨论. 一个维度是编程技能层 ...

  7. 程序员的能力矩阵表【转载自】

    一个挺有意思的程序员能力界定,从程序员能力矩阵转载: 注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识. 计算机科学 Computer Science   2n (Le ...

  8. Symbian OS C++程序员编码诀窍

    版权©属于诺基亚公司( 2003年),诺基亚公司保留全部权利 "诺基亚"及"诺基亚科技以人为本"是诺基亚公司的注册商标.Java和所有基于Java的标志是Sun ...

  9. 程序员调试能力和相关书籍

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 楼主vc ...

最新文章

  1. (转)C语言字节对齐
  2. win 7 DHCP获取不到ip的解决办法
  3. 自定义控件的时候为控件增加事件
  4. 随机系列生成算法(随机数生成)
  5. Netty 5 io.netty.util.IllegalReferenceCountException 异常
  6. 如何获取LanuchImage
  7. 12个新鲜出炉的Web开发框架
  8. Oracle数据库之SQL单行函数---字符函数之TRIM
  9. clover写入efi_Clover EFI Bootloader r5111 四叶草黑苹果引导程序下载
  10. viper4android fx2.7,ViPER4Android FX下载-ViPER4Android FX(蝰蛇音效fx)2.7.1.0 安卓版下载_东坡手机下载...
  11. VS2013 由Unicode字符集切换为多字节字符集后编译报错
  12. 最新!中国内地高校ESI排名出炉:342所大学上榜!
  13. 抖音JAVA工程师_字节跳动抖音社招后台开发工程师面经
  14. Android :RxJava学习笔记之Single、Completable以及Maybe
  15. HTTP提交方式之PUT详细介绍及POST和PUT的区别
  16. SAP业务顾问必备的技术能力
  17. 苹果手机不进post方法
  18. 计算机应用格式工厂部分教案,格式工厂
  19. 苹果IWatch真香,包邮送一个!
  20. 多种方法清理电脑内存,解决电脑卡问题

热门文章

  1. labelme标注工具实现json标注数据批量转换
  2. Windows 10快速连接蓝牙设备
  3. 矩池云解决方案介绍图
  4. 会声会影x4素材_如何利用会声会影制作抖音短视频
  5. 第五章---字符串+序列转化
  6. mysql 5.7多层级json查询_MySql5.7 json查询
  7. 剑指Offer值和为S的两个数字
  8. Docker集群的创建与管理
  9. 2021年中国船用燃气发动机市场趋势报告、技术动态创新及2027年市场预测
  10. sqlisnull mysql_SQL ISNULL()、NVL()、IFNULL() 和 COALESCE() 函数