全文共2440字,预计学习时长7分钟

图源:unsplash

程序员不可能无时无刻都在写代码。如果你发现自己越来越频繁地熬夜,或者陷入了马拉松式的编码中时,那么你的代码很有可能是不达标的。这时你应该休息,转移大脑注意力,或者停下来思考整个项目的设计决策,否则将无法发挥出自己的理想水平。

你的大脑需要时间反思和放空,而你也需要时间退一步来审视大局。在编码的“兔子洞”中越陷越深,只能不断拖延即将发生的不可避免之事。最后你会精疲力竭,灰心丧气,甚至无法集中注意力。更糟糕的是,你还可能做出不利的结构决策,从长远看,给自己增加更多额外工作。

不要屈从于超效率的文化,不要认为编写的代码越多,你就越优秀。如果你是在学习一门新的语言,或是在大脑中巩固语法基础,倒也可以这么做。但这种做法在工作中是行不通的,你还需要花时间干点别的事情。不管是有意识还是无意识,你需要在写完代码后对其进行反思。

本文会探索一些既可以放松休息,又能提升开发人员技能的一些活动。有一些似乎表面上看起来简单,却可以教给我们重要技巧,锻炼头脑,使我们成为更加优秀的开发人员。

打电子游戏

“你的意思是打电子游戏能变聪明?”

其实在一定程度上是可能的。但我指的不是无需动脑的第一人称射击游戏,而是像策略游戏、沙盘游戏、益智游戏等。这类游戏能够促使参与者策划、适应、识别模式或解决问题。管理资源、策划攻击行动或者解决谜题都能够帮助其成为一名更加敏锐的开发人员。

这些游戏会促使你未雨绸缪并测试策略。在游戏中,你可以建造、移动、再建造;还可以将资源配置到不同的研究领域,以此观察其对整体科技树的影响。

所有这些素都与编码有着极大的相似之处。这和开发一款软件也是大同小异的,都是在不断测试策略以及解决谜题。唯一不同的是,研发软件时,开发人员面对的不是游戏中的华丽图片。

图源:unsplash

有许多优秀的游戏都能够提升开发人员的关键技能。下面列出的是我个人比较推荐的几款游戏:

·        《我的世界》(培养设计思维,系统规划和架构能力)

·        《文明5》(培养辩证思维,规划和问题解决能力)

·        《传送门》/《传送门2》(培养问题解决及模块识别能力)

参与小型电子产品项目

学习电子学的基础知识,掌握电路的基本工作原理会提升你对系统的理解。系统如今存在于各个领域之中,尤其是在软件开发中。处理由硬件、电路和零件组成的电子网络就如同处理软件系统,核心理念都是高效设计及有效规划。

布局电路并将元件连接起来不仅需要具备物理硬件工程技能,还需要掌握技术设计技能。而这些技能都会直接提升开发人员的能力,并在构建复杂系统方面提供不同的视角。

不仅如此,你还会与十分“严格”的物理媒介打交道:如果你犯了一个错误,想将其删除然后重新来过是不可能的。与电子产品打交道,你随时可能不小心损毁了某个零件,或者被迫重新焊接整个电路板,然后从头开始。

如果你之前没有接触过电子产品,莫不如就从现在开始吧。目前网上有大量免费教学材料,DIY套件也是价格低廉,来源丰富。以下是一些入门级的资源:

·        Arduino(低成本的微控制器套件和模块)

·        Adafruit(初高级DIY项目套件及零件供应商)

学习木工活

如果你还想要学习规划、设计和手作的关键基本知识,木艺也是一种让你在科技之余放松的活动。

木艺是一种完全不同的媒介,会给你带来新的技术设计挑战,让你完全从科技中跳脱出来。其组件也没有隐藏在抽象层和各种界面背后。木头就是木头,它是实体的。一旦犯了错误,你会立刻发现。动手雕刻木制品需要小心翼翼、注意细节,非常考验耐心。

所以下次如果你对花时间等待代码编译这件事颇有怨言,不如想一想木艺中可能要花八小时等胶水干透,这种匠人高度的耐心和专注会让你之后的编码工作收获良多。

绘画/绘制图表

休息一下,让笔和纸碰撞出缤纷的色彩。你可以使用任何适合你的绘画工具,花时间勾勒出想法,就算只是随手涂鸦也没有关系,这种方式会给予大脑急需的重置时间。即使是一个很简单的想法,你认为自己掌握其中所有细节,你也很有可能在将其绘制成图表或草图之后发掘出隐藏问题。

最开始绘制组件,它们就像一座座孤岛,随着想法逐渐具象化,你会从视觉上将所有东西连接起来,观察其运作原理。在可能缺失从属关系的地方,其连接可能与你的预期相悖,这是为什么呢?这个过程会使你的大脑放缓,思考整个想法的架构,而不是直接进行到编码或问题解决模式。

如果你实在是不喜欢动笔,你还可以使用像Mermaid这种可视化图表绘制应用程序来度过“无代码”时光。

进行体育锻炼

图源:unsplash

悄悄告诉你,我有好多解决问题的点子都是在跑步中想出来的。有些人觉得在锻炼中放空自己似乎并不能有效率地找出问题解决方案,但事实却恰恰相反。有些时候你只需要将自己的注意力从问题症结处转移开,问题便会迎刃而解。

如果你长时间陷入同一种思维定式中,无论你怎么努力也只是徒劳。跳出该问题,快速活动一下身体可以放松大脑,让大脑神游,从而让潜意识中的答案浮出水面。

众所周知,体育锻炼有益于身体健康,除此之外,它对于心理健康方面也是大有益处。对于开发人员来说,最大的好处就是记忆力和问题解决能力的提升。就我个人而言,体育锻炼提升了我编写代码的效率,减少了错误的发生。体育锻炼并不一定要达到多么高的强度,有时散一会儿步说不定就会让你灵光一闪。

欲速则不达。休息一会儿,你能跑得更快。

推荐阅读专题

留言点赞发个朋友圈

我们一起分享AI学习与发展的干货

编译组:王傲多、赵畅

相关链接:

https://medium.com/swlh/non-coding-activities-that-boost-developer-skills-bcae28cb8847

如转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

休息时间!哪些业余活动能提升开发人员的技能?相关推荐

  1. 吐血推荐那些提升开发人员工作效率的在线工具|文末抽书

    来源 :公众号 | 作者 :Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的. Holli ...

  2. 吐血推荐 | 那些提升开发人员工作效率的在线工具

    导读:Java开发人员经常要和各种各样的工具打交道,除了常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的.本文作者Hollis偏爱使用在线工具,因为这样比较方便.本文就 ...

  3. 那些提升开发人员工作效率的在线工具

    本文转自微信公众号 Hollis 作为一个Java开发人员,经常要和各种各样的工具打交道,除了我们常用的IDE工具以外,其实还有很多工具是我们在日常开发及学习过程中要经常使用到的. Hollis偏爱使 ...

  4. Java开发:哪些技能测试来评估Java开发人员的技能?

    在创建你的 Java 开发人员团队时,你可能最终会遇到一些糟糕的候选人,他们可能有资格但没有所需的技能.在这种情况下,你最终会蒙受损失,因为你需要时间和资源来训练他们,因为你希望他们为你的项目提供帮助 ...

  5. git版本管理,有这一篇就够了(后端开发人员必备技能)

    目录 一.定义: 二.两大特点: 三.常用命令: 四.分支管理: 五.git 要点小记: 六.终端如何生成github上的ssh公钥,gitlab通用(在家目录下操作) 七.克隆项目 八.不小心com ...

  6. 业余软件开发_我需要在业余时间编码才能成为一名优秀的开发人员

    业余软件开发 "You need to code in your spare time to be a good developer" - I've been hearing th ...

  7. 技能学习重要的古语_学习方法:最重要的开发人员技能

    技能学习重要的古语 by Preethi Kasireddy 通过Preethi Kasireddy 学习方法:最重要的开发人员技能 (Learning How to Learn: The Most ...

  8. 满屋花网页代码_成为更好的程序猿!2020年给网页开发人员的32条建议

    全文共3315字,预计学习时长10分钟 来源:Pexels 2019年已经过去了,对开发人员来说是充满挑战和机遇的一年.开发人员们学习和掌握了很多--像React.Vue.Angular和Svelte ...

  9. 大三学生简历_不要再问那些没有的高级开发人员了。 开始指导大三学生。

    大三学生简历 by Ryan Bigg 通过瑞安·比格(Ryan Bigg) 不要再问那些没有的高级开发人员了. 开始指导大三学生. (Stop asking senior developers wh ...

最新文章

  1. redis有序集合(Zset)
  2. Redis基础知识点总结
  3. C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)
  4. android ApiDemos学习1 主界面动态ListView显示
  5. 16-djongo中间件学习
  6. 钉钉机器人怎么设置自动回复_项目部署成功后触发钉钉机器人发送消息提醒——入门配置...
  7. 如何下载和安装SQL Server数据库实验助手(DEA)
  8. Bean的自动装配Autowiring
  9. 计算机考试c语言真题及答案,计算机二级c语言考试试题及答案
  10. 【论文笔记】Deep Neural Networks for Object Detection
  11. git commit后,如何撤销commit
  12. 判断拐点的条件_拐点的判断
  13. dll注入之SetWindowsHookEx 键盘消息钩子
  14. [技术杂谈][转载]cuda下载官方通道
  15. WPS2005中实现多行合一(转)
  16. 有关Android优化比较好网络资源
  17. protocol buffer 使用
  18. kso经验记录 -- Global .asax各个方法的使用说明!
  19. 您的首个 App 内购买项目必须以新的 App 版本提交
  20. 【SSL】2128可可摘苹果

热门文章

  1. 浏览器主页被hao123等篡改解决方法
  2. Python小课们是如何赚钱的
  3. 对token(令牌)的理解
  4. 浩鲸科技是外包公司吗_软件外包公司开发软件可靠吗
  5. 通过AI,领略皮影戏艺术 | MixLab人工智能
  6. 【imx6ul】imx6ul上电boot rom启动过程
  7. 米家app扫描不到石头机器人_12月米家剁手清单,第二款冬天必备!
  8. 无法更新运行时文件夹共享状态_关于iPadOS 13.4更新的5件事
  9. 153870-20-3,S-acetyl-PEG3-alcohol羟基可以反应进一步衍生化合物
  10. 看门狗性能软件测试,《看门狗:军团》PC版性能表现分析