术业有专攻。但是一些技术思维是可以通用的。下面提到了两种可以长远应用的哲学方式。
编程的过滤器思维。计算机程序本身不创造数据,只是变换数据和改变表现形式。
一个camera应用,只是将光的影像转为模拟或者数字的信号并进行后续的所有处理。一个办公应用。所用的字都是我们输入的。UNIX编程哲学中,利用管道可以很简单地把他们连接起来。我想这个源自上世纪60年代的思维方式地确有点强大。
真实世界里面的编程其实就是管理复杂度的问题。能够管理复杂度的工具都是好东西。但是,当这些工具的作用不是控制而是增加复杂度的时候,最好扔掉,从零开始。永远不要忘记这一点,它是unix智慧的重要组成部分。
在大型的系统设计中,比如操作系统设计,软件架构需要有一个原则:提供机制而不是策略,具体的细节个性化交给实际应用者自主。但是对于普通人的困难在于,我们很难去理解一个专业行业中应该提供的特定的机制。
技术在有些时候并不是阻碍我们发展的唯一瓶颈。在计算机界,我们可以接触到太多的开源技术,或者说是开源标准。这些标准可以是学习的最权威的资料,可惜我们不能够找到一个切入点。冰冷冷的文字转化不成自己的思维。这才是问题所在。
所以,对于从事技术行业的人,来说,我有以下建议:
第一步:提出正确的问题。
我们很容易提不出正确的问题。或者发现不了正确的问题。这其实是一件可悲的事情。因为我们的处境和视野,或者说出身就决定了我们的局限。提出正确的问题也变成了一种奢望。
第二步:了解该领域的基础构架。
想要了解一项特定的技术,必须先要去接触这个行业的各个方面,从一个局外人的角度,很难去看到本质。只有调查才有发言权。
【完】
2016年中秋节前 praiseslow
联系客服