编程可以教给你的 6 个生活习惯

成功人生所需要知道的一切重要事情,你都能从计算机编程中学到。不相信我?那就继续往下看。

当我很小开始编程之时,还只是照搬电脑杂志上前瞻性的文字和符号,以便我和哥哥能够让带有一个双软盘驱动器的旧 Franklin 64 播放一段小巧的数字曲调。当时我们还没有太多生活经验去辨别那些神秘文本。

很多年后,在高中的Pascal课程中,事情看起来开始变得不同。了解if条件语句和for循环,开始引发出沃尔特·惠特曼和罗伯特·弗罗斯特等人都引以为傲的哲学突触联系。好吧,我说的有点夸张,但是这些见解仍然很酷。

是的,我知道,它说起来是一件很令人厌烦的事情——但事实是,在代码中,在while语句、数组、方法、对象等所有这些中,蕴含着很多智慧。事实上,我学到的很多驾驭生活的能力,通常都直接来源于我对多种编程语言的研究。

用流程图简化每件事情

许多程序员在开始编写单行代码之前很久就已经开始使用流程图。这样做的原因是,有时试图一下子编写出整个程序的感觉真的是压倒性的,尤其是当程序要完成一些非常复杂的任务时。

程序员将接受大的甚至巨大的软件项目,然后将它们分解为更好管理的更小的部分——有点像造一辆汽车,需要通过事先做每个所需组件,然后再将它们组合 在一起。每个部分都是一个(或几个)具有特定输入值或行为的集合、然后完成一些输出任务的代码块。在该模块内部,程序员将使用流程图描绘出从输入到输出的 逻辑。

流程图能够帮助你以一种可视化形式跟随这个逻辑,这远比你试图用文字把它写出来或者想当然地狂写代码来解决这一问题更加容易理解。程序员没有找出这 样的“动态”逻辑的原因是,后面的逻辑通常在很大程度上取决于你对如何处理程序中早前的逻辑做出的决定。早期决定错了,你将会把自己编入死胡同。

生活中也是如此。当你正在做一个关于如何去还清债务、买房子,或者如何处理任何其他复杂的生活状况,甚至如何管理工作中 的一个项目的决策时。在你坐下落笔绘制出在这个过程或决策中每一步的创意流程图时,所有那些看似不可逾越的任务都能够得到更好的处理。这将帮助你在每一个 阶段为你所有可能的选择作出决定,或者预测所有可能性然后追踪各种情景。就像编程,了解早期的选择会如何影响后面的结果将帮助你及早地做出更好的决策。

每件事物都有它的位置

每当你开始编写一个脚本或程序时,第一步总是创建你的变量。在编程中,包含有很多不同类型的变量。有支持文本表示的字符串类型,支持非十进制数表示 的整数型,用于处理更大数字的双精度型或其变体,还有数组类型、结构体类型等等。我们的想法是,定义一个适用于手头任务的变量。例如,如果一个函数的输出 是一个人的名字,那么你需要的是一个字符串变量。

当你组织你的生活时也是如此,无论是你的房子还是办公室,你根据要存储事物所需空间的多少来选择空间的大小。小而透明的塑料盒用于盛放干货,一个贴 好标签的香料架盛放香料以节省空间。在办公室,你会将日常工作文档放在办公桌抽屉里,而将敏感的商业文档存放进一个锁柜中。每件物品都有合适的容器,并且 都有它适当的位置——这是组织良好生活的座右铭。

重用程序模块以节省时间

任何一个优秀的程序员最终都知道特定的代码块(或称为“函数”)可以在多个程序中重用。例如,一个将华氏温度转换成摄氏温度的函数,它可以用于你创 建的任何需要完成这一任务的程序中。这个函数是一个简单的模块,它以华氏温度为输入,然后输出对应的摄氏温度。这个函数可以包括一定行的代码,然而当你本 可以将它们保存为一个程序模块,然后再直接将其嵌入到未来任何需要它的程序中去时,你为什么非要为所编写的每一个程序都重建这些代码呢?

亨利·福特关于他著名的T型车曾经说过,“任何顾客都可以拥有一辆他想要的任意颜色的汽车,只要它是黑色的。”

原因是福特已经想出了如何组装汽车,并且如果每制造一辆新车都能够重用相同的设备(和相同的颜色漆)而无需重现该过程会让它们更快地上市。这催生了 流水作业,它彻底改变了汽车工业。同样的方式,你可以将这一原则应用到你生活中需要重复性工作的各个领域。自动化是成功的关键,所以如果你能找到方法来自 动化工作中需要重复完成的任务,——你就可以使你的一天更有效率以节省时间。

首先,阅读我们的网站自动化指导。

记录每一件事

有时,对于一个程序员来说,只是飞速编写代码而不记录单独的事情是非常诱人的。之所以诱人是因为,任何时候你都准确地知道你想要程序做什么以及你想 要怎样去实现它。记录一个程序需要时间。你必须描述每一步怎样做以及为什么这样做。这看似毫无意义,但几个月后当你决定重用这段代码或为另一用途修改它 时,这就体现了奋力挣扎想起你的每一行代码到底是在做什么,与迅速回退去了解你逻辑背后的整个意图之间的区别。

这种细致的文档在生活中的每个领域都有帮助,从跟踪生日和纪念日,到保持日常商务交易日志以及进行这些交易的原因。随着很多决策像风中的树叶一样来 来去去,日常生活会变成每一个模糊的日子。只依靠记忆去记住你为什么出席某些会议或为什么做出某些购买的做法是幼稚且低效的。每日日记或日志对解放你的思 想去做更重要的事情有很大帮助。

始终给自己留一条退路

一个业余程序员最常犯的错误之一是无限循环。这是一种打破循环所需的条件从未发生的情况,程序会留在循环里并且永远不会结束——这占用100%的电脑CPU资源,几乎相当于锁定了电脑,直至你终止这一过程。

业余程序员需要从中学习的教训是,每当你创建一个需要消耗大量CPU资源的循环来执行某种任务时,引入各种各样的跳出机制是非常重要的。换句话说, 相比基于一个判断你的计算结果是否超过一定值的While循环(在某些情况下它可能永远不会达到),引入一个非常基本的循环计数然后添加一个次要终止条件 的方法是更可取的。如果循环次数超过某个极大的数值,循环必须结束,而如果在一切正常的情况下,这个条件应该是永远不可能达到的。

这会如何应用到现实生活中呢?它恰恰说明,即使你认为已经有了完美的计划,事情仍然可能出错。一个例子可能是,计划了为期一周的在最美丽、放松的热 带天堂的家庭度假,不料竟会因为下了一整周的雨而结束它。生活中“退路”的理念就是,要考虑到“最坏情况”,然后想出如果它真的发生了你要如何避免或者如 何尽量去利用好它。

生活并不总是可以预测的,即使一些你认为根本不可能会出错的最周密的计划,也可以很容易地被破坏。为最糟的意外事件做好计划,这将能确保当意想不到的事情发生时你不会以彻底失败而告终。

完成任务时要释放内存

从编程中得出的最后一个生活经验是,及时清理自己。在一个程序中,你将需要开放一个流到一个输出文件,创建一个充满数据点的大数组,以及其他一些占 用计算机内存和资源的事情。一个干净的程序,是能够及时关闭输出流并清空已经用完的数组的程序。这里的理念是,要避免写出一个带有被称为内存泄漏的常见问 题的应用程序。

例如,在一个简单的VB应用程序中,你会这样删除一个数组:

Erase ArrayDin

或像下面这样关闭一个输出文件流:
FileClose(1)

这听起来像是你在更年轻的时候可能听到妈妈说过的一些事情,对吗?打扫你的房间,把你的衣服收好,洗净你的碗。然而,更进一步,收拾好你完成手头任 务所使用的工具,不仅会使你的家和工作区整洁,它还能够留下足够的空间让你更快地完成下一个项目。把东西随意乱放只会浪费空间,而且当你之后找不到所需要 的东西时还会浪费你的时间。

底线

事实上,你能从编程艺术中学到的生活经验并不只有这六个,还有更多。当涉及到组织、规划、制定策略和节约资源时,计算机程序员已经理解了它。你能够 从花费时间学习一门编程语言的过程中学到很多东西,而不仅仅是编程本身。事实上,这就是为什么每个孩子在学校都至少应该学会一种编程语言,因为一旦你抓住 了它的诀窍,那么它很快会变得明显,你可以在你生活的其他领域使用这些诀窍。

你从编程的世界中发现了哪些其他类似的生活经验呢?

图片来源:本文所有图片均来源于Shutterstock图片库。

原文链接: Ryan Dube 翻译: 伯乐在线 - yixingqingkong

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-07-29 19:04:28

编程可以教给你的 6 个生活习惯的相关文章

科技正在改变人们的工作方式和生活习惯

科技正在改变人们的工作方式和生活习惯,颠覆着传统社会的一切. 十年前,或许没有人知道在一年后市场上会出现一个叫iphone的通信产品,更没有人知道在接下来的几年时间里,这个产品会颠覆了大部分人对 手机 .对互联网的认知,甚至这个产品还开创了一个基于移动端的商业生态,也就是大家今天见到的移动互联网生态. 五年前,或许也没有人知道在五年后的今天中国电商会如此发达,你甚至都不用出门,上网就可以购买生活所需的柴米油盐,而且数小时内就能送到你的手中.用不了几年这个过程还会更短,真正做到急需即得,这就是今天

骑车 or 开车,一个钥匙架想通过暗示改变你的生活习惯

     上图中的钥匙架叫 Keymoment ,取"关键时刻"和"钥匙时刻"双关含义.它能做的事情算不上"智能",却有着更阴暗的目的:改变你的生活习惯.它是这么工作的: 当你拿走自行车钥匙,你就拿走了,非常好:当你拿走汽车钥匙,自行车钥匙会掉地上,这时候十有八九你会捡自行车钥匙,然后你手上就有了两把钥匙,此时或许你会犹豫一下要不要骑自行车去上班. 懂了吗.[视频] Keymoment 凭空给生活多了一次选择的机会,情况就有可能发生扭转. 它的开

创业 也许只是你的生活习惯

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 这个世界有太多的问题.太多的不完美.正是这些问题的存在,让我们的生活不够美好.而人们又很愿意为了改善生活付钱,正如你会为了购买热水器而付钱,一年后又会为了维修漏水的热水器付钱一样.于是,理论上,我们能看到的任何一个问题都是一个创业的机会.创业的本质也就是不断解决人们生活中的问题. 如果一个人平时很喜欢去解决生活中的各种问题,那么,这个人也应该

饮食不当毁身体!男性不良生活习惯大公开

男人总是会有一些长期形成的不良习惯,有些人觉得这些不良习惯没什么.但事实真是这样么?这些不良习惯究竟会给我们的身体带来哪些危害呢? 不爱喝水 大部分男人对喝水都没多大兴趣,甚至不觉得它重要,但其实这样很容易造成身体上的重大伤害.我们体内新陈代谢的废物主要是由肝脏和肾脏处理,仅占人体体重1%的肾脏却要接受全身1/4的心输出量,每分钟会有1至2公升的血液经过肾脏,因此,肾脏接受的废物远远多于其他脏腑器官.肾脏最重要的是负责调解人体内水分和电解质的平衡,代谢生理活动所产生的废物,并排于尿中,但在其进行

海尔3D+热水器搭配节能生活习惯让消费者夏天洗澡舒心、省钱

"现在都实行阶梯电价,晚上用电便宜,洗澡最好在晚上洗,洗澡之前再加热,不要一直通电."近日, 网友"洋洋"在海尔热水器主办的微博互动活动中晒出了自己独创的节能妙招,征服了众多网友."洋洋"说,自己独创的夜间加热搭配大热水量热水器的妙招在去年夏天省了500多元的电费.通过采访记者了解到,"洋洋"姓孙,是一位全职太太,住在滨海城市青岛.长期操持家务让她养成了精打细算的习惯.孙女士告诉记者,以前他们家用的是一款老式热水器,每年夏天水

[转贴]计算机编程名言精选

计算机 4.跟计算机工作酷就酷在这里,它们不会生气,能记住所有东西,还有,它们不会喝光你的啤酒.(保罗利里,吉他手) 5.如果汽车能赶上计算机的发展周期的话,一辆今天的劳斯莱斯仅值100美元,每加仑要跑100万英里,每年还得爆炸一次,把里面的人杀个精光.(Robert X. Cringely,技术作家) 计算机智能 8.计算机会不会思考这个问题就像问潜水艇会不会游泳一样.(Edsger W. Dijkstra,图灵奖获得者) 硬件 12.硬件:计算机系统中可被踢的部分.(Jeff Pesis)

yui3的AOP(面向切面编程)和OOP(面向对象编程)

  这篇文章主要介绍了yui3的AOP(面向切面编程)和OOP(面向对象编程),需要的朋友可以参考下 首先请把手放胸前成沉思状:我上了生活,还是被生活上了自己? 没想出答案把,恩,可以读下文了.从语义角度讲,同一事物的不同表述可以反映人的主观视角的不同,从哲学角度将,世界观影响方法论,我们看事物的角度不同,有时会得出截然相悖的结论,从而会影响我们的做事方式和行为准则,现实生活如此,在丰富多彩的编程语言中更是如此,编程模式充满了对现实世界的各种模拟,包括是面向过程,面向对象,还有面向切面.我们大概

yui3的AOP(面向切面编程)和OOP(面向对象编程)_YUI.Ext相关

首先请把手放胸前成沉思状:我上了生活,还是被生活上了自己? 没想出答案把,恩,可以读下文了.从语义角度讲,同一事物的不同表述可以反映人的主观视角的不同,从哲学角度将,世界观影响方法论,我们看事物的角度不同,有时会得出截然相悖的结论,从而会影响我们的做事方式和行为准则,现实生活如此,在丰富多彩的编程语言中更是如此,编程模式充满了对现实世界的各种模拟,包括是面向过程,面向对象,还有面向切面.我们大概已经非常熟悉面向过程和面向对象,切面的英文是Aspects(有时译作方面,我感觉用切面更能贴切的表达A

4位神级大牛说“别神化程序员了,编程不需要天赋和激情!”

以往从来没有一种技能被神化到这样的高度: 你不仅得有天赋,还得具备激情,才能成为一名优秀的程序员. 好像那些写代码的人是早就决定干这一行似的,"当他们还是孩子的时候,他们就打算将来去写代码".如果你缺少这两个因素之一,那么你要么是一个骗子,要么不会走得太远,不论是哪种,其实都是因为你不适合编程的缘故.这种根深蒂固的成见不仅是完全错误的,而且还是有害的--但是许多成功的程序员都赞同这个观点. ◆ ◆ ◆ Jacob Kaplan-Moss (Django的创建者) 在这篇描述中,Jaco