# IT 工程师养生指南

This article is part of an **Work Life Balance** tutorial series. Make sure to check out my other articles as well:

* [IT 工程师养生指南](https://riboseyim.github.io/2017/04/21/Health/)
* [医学常识| NIH 情绪健康检查单](https://riboseyim.github.io/2018/01/22/Health-Emotional/)

### 为什么会产生倦怠？

> “burnout is caused when you repeatedly make large amounts of sacrifice and or effort into high-risk problems that fail. ”

相比其他领域的专业人士，程序员似乎更经常出现倦怠（Burnout ）。目前没有明确的证据能够描述这种情况, 大致有以下四个主要原因：

第一，物理的（physical）。程序员每天坐在办公桌前的工作方式是不健康的, 它会让你感到更加昏昏欲睡。嗜睡也可能导致其他不那么好的习惯, 如白天吃零食, 沉迷兴奋剂, 熬夜等，导致身体损伤。 第二，编程工作是认知高度集中和紧张的工作, 心理疲劳也可能会造成精神损伤。 第三，也可能是因为你正在做的工作, 事实上,耗费心力而且吃力不讨好。解决这一问题的唯一办法就是在不考虑金钱为因素的情况下, 花点时间对你想从事的工作做一些反省。 第四，当你作出大量牺牲,或努力解决高风险的问题, 但是反复失败时就会造成倦怠。在编程过程中往往伴随着运行失败，你的大脑容易将工作和失败联系在一起。

在工作中如何维持积极性，保持长久的生产力？下面介绍一些可行的技巧, 加以练习养成习惯后能够有效地延缓甚至消除倦怠。

### 基本套餐

> It’s a simple but effective strategy for staying productive as a programmer while at the same getting some necessary break between the tasks.

* **吃好。** 从小的方面开始, 比如喝苏打水;将低碳水化合物和蔬菜纳入饮食；少量多餐, 不要暴饮暴食。
* **睡好。** 包括获得足够良好的睡眠。你有许多事情可以做, 例如创造一个更好的睡眠环境。一个秘诀是减少蓝光照射 — 可能会让你晚上熬夜。推荐软件：[Flux](https://justgetflux.com) 能随着一天的时间变化自动调整你电脑显示器屏幕的色温，过滤对人眼伤害最大的蓝光，从而尽可能减少屏幕对眼睛所带来的疲劳感并帮助提高睡眠质量。相应地，**白天要多晒太阳**。诱发睡眠的最重要的因素之一是你的身体自然分泌一种叫做褪黑素（Melatonin）的荷尔蒙。褪黑素是由你大脑中的松果体（pineal gland，位于脊椎动物脑中的小内分泌腺体，人体最小的器官）产生的, 它发出信号来调节身体中的睡眠-唤醒周期。阳光提供了天然的光谱, 我们需要配合褪黑素的生产周期。白天多点光线, 晚上少点光线, 一个神奇的睡眠公式。
* **不要过度劳累。** 许多研究成果一再发现, 在这种情况下, 生产率(此处特指产出)在 4 个小时的专注工作之后就开始急剧下降。需要高度集中注意力的工作, 例如如长期的编程, 每天持续工作很长时间是不可能的。
* **番茄工作法**（Pomodoro Technique，一种时间管理法方法，该方法使用一个定时器来分割出一个一般为25分钟的工作时间和5分钟的休息时间，而那些时间段被称为 pomodori，为意大利语单词 pomodoro “番茄” 的复数）。理想情况下, 休息时远离计算机，进行轻快的散步,做一些俯卧撑等。
* **Stay active, keep moving.** 很多人对运动（exercise）有一种误解,认为锻炼必须包括去健身房等等。在现实中有很多保持活跃的方法，例如选择楼梯而不是电梯; 把车停在购物中心的街角停车点; 骑车去工作, 找到其他的方法将运动融入到你的日常生活中会让你感觉更好, 而不是整天卡在电脑前。

### 程序员增强套餐

> 戚继光：有精器而无精兵以用之，是谓徒费；有精兵而无精器以助之，是谓徒强。

* **尝试, 游戏, 学习, 实验原型（Experiment, play, learn, prototype）。** 短期来看，只做你最擅长的事是高效和有利可图的。例如, 继续以重复的方式创建网站,。然而, 随着时间的推移, 它会变得无聊以及耗费精神。从工程的角度看，编程是使用行之有效的技术来生产软件的一个环节。同时它也关于乐趣, 实验和尝试新的想法。你可以特意将 20% 的时间用来游手好闲 — 这是避免倦怠的最有效的策略之一。游手好闲包括尝试新的类库, 创建一些有趣而不纯粹为了完成工作任务的东西, 或者从你的舒适区走出来、投资时间学习的东西, 例如函数式编程。
* **参加聚会、会议、订阅行业资讯。** 编程会变得孤独。与其他开发者见面, 或者倾听他们在播客上的经验, 使你不仅仅只关注眼前的状况, 而是更关心你的工作。没有人喜欢抱怨, 但分享或倾听，与其他程序员交流, 例如倾听别人是如何克服困难的有助于舒缓情绪, 激励信心。
* **创造一个良好的工作环境并且不要吝啬投资你的工具(Invest in a good working environment and don’t be cheap on your tools ) 。** 一台高配置的 PC 将编译得更快而不是让你将时间浪费在等待。请确保您有一个舒适的椅子, 桌子和良好设置的显示器。如果你在一个嘈杂的环境中工作, 可以投资高质量的耳机隔绝噪音使你保持安静。
* **Master your tools.** 虽然有好的工具可以使编程过程更愉快, 熟练地掌握它们提高工作效率更加令人欣慰。了解工具的所有快捷方式, 即编辑器、OS、命令行, 每天都可以节省大量时间。如果能够将日常任务自动化，则可以让你更快地取得进步, 更进一步消除工作倦怠。
* **休息，保持对其它事物的激情。** 除了编程之外, 还有许多有趣的活动。例如: 体育、文化活动、性、阅读、乐高、社交、钓鱼、烘焙咖啡、摄影等。如果你一直只做一件事, 比如编程, 总有一天你会不可避免地醒来 — 因为没有生命而憎恨自己。此外, 做一些看似与你的 "实际" 工作无关的事情, 可能会重新点燃你的激情, 激发新的想法, 就像理查德·费曼（著名物理学家，诺贝尔奖得主）在研究板块活动时一样。
* **考虑切换工作内容或启动不同的项目。** 如果你当前被困在做无趣的、耗费精神工作上, 比如整天调整现有的代码库。或者你所从事的项目可能与你的兴趣或价值观不符。此外, 如果你发现编码不再能引起你的兴趣, 不妨看看其它相关的领域, 如信息系统架构（Information Architecture）, 系统管理（Systems Administration）等,可能会重新激发你的激情。
* **完成例行任务**, 将那些你知道可以完成的内容纳入每日工作。诸如完成代码测试、写注释、改进变量命名等, 完成这些活动将释放内啡肽（神经递质，产生类似于吗啡一样的止痛效果和欣快感）。这是一个简短但非常有价值的提示, 这一过程使我们的大脑对我们的工作感到更加积极，非常有助于恢复工作能力。

## 扩展阅读

* [数据可视化（一）思维利器 OmniGraffle 绘图指南 ](https://riboseyim.github.io/2017/09/15/Visualization-OmniGraffle/)
* [数据可视化（三）基于 Graphviz 实现程序化绘图](https://riboseyim.github.io/2017/09/15/Visualization-Graphviz/)
* [数据可视化（五）基于网络爬虫制作可视化图表](https://riboseyim.github.io/2017/05/12/Visualization-Charts/)
* [最佳写作实践：从Evernote到Ulysses](http://www.jianshu.com/p/7c453ce42150)
* [我的写作工具链](https://riboseyim.github.io/2017/06/03/WriterToolChain/)
* [Kanban 看板管理实践精要](https://riboseyim.github.io/2017/08/06/TeamWork-Kanban/)
* [嗑药简史（四）：咖啡上瘾，喝还是不喝？](https://riboseyim.github.io/2018/05/14/Addiction-Decision-Coffee/)
