不开玩笑,你应该像「搬砖」一样写代码!斯坦福大学研究如是说

2024-04-08 01:04

本文主要是介绍不开玩笑,你应该像「搬砖」一样写代码!斯坦福大学研究如是说,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

20240407210113

由于程序员不可避免要进行很多重复性的工作,并且工作强度很高,导致有一种自嘲的说法出现:程序员们自称自己每天都在搬砖(实际上很多职场人都这么自嘲)。我相信当我们说工作像「搬砖」的时候,只是在表达一种不满和自嘲,没有其他积极的含义。不过从斯坦福大学10年前的一份研究结果来看,我们或许真的可以对「搬砖」这个词进行另外一种解读,并从中找到一些提升工作效率的密码。

如何让你的想法长腿?

2014年斯坦福大学的研究团队发表过这样一篇论文,专门研究“步行对创造性思维的影响”。

20240407205451

斯坦福大学的 Marily Oppezzo 和 Daniel L. Schwartz 进行的研究探讨了步行对创造性思维的积极影响。进行了四项实验,以证明步行可以实时和在不久后增强创造性构思。实验涉及参与者在坐着时完成创造性思维任务,然后在跑步机或户外行走时完成。主要发现包括与坐着时相比,步行期间的创造性输出显着增加,特别是在发散性思维任务中。该研究表明,步行可以打开思想的自由流动,并提供一种简单有效的方法来提高创造力和身体活动。该研究有助于理解身心联系以及身体活动(如步行)对创造力等认知过程的具体影响。

其实这一研究结果并不算意外,有一个著名的关于爱因斯坦的轶事是他在普林斯顿大学工作时,每天都会从家中步行到学校,这段大约1.5英里的路程,他认为是思考和放松的好时机。还有康德,也以其规律性的散步而闻名,他的散步时间如此准确,以至于邻居们据此校正自家的钟表。Steve Jobs对行走的爱好被Walter Isaacson在《乔布斯传》中披露,这位科技精英对行走的热爱一定程度上造成了最近走路的复兴。

20240407213018

不过,恰恰是这样名人的故事可能给我们造成一种印象:散步有利于思考和创造力是属于名人和特质和特权,似乎跟普通人关系不大。坦白讲,虽然我并没有意识到,但我的潜意识是确实是这样认为的。

斯坦福论文的研究对象都是普通人,仅仅这一点,就可以给我们启发。

散步这么好,为什么不一直散步?

如果这一研究仅仅是对名人轶事的佐证,那就有点没有技术含量了。下面我们看一下研究中的实验细节,从中还可以获得不一样的洞察。

首先,坐着针对两种类型的思考:Divergent Thinking(发散思维)和Convergent Thinking(收敛思维)分别进行了研究。

  • 发散思维:是指在创造性思维过程中,通过产生大量新颖和适当的想法来解决问题的思维方式。在创造性任务中,发散思维通常涉及到产生多种可能性,避免被固定在单一类别的用途中。
  • 收敛思维:是指在解决问题时,通过集中精力寻找最佳解决方案或答案的思维方式。

研究发现先坐着(Sitting)再散步(Walking)对发散思维有明显的帮助,几乎加倍,但是对收敛思维没有任何帮助,甚至还有一点伤害。

20240407205340

所以,事情稍微还是有点不同的。当你有思路的时候,集中精力思考并解决问题,你可以一直坐着,甚至进入心流的状态。但是,当你思考遇到困境的时候,找不到解决问题的方法的时候,或者需要头脑风暴的时候,请站起来走一走!

散步多久合适呢?

散步的时候思维活跃具有创造力,确实有利于思考,但是当回到工作的时候不还得坐在电脑前吗?那不又打回原形了吗?庆幸的是,我们的身体和思维没有那么的不善解人意,根据研究结果,散步的积极效果在坐下后至少能持续16分钟,这种残留效应表明散步对创造性思维有持久的影响。下面我们看一下实验细节。

研究者设计了四个实验,每个实验分两个阶段,每个阶段16分钟或者坐着(sit)或者步行(walk),组合起来共有四种情况:sit-sit、sit-walk、walk-sit和walk-walk。实验结果显示,在这些条件下,行走对创造力产生了积极影响,并且这种影响并不会随时间减弱。具体来说,在sit-walk条件下,参与者在行走时创造力产出增加了两倍以上,而在sit-sit条件下,创造力产出没有明显变化。在walk-walk条件下,行走的积极效应保持不变,至少在16分钟内没有减弱。在walk-sit条件下,人们在行走后坐下时,表现出几乎与行走时相同水平的创造力产出。这些结果表明,行走对创造力有持久的积极影响,即使在户外行走时也是如此。

20240407205305

搬砖的隐喻

如果你真的在工地上搬过砖(我搬过),你会知道搬砖是不可能一直持续一个动作的,搬砖的过程也是简单甚至单调地分为两个阶段:

  • 当需要干活的时候,专心致志地干活,特别是当你跟别人配合的时候,必须全神贯注不被打扰。某种程度上也可以进入心流的状态。这一过程可以类比上面提到的收敛思维
  • 而当搬砖搬累了的时候,你需要会坐下来喝口水,歇息,一起干活的人会坐在一起开始聊天(吹牛,八卦,互相打趣……),这样的对话内容常常非常丰富。这一过程可以类比上面提到的发散思维

说了半天,好像也没有太深刻的道理,又回到了众所周知的白开水话:无论是在电脑前搬砖还是真的搬砖,都要劳逸结合而已。但是,想一想你每天坐着的时间占比(50%还是80%?),你可能不会再轻视这段大白话。

多起来走走,不仅是为了身体健康,还是为了提高工作效率。这很意外地暗示了另一个事实:我们的身体和精神分的没有那么开。

关注👉👉👉「黑客悟理」,不错过任何新奇有趣的知识。

如果你喜欢我的文章,欢迎到我的个人网站关注我,非常感谢!

这篇关于不开玩笑,你应该像「搬砖」一样写代码!斯坦福大学研究如是说的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884164

相关文章

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码

《Java中Date、LocalDate、LocalDateTime、LocalTime、时间戳之间的相互转换代码》:本文主要介绍Java中日期时间转换的多种方法,包括将Date转换为LocalD... 目录一、Date转LocalDateTime二、Date转LocalDate三、LocalDateTim

jupyter代码块没有运行图标的解决方案

《jupyter代码块没有运行图标的解决方案》:本文主要介绍jupyter代码块没有运行图标的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录jupyter代码块没有运行图标的解决1.找到Jupyter notebook的系统配置文件2.这时候一般会搜索到

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La