财新传媒 财新传媒

阅读:0
听报道

大家看我没事了在公众号上写文章啊,在喜马拉雅上讲世界史啊,其实我这辈子干的最多的事儿不是这些。

 

从二十岁到四十岁,我干的最多的是两件事。

 

第一件是设计电路板。
第二件是编程序。

电路板就不多说了,就说说编程序。

 

我编过底层汇编程序,也用C++编过高层程序。我编程序编的最多的时候,其实是在读研究生的阶段,那一阵有点陷入编程的狂热,热衷于搞各种小程序。

 

我编过扫雷,编过下象棋,编过俄罗斯方块(我的俄罗斯方块会下三角形)等等等等。

 

不过最受欢迎的是一个叫接鼻涕的游戏。

 

程序早就找不到了,但效果大致画出来是这个样子的
 

一排小朋友坐在那儿淌鼻涕。

 

你要用鼠标控制一个痰盂去接鼻涕,接满了你就赢了。如果没接住,鼻涕就会掉到地上,越来越多,最后把地板淹了,你就输了。

 

听上去是不是很无聊啊?

 

——但是,你没接过鼻涕就没有发言权!

 

但是那么多小朋友流鼻涕是随机的,流鼻涕的快慢也是可以调整的,你真接一下就知道,这个很考验人的。

 

有一阵,我们班上的同学,吃完午饭都会跑到我宿舍里,接一把鼻涕。痰盂里盛的不是鼻涕,而是快乐!

 

就算在今天,我偶尔还会想,要不要开发一个“鼻炎少年”的APP?说不定还能上榜呢。

 


我后来还是做了硬件工程师,坐在电脑前面用mentor软件画电路板,并没有当程序员。那我当时为什么会对编程序有这过一阵狂热呢?

 

因为从中我体验到了一种快乐,一种成就感。

 

我并不喜欢编写一个大程序里的小零件,而是偏爱一个被我完全控制的程序。

 

当所有的bug都被排除掉,程序按照你的想法跑起来的时候,那一瞬间有种巨大的满足。玩游戏的快感,和这种感觉是没法比拟的。

 

那种感觉有点像上帝在创造世界,可以随心所欲地构建属于你的天地。就像黑客帝国的设计师想让尼奥挡子弹,尼奥就能挡子弹。你想让小朋友疯狂流鼻涕,他就会疯狂流鼻涕。

 

有人说上帝嗜好数学,我觉得上帝真正嗜好的,应该是编程。

 

我始终相信,编程是一种超级好玩的东西。

 

我也相信编程改变了我的思维方式。

 

我本性其实是更偏向文青方向的。我热爱文字,热爱故事,热爱虚无缥缈的想象,热爱似真似幻的意境。

 

以前是这样,现在还是这样,就像我对阅读的热爱,从五六岁开始一直延续到今天。除了这个,我几乎没有别的爱好。可以说,我是按照文青模式成长起来的。

 

但是,现在稍微和我比较深入接触的人,都会发现我非常重视逻辑,重视可操作性。

 

我最讨厌对一个东西大而化之,笼笼统统地说个没完。我开会的时候最受不了原地打转地说车轱辘话。

 

我本能地会把一个大问题拆解成可以操作的环节。

 

也许这跟我常年学理工科一定关系,但我觉得,编程的那段经历还是起了决定性的作用。

 

一旦你曾经从编程的角度去看待一个问题,你以后就会不由自由有一种编程的思维。

 

 

什么是编程的思维呢?就是把一个大问题拆解成小问题,建立模型,找出规律,然后用符合逻辑的方式解决它。

 

这么说有点抽象。我可以举个例子,比如《西游记》吧。

 

我们看唐僧他们一个妖怪一个妖怪的过,其实他们是有一个循环模型的,你把孙悟空的行为分析一下,就能发现这种编程思维。

 


要是没有这种思维,孙悟空可能就会搞错情况。

 

辛辛苦苦和妖怪苦斗三百回合,救出了唐僧,结果扒了裤子一检查,发现:咦?圣僧已经走了真精、泄了元阳!

 

去天竺只能取《爱经》不能取真经了!


这架不是白打了?

 


我并没有靠编程序过日子,也没有靠鼻炎少年APP来赚钱,但是那段编程的经历对我还是非常重要。

 

它平衡了我身上的感性成分。它让我在保持文青心灵的同时,没有变得愚蠢。

 

它帮助我建立一个解决问题、分析问题的思维模式。

 

建立这种思维以后,看到一个问题后,

 

1、你能够定义这个问题是什么
2、你能够把它拆解成可以解决的一个个子问题
3、建立解决子问题的流程途径
4、检查有没有被遗漏的情况

 

这个过程几乎不用你有意识的去想,它总是会自动跳到你的脑海里。

 

当然,并不是一定要经过编程,才有这种思维。有的人天生就有。但是对大部分人来说,编程确实会训练你快速建立这种思维。

 

这就像一个模拟的战斗训练。它通过让你用编程思维解决一个个具体问题,帮你建立一个看待世界的新角度。

 

你会发现很多人在开会的时候显得低效,在工作的时候显得低能,在解决问题的时候就像老虎啃乌龟一样无处下手,往往都是因为他们没有经受过这种思维训练。

不过我经受这种训练是比较晚的。那没办法。我小时候电脑和编程都是一种神秘的高科技存在。

 

学校机房的电脑总是蒙着白布;

我们总是脱了鞋,在臭烘烘的味道里打开电脑;

每个人总是战战兢兢地敲下人生中的第一个电脑命令:1+1=(回车);

每个人得到的第一个电脑回应也总是 “bad command or file name”。

 

我直到进入大学以后才学了Fortran和C语言,开始真正的编程。现在回想起来,我其实错过了接受这种训练的最佳时期。


因为接受受这种训练的最佳时期就是青少年。

 

不是每个孩子都应该成为程序员,更不需要每个孩子都成为geek,但是每个孩子都多少应该接受一些编程训练。
就像他们学习九九表和汉语拼音一样。

话题:



0

推荐

押沙龙

押沙龙

345篇文章 2小时前更新

电子工程师,青年学者,作品有《晋朝另类历史:出轨的王朝》。

文章