未经审视的人生不值得过。--苏格拉底
定义如何算是“好人”太困难,但如何定义一个好的程序倒是可以聊一聊,比如这篇论文 《What make a 'good' program》 ,那么就按照论文里的前三条来说说程序人生:
CORRECTNESS
正确性是好程序的最重要的要素。谈程序的正确性不止是发布的程序满足了某个标准经过了测试或者验收或者获取了对应的收益,而是指是否真正的满足了需求,是否达到了一开始设定的目标,实现了软件既定的价值:正确性让软件拥有了存在的意义,人亦如此。
但对人而言,这是最难的也是最简单的:过正确的生活。这是人人一生都在追寻的答案,又是人人终其一生也无法祈得的回答。
遑论我们芸芸小人物,纵使一世伟人谁又能纵论自己过了“正确”的人生。盖棺定论,一般人要死了就可以定论,握定国家民族的伟人更要盖棺十年百年后才有定论。
放开这个问题引起的心病,不再上下求索,而能时时以求,兴许才是这个问题的答案。所谓三十而立,四十不惑,这顺序不能反。
EFFICIENCY
高效。一切都有成本,任何不考虑的限定条件的事情都是耍流氓。写程序当然要考虑执行的效率,尤其是程序的原始时代,那些上古大神们(在解决定义相对清晰的基础性问题)最关注的因素就是效率,于是才留下了一串串人名命名的算法,为计算机科学的大厦奠定了基础。
但之于人生,效率也应该是最无需赘言的一项,翻开AppStore看有多少效率工具,书店里有多少高效能人士之类的畅销书。还有多少人直接就在做教人如何成功的生意--如何低投入高产出高效的实现它。
其利其弊已是太多,被讨论的也太多。编程时说不要过早优化,也是日常所谓欲速则不达吧:效率是乘法,有一步得了零分,就都是零了。
UNDERSTANDABILITY AND MAINTAINABILITY
可理解可维护:
程序是写给人看的,只是机器凑巧也可以执行。
这是最有意思的一条,比如最直观的我们做个假设:如果所有程序都只由一个人写并且只会运行一次,那么就不应存在这条么?我想答案是否定的。显而易见的一个原因是那一个作者自己也是读者。
另一个角度看这个所谓“只要没人会再看再执行就可以不考虑可读和可维护性”,其实是对何为好程序这个命题的错误解读,一个可评价的东西不能是没有痕迹的、没有反作用的、无法考虑对他本身进行观察的,套一下“观察者悖论”:不能作用于观察者的事物不能存在。所以当我们讨论的问题是“好”是什么的时候,可理解就是必须的,并不是有前提的。否则,就是要将命题本身变为非命题了。
说完程序,下面说之于人:因为人不能独活,因为唯一不变的是变化。
人就要:能被其他人理解,能够修正自己,改变自己。
或许我们有很多孤独而伟大的存在的人类个体的例子,但不论梵高还是伽罗华,其实他们只是对话的不是活人,他们与书本和图画对话,那是与过往的人类对话。正如一般的书虫、Nerd、有怪癖的科学家,他们这种对话的乐趣是不为外人道也的。而梵高、伽罗华的悲剧也在于没能让自己也被现世之人所理解。
让自己是可变的,是“可维护的”听起来并不讨巧。因为媒体宣传更多的往往是那些幸运儿,那些不忘初心也好、高瞻远瞩领先时代也好,最终得偿所愿或绝地逆转的英雄。在心理学中一个固执的人也往往是会被认为是更容易留下个人魅力的。因这确实是为了迎合了我们人类基因里害怕改变的心理,而媒体只是利用它辅助自己的商业运营--让大家意淫起来舒服点吧— — 兴许我不用改变什么就要变成那些英雄人物呢?
比起媒体宣传的不忘初心方得始终,只是执拗而陷于疯狂恐怕才是更应该提防的,对,只是执拗而已无理智没道理的执拗而已,不论是心理放不下面子放不下还是愚蠢到放不下,哪怕事实砸在头上砸出个包还拒绝改变。
我想我们叫“中国屈辱的近代史”,已经给了太多悲剧的例子。我们身边的家人朋友还有读者自己,仔细捋一捋,兴许也有不少个例。
另外就是如同开始所说的当你换个视角审视自己的人生,自己是自己人生这份代码的读者的时候,有一个清晰的不自我矛盾的三观,可以为事物的价值在心里有越来越清楚的排序以应对艰难的抉择取舍,可以回答那些当人不够幸运就会遇到的问题,甚至仅仅是有更多机会与其他人深入的交流这些问题,都是一种莫大的幸福吧。
而保持一种开放的心态,让自己时时常新,更是一种珍稀的能力了,尤其在年龄越来越长之后。
你的时间是你最宝贵的东西,你本身是外界唯一能留给你的痕迹:不能改变你本身的书不值得读,不能改变你本身的工作不值得做。