做为一个过来人(装装腔壮壮土气,其实再过一个月我也才30岁,只是17岁就入行),电脑应该是怎么学的,我对时下的肓从跟风有非常大的意见。。
所谓的专业技术其实际是业务模型的实现,而业务模型是市场需求总结出来的。。
所以技术的本质在于利益。。怎么做学什么符合目标(业务模型)就那么做,这是不可抵抗的原则,如果违反了,就会伤心,骂某人不识货,其原因是因为违反了这个不可抵抗的原则。
因为除去利益,技术什么也不是,它可以推动火箭上天,但若没有喝彩,汗水唯有黄土识。。
电脑就是这么学的。。
但是有几个误区一定不要掉进去。。
关键问题,值钱的技术是什么?
某些人,自以为自己很历害,VC、GCC都很牛(比喻了解和有能力生产core),但他始终只能拿工资,听不懂业务模型。。更笑谈项目设计及所谓的构架。。
其实值钱的是标准、协议,精之那他是CTO,如果再加上业务逻辑,那他就是副总(搞技术的去当老总就不算技术人员了,所以不在此列,因为马上要变质了,就象门口卖苹果的,专业知识只会用来吹牛),如果只拥有实现机理及构架能力的,那他是项目经理,如果只是会编程,那他只是程序员,如果编程还只是入门,那他就是打字员。。Microsoft Office 是由打字员+程序员搞出来的,对吧?然而金字塔的精妙会有人说是奴隶的功劳吗?
某天,我老婆叫我帮她刷投票,我的notebook上没有Windows 我执长的一些语言无从发挥,只有linux,为求简便不打算用gcc、java,想试用简便的shell脚本,可是我对shell 一无所知,咋办呢?于是我从网上下了一台参考手册,实际上我只要查一下 if 和 while的语法结构,不用一会,我就搞定这件事。。当不少朋友时刻在背那些命令、语法时,我正躺在床上看郑少秋的VCD。。(这也只是一个比喻,形容编译语言并不重要,最科学的完全任务是首要的)
首先我们分析一下,if while 在多如牛毛的编程语言里都是存在的,因为所谓的语言就只有这些东西和一些类库扩展函数(就象VBS 和 ASP,就象.Net Framework和API)。。这就是一种变相的潜标准,正如我要写数据库应用程序了,我知道,它肯定是由 “动作 目标 条件” 来组成,我无须去牢记那些不同数据库各自的命令,它一文不值,因为那是人家定的,人家想怎么说就怎么说,不如用的时候去check 就行了。。当然这只是一种形容,一种对交集的对待,并不是说不应该去学习各种不同特色,至少我面试MS SQL数据库人员时,不明白聚焦列的立即中止,命令记得再多再熟也是空谈。。因为它是一种基本机理,机理不明白,就只是打字员。。
所以学技术必须先学标准,要学标准必须先学习机理,考虑它如何做,为什么这么做,就可以了。背书完全没必要。。正如我看电视,我看的是艺人们怎么去回避那些尖锐问题,领导们是怎么博彩表现,演讲的人怎么去制造浮华噪影,考虑他每一句话的必要性、目的性和它的机理,故曰:三人行,皆有我师也。。就连苹果怎么卖也有很大的学问要让我们去学习,其根本原因是我们求知的方向和方法不同,导致的层次不同。。如果小板凳坐腻了,也考虑改变一下方式,将视野拉长一些,想的更复杂一些,虽然要少活了几年。。
换个角度,学网络开发必须学TCP而不是背sock,搞移动应用必须学GSM而不是背AT指令。。这就是标准和协议,我的大脑里装的仅仅是这些。。在掌握这些标准时,再去探索物理实现,广习机理可以帮助改善开发出来的成品的质量。
共享原则
03 年底,我初到北京入行从未涉足的SP行业,经过半年的奋斗,我的系统运作的很成功,另一个老总跟我说,拷贝一份给我吧,省得我们再劳动。。当时我始终不理解也不赞成。。因为我顾及的是影响竞争力的关键技术(我们用最便宜的机器跟着最快最稳定的MMS联盟平台,及后来的利用移动信道SMS成本发MMS)。。直到去年底,我才真正理解这个共享意义,我提供了一些无损竞争力的核心代码和机理给别人,人家借以加速了开发进度,缩减了开发成本并提早产生了利润并占领市场。而我,也从他们那里得到了更多(比如 codeproject,sf.net),我后面的团队进度比之前提升了整整一倍。。
软件无用论
很多非专业朋友在报怨Linux 平台的不是,Windows 的宏伟,亦或反之,实际上,完全忽略了,软件与OS是二回事,好,不争跨平台,就算各自组合成个体,正好我在回复一个朋友的贴子说为什么要用linux要用ubuntu 呢,我的回贴是:
能创造利润是我们出发点,不管是什么平台,对我们而言是划算的,那就可行的,不管是linux众多的发行版还是Windows、MAC都只是我们赚钱的工具而已,哪个好用容易达到目的就用哪个,它们只是抽像一些的工具。。对某些人,它可能是VCD是视频电话,但除此之外,啥也不见,当我按下power 键,一切都还是原来那样,而此刻才是真实的。。
那么用linux 之所以选择ubuntu,因为它是linux 里的一个最轻松快捷的系统,有很多的东西,不需要我们操心,一个快捷的apt-get 完全解决了我关键的时间问题,当我们用上gentoo 时,就会明白,我必须分秒必争,就算坐在马桶上也得事先安排一些代码让它去编译。。。如果我们面临的是一个集体,我们得有多少倍的时间花费在编译以及解决依赖问题上面?(这也是一个比喻,尽管我用的就是gentoo)
某一天,我们的国民象美国象日本那样的工作量和压力,我们就完全理解这些道理,可惜的是我们的人民太闲了,闲到象弥衡一样到处溜达。。。
上市的不少产品,尽管有不少是使用Visual Studio 开发的(多数团队选择使用它是因为开发人员的上阵成本较低且人才充足),然而这一切成绩,与Microsoft 一点关系也没有,没有人认为网易和新浪的成功与Apache有任何关联,它只是我们的一个工具,这也是为什么我们要付钱买它们的原因。。所以不要为它投入任何情绪,我们才是主要实体,想怎么用它就怎么用它。。
所谓的软件性能、特色,更加无谓的系统优化,什么也不是。。那完全是因为我们实在太闲了。。成天瞅那些所谓的高人学会这一些,也只能证明你了解原作者的意图或者对某作者的作品比较有共鸣了。。但是千万不要忘了,软件是人家写的,语言是人家撰的,我们除了报怨什么也做不了,很多年前,那时bill 还刚从IBM出来没多久,我习惯的是int xx mov ah 这样的写程序,现在却连VC的 printf 语法都已经不记得了,记得只是C#的 Console.Wrtile,这是微软安排的,不是你我能改变的,所以牢记它没有任何价值,只需要了解就已经足够(碰上猪头面试官就只好投其所好了,韩信碰上项羽都只能站岗,何况是我们呢)。。
标准和协议才是属于大家的。。就拿华为搞的无线运营商工程(尽管写的非常野蛮和漏洞100 出),没有强硬的国际标准协议的深度研习,靠1000个c高手也只是游通散兵,等同于1000个张飞,只能落草为寇,勇是必要的,但保命即可(形容程序只是次要的,因为有路由协议才有openwrt而不是因为有linux才有路由),关键的时候还可以共享前辈们的成果,这就是Linux 的开源、Microsoft 的 MSDN 的好处。。
总结:实践是不难的,但要建立在了解机理的基础上,OS和编程语言都是次要的,科学的组合利用实现业务目标才是首要的。坚持这个原则,有一天,会发现技术使用和应用的发展是有终点的(甚至在更高层次的见识下看到的都是冷菜热炒)只有领域是无极限的,因为“创新”一个领域是计算机事业的利润的基础,它永远不会停息。
之所以称此为“缪”论,是因为它还需要咀嚼,有高见可以来反驳,我很高兴有人来开导我。。
from:http://blog.163.com/scofield_cnh/blog/static/518753922007929104921607/