面对人生这道程序,该如何编码?-LMLPHP

近来,观察到一些针对少儿的编程培训课开始多起来了,看了下这些培训课的宣传手册,原来编程已经逐步进入基础教育体系,开始纳入高考科目了。

我最早接触计算机和编程已是在初中之后,正式的学习基本到了大学才开始,经过数年学校学习,再加上工作十余年下来,如果说编程对我有什么影响的话,我感觉编程作为一门技能的影响并不大,更大的影响可能是在思维方式上。程序思维不仅被用于解决程序技术问题,也帮助解决了很多人生上的问题与困惑。

思维函数

当我们编写代码解决问题时,做的最多的大概就是把零散的代码逻辑组织成函数,遇到对应的问题就调用相应的函数,再把函数组合起来解决更大的问题。

经验丰富的程序员慢慢都会形成自己的专属函数库,甚至一些半成品的脚手架(框架)代码库,这里面可能还包括一些能自动生产特定场景脚手架代码的工具成品。这些老道的程序员,他们在过去参与了大量的项目,会不断把这些项目中共通的部分提炼出来形成自己的专属函数库,并从一个程序带到另一个程序。

这样的做法其实大大提升了他们编写新程序代码的效率和效果,节省了为每一个新程序付出的劳动。这些已经过测试并应用的成熟函数库意味着不再需要重复测试,更可依靠与信赖,分离了我们有限的注意力,让我们能专注在新应用的新问题上。

这符合人的自然思维模式,我们也会采用别的领域的专业人士的思想来指导和解决问题,并且还能节省时间。并把这些证明能解决问题的思想存储下来成为常规思考方式,或者一些小窍门。但如果你想成为一个高效率的人,其实就需要像程序员一样预先准备好属于自己的专属 “思维函数” 库。

你知道如何使用这个库,在遇到合适的场景时调用对应的函数,帮助你解决问题。思维函数库就是在人生过程中逐渐沉淀下来的底层库或 API,它是需要不断被提炼、完善甚至 Debug 的。而且,你要时时注意在工作或生活的合适场景下去调用它们,再好的库不被调用也是没用的。

有时侯,人生里总会碰到一些问题或困惑,一时想不明白,经过长期的思考或实践,有一天终于想明白了,其实这时就形成了一个新的思维函数,沉淀到你的底层库中,成为了宝贵的经验。

课题应用

人生的大课题无非:生存与发展;但这可能过于抽象,我们需要更具体一点。

其实在人的不同阶段会面临不同的课题,这些课题就像一个个程序题目,需要去编码解决,就会调用到我们的思维函数。以我自己为例,人到中年,当前的人生阶段又面临哪些课题呢?通俗点看,我们习惯于以下两个维度:

  • 事业
  • 家庭

事业

工作十余年来,走上了一条从程序员到架构师,再到技术领导者之路。关于职业生涯的成长课题,其实我已经反复思考了好些年了,甚至因此在机缘合适之下写成了专栏,总结成了程序员的成长法则。

而现阶段面临的无非也是我曾经遇到过的局部最优点和跨越的障碍问题,面临这样的具体处境,现有的思维函数库中其实都没有一个确定的解,它会面临一定的概率机会。而我自己能控制的部分,无非就是巩固现有领域,延伸扩展体系,预期可以提高潜在的概率,但实际并没法量化测量。

绝大部分事业的起点和初期阶段,努力和结果之间会有更大的概率确定性;越走越远后,这样的确定性会逐步降低,慢慢直到不确定性占据了主导。你的函数库一开始能帮你求得一个确定的解,慢慢的,开始只能回答你一个概率,甚至这个概率也是模糊的。

家庭

在没有家庭之前,首先面对的课题自然是如何组建家庭。回顾当年,面对这个课题,其实并没有沉淀出什么特别好的思维函数去得到一个最优解,基本就是靠感觉和运气。有了家庭之后,再有了孩子,大部分人又都会面临另一个主流课题:小孩教育。

关于这个课题,我想很多人在成为父母时都没能想清楚,基本都是参照同龄人或临时看个育儿文章,就用于指导行动的。在我家小孩成长的几年中,我经常会思考这个课题,慢慢提炼出了一些思维函数,核心描述大概是:创造环境优于具体的技能教育。

我的答案中包含的逻辑是,相对个体的内因,环境更是主要因素,因为一个个体很难超脱于所处的或大或小的环境。在一个环境中,大幅偏离环境的均值是低概率的。就像同一个国家同一批的高水平运动员,水平差距可能很小,但不同国家之间可能差距就大了,这就是环境外因带来的差异。

就小孩学习这件事,我不过是在创造力所能及的 “硬件” 和 “软件” 环境,包括自然的,也包括人文的环境,也可能在环境中去塑造榜样,以创造良性竞争。环境水平基本决定了他的基础值,而自身的天赋、兴趣会在此基础上去偏移。

万维钢有篇文章介绍了阿德勒心理学的一个论断叫 “课题分离”:

我和孩子在不同的阶段,都有自己的课题。学习,是孩子的课题,不是我的课题;我的课题是为他的学习提供环境和帮助,让他明白学习的意义,为什么对他重要,而在他过于贪玩时,做出必要的提醒。

所以,小孩教育其实关乎两个分离的课题,很多矛盾的来源在于我们过于迫切的干涉。而人的成长本来就是一件容错性非常高的过程,你费尽心血的干涉、甚至设计的规定动作也许得到的效果微乎其微,反而可能种下了矛盾的因。

...

既然是函数,应用到了具体的课题上,就会有输入和输出;但慢慢你会发现,人生的课题,应用的函数,输入通常是确定的,输出则往往是概率的,不确定的。

人体就像硬件,而人这个硬件的执行效率是会随着年龄慢慢下降的。所以,有时,我在想相对年轻人,中年人最核心的竞争力其实就是这些沉淀下来的思维函数,它们应该是更优质,更有效,更少 Bug 的库代码。

世间那么多人,那么多 “库”,如何测量和评价,如何让别人相信你的 “库” 更好?这又是一个课题了。


写点文字,画点画儿,记录成长瞬间。
微信公众号「瞬息之间」,既然遇见,不如同行。
面对人生这道程序,该如何编码?-LMLPHP

02-11 22:16