今天是1024程序员节,我们已经历经了尽三年的疫情,健康是我们最应该关注的事情,在这个特别的日子里,希望程序员们都能更加爱惜自己的身体,少加班,多锻炼。
健身不仅是保持健康体魄的关键要素之一,也是灵活的、具有创造性的脑力活动的基础。——约翰·肯尼迪
你可曾看到过这样一本书,告诉你在软件开发行业构建自己声望的步骤,教你如何在身体上、心理上和精神上更强大、更健康。
软技能:代码之外的生存指南(第2版)
我该如何激励你健身呢?让我想想……这个理由怎么样:心脏病是全球头号杀手,中风紧随其后,而健身能让你活得更长久?或者试试这个:研究证明,锻炼能让你更具创造性,能够激发你的思维?这些理由太虚?好吧,我已经知道答案了。谁不想自己外形迷人呢,至少我知道我肯定想。举重和减掉一些脂肪可以让你更有魅力,并且给你更多机会扩大你的……遗产。
而且,我们要面对现实——大部分软件开发人员每天都伏案工作很长时间,一坐就是一整天。作为软件开发人员,我们更应该坚信,学习如何让身体保持健壮和健康能让我们获益良多,因为我们的工作往往会把我们推到另一个方向上。
作为一名软件开发人员,你可能很忙。你可能要操心中断的构建,还要有需要修复的故障。看起来你一直有各种理由将锻炼身体和改善饮食推到以后。唯一的问题是,“以后”永远不曾到来。
如果你想减肥成功,成为最健美的程序员,或者你只是想保持健康,那你必须学会如何激励自己,如何持久保持动力。本章内容就是关于如何避免让健身计划只停留于想的阶段,将计划落实到行动上,并且持之以恒地坚持下去。
什么能激励你
我们可以被不同的东西激励。能激励你的东西未必能激励我,反之亦然。所以,花些时间去思考一下哪些东西可以最大限度地激发你的动力,这非常重要。是什么让你从睡梦中醒来开始新的一天?相反,又是什么让你逃之夭夭躲藏起来?
如果你能为自己找到一个能够激励你实现健身目标的因素,你就可以利用它来帮助自己离开椅子,立刻投入健身运动中。如果我让你去商店拿一些东西,你可能会无动于衷。但是,如果我要你去商店拿1000美元,可能我话音未落你已经跳上车子开出老远了。正确的激励因素会产生大不相同的效应。
过早奖励自己
如果你想扼杀自己的动力,那么你尽可以犯这样的错误:在做好工作之前就因为“做好工作”而奖励自己。
就在上周,我为一位预支给我费用的客户做了一些工作。他们在我实际开始工作之前,预支给我大约24小时工作的费用。通常情况下,我会积极努力地在这一周之内为该客户完成相当于24小时计费时间的工作量,但是这一次我感到毫无动力。为什么呢?
这是因为我的银行账户里已经打入了一大笔钱。我在实际开始工作之前就收到了报酬,因此我并没有被激发出去努力工作的动力。
同样的事情可能也会发生在你的身上。我经常看到这一幕:给你自己买一双价格昂贵的优质跑鞋或者一台崭新的跑步机来激励自己开始锻炼计划。然而,你在憧憬着得到一台价值400美元的新搅拌机能够激励自己吃得更健康的时候,结果却恰恰相反。因为你已经得到了奖励,所以你的动力已经一去不复返了。在自己努力争取之前就急于给自己实际的奖励,这实际上会让你失去动力。
相反,你应该告诉自己,如果能坚持跑步3个月,就会奖励自己一台新跑步机和一双新跑鞋;你应该告诉自己,如果能保证健康饮食整整一个星期,就可以去全食(Whole Foods)买上一大堆健康食品。总之,要尽量保证你只有努力做到之后才能获得奖励,这样你才可能会更积极地去实现自己的目标。
保持动力的做法
即使你可能已经想出了最大的激励因素让自己立刻开始转变成一个全新的、健康的你,但是久而久之激励很可能最终会失去效力——事实上,关于这一点我知道得很清楚。我失去动力的次数已经多到数不清了,如果和开始节食又放弃的人聊天,你也会发现同样的问题。你需要找出其他方式来解决自己的动力问题。
在各个地方张贴图片,提醒你自己想变成的样子,这是保持动力的一种好方法。这些图片可以帮你追踪并专注于自己的目标。这样,当你下一次盯着一块巧克力蛋糕看的时候,阿诺德·施瓦辛格就会盯着你的脸说:“难道你真的要吃那块蛋糕吗?”
制作进度图表并且不断提醒自己你已经走了多远也是有帮助的。
另一种强大的保持动力的方法是游戏化。游戏化背后的想法很简单——把不喜欢做的事情变成游戏。当前有相当多的健身应用,可以帮助你像打游戏一样锻炼身体、养成健康的生活习惯。
游戏化的健身应用
〓● Habitica
〓● Super Better
〓● Fitocracy
〓● Zombies, Run!
这些应用还可以帮你找到举重或者跑步的同伴,甚至能让你开始新的节食计划,或者向朋友发起挑战。与他人交流,分享自己的经验,不论好坏,都能让你的健身之旅更乐趣无穷,并能让你持久保持动力。我发现,当我有一个举重同伴的时候我总是更勤快地跑去健身房。
下面列出了另外一些能够帮你坚持健身计划的激励因素。
〓● 听有声书:我跑步或举重的时候会一直听着有声书或者播客,我发现这件事值得我每天都期待。
〓● 在跑步机上看电视:如果你只允许自己在跑步机上跑步时才看电视,你可能会有更大的动力去跑步。
〓● 外出跑步:如果你喜欢户外活动,那么外出跑步对你而言可以是一个巨大的动力。
〓● 离开孩子一段时间:我们都需要给自己一点儿休息时间,许多健身房有看护服务,能在你锻炼的时候照看你的孩子。
程序员节最有营养的书单
1、重构:改善既有代码的设计(第2版 平装版)
本书是经典著作《重构》出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。
本书适合软件开发人员、项目管理人员等阅读,也可作为高等院校计算机及相关专业师生的参考读物。
2、代码整洁之道
“阅读这本书有两种原因:第一,你是个程序员;第二,你想成为更好的程序员。很好,IT行业需要更好的程序员!”——罗伯特·C. 马丁(Robert C. Martin)
尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。但是,这种情况并非无法避免。
本书提出一种观点:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。
3、计算之魂 (《数学之美》《浪潮之巅》等畅销书作者吴军博士新作)
对计算机科学的掌握程度,决定了一个计算机行业从业者能走多远。在本书中,作者将人文历史与计算机科学相结合,通过一些具体的例题,分10个主题系统地讲解了计算机科学的精髓。这些例题是作者面试求职者时用到的考题,或是头部计算机公司和金融企业的面试题。
作者在书中结合自己对计算机工程师的五级分级标准,详细讲解了每类题目不同层次的解决方法、不同水平的人大约能思考到什么样的深度,深度阐述题目背后的计算机科学精髓。通过对比优化解题思路,读者不仅可以衡量自己的水平,在职业的发展道路上走得更快,更可以深刻理解并掌握计算机科学和计算思维,逐渐把握计算机科学这门艺术,获得重复性成功。
对于所有有志于了解或学习科技,特别是计算机科学的人来讲,本书不仅有助于了解计算机科学,更有助于了解 IT 产业的技术特点、培养一些特殊的思维方式、掌握信息时代特殊的做事方法,通过具体的例子,从“术”的层面获得“道”的层面的提升。
4、UNIX传奇:历史与回忆
自1969年在贝尔实验室的阁楼上诞生以来,Unix操作系统的发展远远超出其创造者们的想象。它带动了许多创新软件的开发,影响了无数程序员,改变了整个计算机技术的发展轨迹。
本书不但书写Unix的历史,而且记录作者的回忆,一探Unix的起源,试图解释什么是Unix,Unix是如何产生的,以及Unix为何如此重要。除此之外,本书以轻松的口吻讲述了一群在贝尔实验室工作的发明天才的有趣往事,本书中每一个故事都是鲜为人知却又值得传播的宝贵资源。
本书适合对计算机或相关历史感兴趣的人阅读。读者不需要有太多的专业技术背景,就可以欣赏Unix背后的思想,了解它的重要性。
5、程序员软技能
技术人的软技能实用入门指南,20余年经验总结程序员职业素养软技能,涵盖沟通能力、团队合作能力、冲突处理能力、领导力等14项软技能,帮助掌握技术职业生涯!
本书是专为技术人员编写的关于职业生涯的综合指南。首先,本书介绍了如何定义你的人生——不管你想要的是高薪,是良好的工作/生活平衡,还是其他,只有知道要去哪里,你才能开启成功之旅。采纳本书提出的职业规划、个人品牌营销、时间管理、远程工作等适应性建议,你将事半功倍。其次,本书深入探讨了技术专家应该重视的书面/ 口头沟通、冲突解决和团队合作等技能,从而帮助你在日常磨炼中走上正轨。此外,本书还会指导你掌握批判性思维方式,以及理解企业的运作方式和如何成为更好的决策者,同时指导你帮助他人并为任何事情做好准备。最后,本书介绍了技术人员容易忽视的财务知识,帮助你理解业务架构,并就求职策略给出了中肯的建议。
6、拥抱开源(第2版)
本书深入阐释了自由软件如何成为开源软件以及如何销售开源软件。本书从开源如何彻底改变软件的编写方式、合作方式、沟通方式、组织结构以及商业价值等多个方向展开论述。内容涉及开源所创造的机会和随之而来的挑战,公司如何创造商业模式来成功地销售“自由”软件,如何从创建社区到销售商业产品应用开源开发模式,审视与开源项目和产品管理及许可相关的重要问题,以及开源原则如何更广泛地适用于DevOps和其他组织实践。
本书不仅适合对开源软件感兴趣的人员、IT从业人员以及致力于开源健康发展的人员阅读参考,而且适合作为高等院校相关专业的开源教育通识读物。