# 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/)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://riboseyim.gitbook.io/perf/health.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
