個人檔案different life, differen...相片部落格清單更多 工具 說明
2月20日

跟批评自己的人交朋友

批评这个词其实有点负面,正确的表达应该叫做"提意见"。
 
如果有人能给自己提意见,那是非常好的,一定要请他吃饭,跟他交朋友。纵使万一对方是出于恶意,也应该多加沟通,表达善意,消除误会。
2月17日

系统的实现

1.一个系统必然是放在更大的系统当中,所以如何配合这个更大系统中其他部分,决定了这个小系统的价值。
2.这个系统应该容易升级,升级了的系统应该向前兼容。
3.系统内部的各个组成部分的耦合性应该小,这涉及了这个系统是否容易验证和使用:假设一个系统的构架是强耦合的,现在我们准备将feature增加一倍,那么为了测试这个系统的case数量就是原来的2x2=4倍了,而且每个case他的难度是增加feature前每个case的两倍。这样整个系统的验证工作量X难度就是以前的8倍了,wow,这种系统还能scale么?如果是一个耦合弱的系统,相比较而言,整个系统的验证工作量X难度=2倍。
 
2月13日

英语对于一个软件从业者的重要性

大约在三年前,我跟一个印度工程师合作了一个月。他的职位是一个美国ASIC公司在印度的Application Lead,年龄比我大一岁,有5,6年工作经验。他的主要工作是写SDK和支持OEM客户,我并不觉得他的技术功力多厉害。两年以后,我有幸跟这个印度人的前同事(中国人)聊起了他,有两点我印象很深刻,第一是这位兄弟在Huawei出差的时候坚决不加班,第二是他的月薪是5000美元。
这样的月薪是中国软件工程师望尘莫及的,拒绝加班也是很少中国工程师能做的。而他的背景和功底也不过so so。
我以前并不知道为什么会这样。
现在我大约知道其中的一个原因了,也许是很重要的一个原因。
让我慢慢讲来。
大约从一年前,我看技术书籍,我渐渐的习惯看英文,原因是中文翻译往往表述不清楚,而且IT技术描述并不是完全精确的(相对的,我们可以称数学公式是完全精确的),很多描述是带有生活语言的,中文也许根本翻译不出来。
刚开始我的英文阅读速度并不快,可是看多了,也就快了。
甚至,后来在linux下不停的info和man,也能很快的定位自己需要的信息。
再后来,我装了卫星电视,看一些外文节目,听力也能促进阅读。当然,我也有意的去坚持访问行业内的英文网站。
 
不知不觉中,觉得自己技术上提高较快,观念和眼界上也慢慢有所改善。
再回过头看别人,很多linux下的程序员,居然不去info libc,也不去阅读vi的help,很多时候是一种惰性,这种惰性造成了自我堕落。另外看到一些回国创业的大龄硅谷海归,刚开始被他们吓住了,可是真的接触下来,也就Tech lead或者senior engineer的水平,却拿着比国内工程师高至少5倍的收入,最重要的原因他们处理英文的能力比国内工程师强。
 
我开始明白了,我们实际上某种意义上是信息不对称的弱势一方:接触不到最新信息,不能直接跟客户沟通,技术学习慢,这一切都会让我们成为最底层的工具。所以广大的中国软件从业者拿着微薄的薪水,干着洋人不愿意干的活,还要忍受无休止的加班,最为关键的最终会形成一个观念:这是一个毫无前途的职业,也没有必要积累这个行业内的知识。
有人说,老外之所以拿高薪水,是因为他们的创新能力强。错了,创新永远是极少数人的事,而且从工程角度,绝大部分是可以复用已有知识的,问题是怎么去查找这些知识。
 
其实其他行业也存在类似的情况,但是相对传统的行业不会太明显,第一是因为知识更新速度慢;第二是传统行业的客户/零件商一般在国内,而IT行业基本两头在外。
 
我的结论是:英语太重要了,甚至比某项具体的技术重要。他值得一个从业者去提高。