我有时会突然意识过来, 写程序这件事情给我带来了深远的影响。

利益相关: 以下皆为本人自身想法, 与广大的可爱的程序员们不一定有关。

苏·格拉底曾经说过: “一个人要先不断地剖析自己, 再不断地剖析自己, 最后不断地剖析自己, 他才是个伟大的人。”

苏·格拉底: 我不是, 我没有, 别瞎说啊。(否认三连)

苏格拉底: 别乱在外国人名中间打点。

在此,我就记录一下平常生活中的小事, 这样说不定可以窥斑见豹。

0

跟计算机打交道久了, 非常清楚程序都是按照流程来的。 所有所谓的 Bug 都是某个地方的计算机逻辑, 没有跟人类逻辑匹配上所导致的。 所以现在修 Bug 的时候, 虽然也会像以前一样高呼着“这不科学”, 但其实我心里知道, 这很科学, 而且外国古人不是说嘛: Where there's a bug, there's a fix.

人类也是一样的。

我们做的所有决定, 所有结果, 都是由一个决策树生成的, 这棵树或深或浅。

我今天心情好, 突然坐到奶茶店里喝了一杯奶茶。 在旁边分手的小情侣, 用苹果电脑办公的小哥, 几个叽叽喳喳的大妈, 都像是钱钟书说的一样。 不过都是电台换台, 东一句西一句听得零碎, 但他们都是有自己完整的故事的。

所以看事情, 知道了来龙去脉以后, 我总忍不住感慨一句: 这很科学

1

乌托邦世界里, 大家都很科学。 然而实际生活中, 总会有取舍。

比如 Vim vs Emacs, PC vs 主机, 青轴 vs 红轴 等等话题, 现世中的我们总要做出选择。 而事实告诉我, 因为某一时刻, 我们的用户习惯、 用户量、 团队氛围、 外部环境总是固定的, 所以虽然没有最优解, 但我们一定可以选择更优解

比如阿里编码规范里写到的超过三个表禁止 join, 我非常理解这里的道理, 但是我自己做项目的时候恕做不到。 或者说按网上一部分的说法, 好的男朋友要清楚包括口红色号在内的很多信息, 那我更愿意尊重独立个体, 毕竟想了解dota新版本具体改动内容的人也是少数…

最开始的 Vim vs Emacs 这个经典话题来举例子, 在两边都用过以后, 的确知道为什么说一个是编辑器之神,一个是神用的编辑器了。 但具体到每个人的每个编辑环境, 总会选择一种搭配方式, 让他陷入最舒服的境地中。

01

万物科学最优解 这两点叠加起来, 有一个结论就是永远要保持开放性的心态。 假如我们秉持着 世界上,15岁之前出现的都是已有的平凡事物,15到30岁出现的都是改变世界的发明,30岁以后出现的都是什么垃圾玩意啊。 这样的心态, 那我们就会早早地陷入 local optima.

举个栗子。 业务代码写多了, ~~人~~我就容易陷入套路代码的惰性里。 前阵子和产品经理讨论一个需求的实现, 说到一个点, 我很自然地说:“这实现不了。” 但产品经理又好奇地/疑惑地/质疑地多问了一句: “为什么呢?” 那一刻我心中一愣, 对啊,为什么呢? 于是后续展开了更深刻的讨论。

总的来说, 我十分敬重学习能力, 我也十分喜欢/敬仰那些学习能力很强的人。

在面试时跟候选人聊天的时候, 我很喜欢问一个问题,是: 能不能讲一下,你做过的项目里,你最喜欢的一个? 有些同学会突然激动起来, 抓着你讲一个完整的故事。 比如最开始是某某原因, 然后本来是想怎么样的, 后来又因为什么样的原因, 学到了什么什么。 在这样的交流里, 不仅我能学到不少东西, 我也能看到他身上的成就和成长。

11

所以我很愿意当一个好奇宝宝

就好像萌新三连说的那样:

啥百度啊? 百度啥啊? 咋百度啊?

最后再附带 combo 技:

大佬你到底会不会啊?

combo

有的时候很多问题, 虽然我心里已经有一个大概率确定的答案, 但我也一样会问出来:

所谓活到老,学到老嘛(关谷语气)

100

对了,还有一点。 我称其为对高信息量有好感

这点平常可能不会太在意, 但是简历/面试里面会很明显: 同样是讲三句话, 有些人就讲了很多有用信息, 有些人就像啥都没讲一样。

在《狼人杀》里面这点也会很明显, 很多高玩会频繁用“发金水”“警徽流”“丢水包”等新手听不太懂的词, 这会增加他的发言信息量, 让发言听起来更靠谱。 而很多说:“啊,今天死的是XXX,所以大概女巫XXX,希望XXX”的人, 都被“这货发言信息量真少”给放逐了。

这也是很多亚文化(meme) 好玩的地方。 同样的话语组成部分, 用独特的方式表达出来, 就会传达出微妙差异而信息量丰富的感觉。

假如我写代码的时候, 能写出表达精简, 边界完备, “信息量很高”的代码。 那不需要队友在Code Review时喊666, 我自己已经一蹦三尺高, 开心地像见了新垣结衣一样了。

-1

其实边写还能边想到很多, 不过这本书边上的空白太小了写不下 我想去玩游戏了…

所以简单综述一下:

  • 信奉万物皆科学
  • 相信一定存在最优解
  • 喜欢学习能力强的人
  • 好奇心旺盛
  • 对高信息量有好感

这大概就是, 我作为程序员的逻辑的一小部分吧。