思想与表达

Math is about ideas, formulas are just a way to express them.

数学研究的是思想,公式只是表达思想的一种方式。


看到这句话时,感觉它内涵非常深刻,

从模型论的高度,

表达了语法和语义的深层联系。


我们尝试修改一下,

就会得出对程序员们帮助很大的一句话。


Programming is about ideas, languages are just a way to express them.

编程也是一种思维活动,编程语言只是表达思想的一种手段。


抓住闪光

当我们被要求做一件事的时候,

其实并不是在实现自己的想法。


我们似乎,没有自己的想法,

一直在按别人说的做。


然而,

找理由是没有用的。


没有自己的想法,

不是教育的悲哀,

而是学生的悲哀。


没有人能限制我们考虑什么,

只有自己能导致懒得去考虑什么。


因此,我们要学会捕捉新奇的观点,

并记录下来,

偶尔拿出一些来实现。


多说无益

和人类的语言一样,

表达同一个思想,可能有多种方式,

甚至用多种语言表达同一个观点。


很多人知道这些,但是奇怪的是,

每个人都认为自己的方法才是最好的。


编程语言之争,就是这样,

通常发生在不了解另一个语言的时候。


人们只会争执自己不熟悉的东西。

而对熟悉的东西,往往觉得各有利弊。


因此,

我们要开阔自己的视野,

想办法站在同一个高度,看待问题的双方。


言简意赅

清晰的表达自己的思想,

并不是件容易的事情。


和人类语言不同,

代码不能写成针对某个人看的,

因为意想不到的读者太多了。


而且,代码是活的生命体,

读者也是不断进步的人群。


把复杂的细节,隐藏在简洁的表象下面,

是个好主意。


这让我们有能力面对以后更复杂的场景。


轻装上阵

和能工巧匠一样,

良好的设计,诚然重要,

而精湛的技艺也不可缺少。


代码是要经过打磨和润色的,

编程技艺体现在每一次的修改中。


它是否向着更精巧别致的方向发展了,

是否潜在的扩展能力发生了变化。


好的代码,

让以后的演进,都好像从零开始那么简单,

没有负担的前进。


结语

抱怨需求变更太快的人们,

通常一开始没有做好应对变更的准备。


因为,早就应该识别出这个易变的特点,

不是吗?


这就是考验技艺的时候了,

来自能工巧匠之手的代码,可以响应需求的变更。


拙劣的实现,

阻碍思想的演变。