对大宋下一代系统软件架构师的七个期望
有诗云:人之老,其言真;人之去;其行善。
系统软件设计是软件系统的皇冠中的宝石。绚烂美丽。令无数男女痴迷。
在系统软件,特别是通信系统软件的设计上,有没有一些可以提炼的方法论?
今身处幽州(北平),心在大宋。聊聊数语。谈谈我对大宋年轻一代的系统软件工程师的期望。
1。 The Thinner vs. The Thicker
年轻人都以为有些事情需要粗,有些事情需要厚。其实,合适就好。。。
系统软件一定要越细越好;越薄越好。
我在华为做speech的时候,也提到过:能把系统软件做薄,才是一代高手。
最可怕的就是为了做而做。
最高境界是:能不做就不做。
每一行代码,都会成为历史(Legacy);每一份恋情都会成为过去。
工程的事情,就是要简简单单。
内在算法的复杂不代表外在的臃肿。
一个女人,要的是清澈美丽;而非妖娆迷人。
智慧者应该做的是cut;而非单纯的add。
2。 Re-Create vs Re-Search
ReCreate是工程之大忌。任何一个问题,必须首先养成良好的科研习惯:
--是否陈首席已经解答过类似的问题。
--是否友商(敌商)解决过类似的问题。
--是否Open Source领域已经解决过类似的问题。
--是否Google和Baidu已经解答过类似的问题。
如果有,拿来主义基础上的改良主义就是最好的。重复发明已经发明了的算法,模型是兵家之大忌。
学术界的Research的意思是:伊人已经在阑珊处;要的是反复寻找,找到你的爱人。
工业界的Recreate是:瞎折腾。利己但害公司。
3。 Qualitative vs Quantitative
大宋文化博大精深,但似乎更多的是在形而上,在君臣父子,为相为官上做文章。
自然科学在中国的错失是我们大宋百年之痛之根本之一
定性和定量分析的有机结合,是成为一个优秀的系统软件架构师的基本素养。
只有定性分析的胶片,是研发之大忌。
一定要养成能case study,算法分析的良好工作习惯。
要的是数据说话;不要的是框架忽悠。
4。 Feature Parity vs Disruptive Innovation
大宋某公司特别喜欢玩一个词汇:技术断裂点。还有一些:领先世界产品的优势点。
这基本上是胡扯。或者从大样本的角度,是胡扯。是文革作风。是党八股。
作为一个工程设计人员,不要羞于Feature Parity。学习和模仿美军,伪军的东西,是提高自己的最佳方法。不要上来就是什么断裂点。
邓公稼先都说:我们这几代人要做的是使得国家不要差距加大。
我们这2,3代人能做的是:Follow。领先基本上不存在现实。
这其中,最大的问题不是工程,而是教育的落后。教育的落后使得我们不存在成为一个高科技大国的基础yet。
所以,不要有强迫症,没事玩断裂点。跟上并略微有改良就好。
这就好比,明明不是AV明星,非要玩AV明星的动作。。。受罪。
请把创新留给90后和00后吧。。。
5。 Semi-Optimal Optimization vs Full-Optimal Optimization
工程上,没有最好的算法;只有最好的折衷。
爱情上,没有最好的恋人;只有心中的情人。
不要过分追求最佳算法。要能把握算法带来的时间和空间上代价的折衷。更为重要的是,在工程上,如果出了问题,调试,调优和定位带来的代价。否则,能解决问题的算法,就是好算法。
6。 Application vs System
系统是为应用服务的。
男人的钱是为你爱的女人而挣的。
做系统不能玩意淫。不能为做系统而做系统。
一切要为人民服务,为应用服务。
只有人民的需要,才是系统软件的需要。
“爱系统软件就是爱人民。是等价的”。这是愚弄人民。
不能本末倒置。
应用和系统是相通的。你能写汇编,也能写object-C。都是逻辑的表达而已。
7。 Proprietary vs Open Source
拿来主义,没人反对。也需要提倡。但如何贡献和反馈给社区,这是每一个大宋系统软件工程师应该反思的。知识共享不仅仅是一个方法论,也应该是一种精神家园。
天天信息安全,什么都藏着,躲着,非一代天骄之所为。
成大事者,必有大胸怀。公司也好;个人也罢。