为了更清楚的看清自己,拿一个成熟工业领域用设计汽车的例子来类比软件设计与开发。
技术人员的学习与实践有三个层次
第一层次 了解专业知识与原理
作为一名汽车设计师,在正式上岗之前,首先要了解汽车的各种原理。如引擎、燃料、悬挂,制动、碟鼓,ABS,风阻,油耗,安全防撞等知识,设计汽车目标并不仅是制造一个漂亮的外壳或者让轮子转起来。相反它一个有机的整体,一个系统的工程,你必须有综合的了解才能进行下一步。
软件技术也是如此,在入行之前,我们要了解计算机基础知识、操作系统、内存、网络、协议、TCP/IP、数据库/SQL、存储、数据结构、Web,HTML等专业知识。对于每一种知识你要知其然并知其所以然。比如HTML你不能只象一般的IT人员那样简单的知道它是一种描述网页的语言,而是要知其所覆盖范围,其所长和不所长,为什么有了HTML还要用JavaScript/Flash。
这个层次主要主要目标是知其所用。大部分技术人员应该不局限于长久停留在这一阶段。
第二层次 掌握工具、搭造环境
在汽车设计领域就是你的汽车模型建造工具,验证环境,测试工具,分析工具。你要能清晰的知道它们的特性,了解它们的限制及如何去规避。在软件领域,工具主要是指计算机语言,它是你制造原型及最终产品的工具。不同的场景适合不同的工具,合适的工具能帮助你如虎添翼,但语言也并不是多多益善,通常精通2-3种足矣。了解多种不如精通一种。除了工具还要建立自己得心应手的环境,就像比亚迪要建造自己的的汽车试验场一样,有了合适的环境,才能让你能高效的设计,开发,测试及验证。Jon Bentley,世界著名计算机科学家,被誉为影响算法发展的十位大师之一,他在《编程珠玑》中提到贝尔实验室的环境对他成就的巨大帮助
I came to the Labs because I enjoy balancing the theoretical and the applied, because I want to build products and write books. The pendulum has swung back and forth during my years at the Labs, but my management has always encouraged a wide range of activities.
能熟练使用工具只是对开发人员最低的要求,代表你有能力开发软件产品。但是你是满足一辈子都是重复造一种QQ车还是有更高的追求。比如在国内,某些行业几乎和10年前没什么区别,比如在企业管理应用领域,10年前用VB/Delphi做企业应用,大家都在谈人脉和关系在项目中的关键作用。10年后不用Delphi了,改用Java/SSH,其它一切如旧。这样的领域,开发人员和打一辈子铁的铁匠没什么区别,大家都是把活干得更熟了,除此之外,所获寥寥。
第三层次 学会设计
这时应跳出语言之争与语言迷恋,语言的细节了解得再多,也只是一名工匠,大部分优秀的应用只用到语言及框架不到1/3的特性。你应该寻找有价值的领域深入研究, 就如乔布斯所说
你的工作将填满你的一大块人生,唯一获得真正满足的方法就是做你相信是伟大的工作,而唯一做伟大工作的方法是爱你所做的事。如果你还没找到这些事,继续找,别停顿。尽你全心全力,你知道你一定会找到。而且,如同任何伟大的关系,事情只会随着时间愈来愈好。
所以,在你找到之前,继续找,别停顿。
首先应达到在单个专业领域能够游刃有余,比如如何设计一个简单的网站爬虫。注意有兴趣的设计与干活完成任务的重大区别,你设计的每个产品,它不单是个工作任务,而应该把它看作一个艺术品,这样才能保证你能不断的进步。注意不单要完成功能,否则永远无法达到更高境界。
下一步设计相对更全面领域的产品,比如考虑一个游戏服务器的方方面面或可以设计一个类twitter系统。慢慢的,你才会有自己积累的东西。
最后, 什么是开发人员有意义的方向?
从汽车行业来看,主要任务是学习国外先进公司的经验,在关键领域缩小与其差距,软件开发领域看来也是如此。有些领域虽然高深和有趣,但如果行业暂时需求不大,专注这方面研究难免敝帚自珍。研究业界有需求的领域并寻找有应用需求的场合方可达到开放人员价值的最大化。比如在热门的云存储云计算,虚拟化到不太热门的数据挖掘等都存在一定的空白去填补。最好是在有需求有环境的公司内开展。国内科研机构做表面文章的太多,因此感觉不是合适的场地。
只有找到你感兴趣的方向,才会达到王国维说的第二境界,“衣带渐宽终不悔,为伊消得人憔悴”。至于更高境界,自然是水到渠成。
在这个社会里,你只有做出令人尊敬的产品,才能赢得认可。就像Mini设计在汽车行业流芳百世的榜样,在技术行业里,学识,名望,人脉,金钱带来的价值都是可估量的,不可估量的是对行业留下的创新设计,让你无愧于工程师这个称号。
2009/9/3 on blackberry
(第一次写说教类的东西,由于视界及眼光高度有限,难免思路局限,仅供自勉)
广告:广州技术沙龙已经创建Google Group讨论组,主要关注广州及华南地区技术讨论及线下活动组织,欢迎加入
据说这是tim用黑莓手机写出来的,特意过来顶一下.
我看明白了软件的,反而看不明白汽车的例子,呵呵…
hi, 你的文章很励志,我转了你的文章。
如果可能侵权,请告诉我,我会立即删除!
很好的分析,转了!
写的真不错
google group 无法访问,我也在广州
受益了~写的很好.
晕,数据挖掘还不算热门呀!只是这个东西太专业了,一般的开发人员都进不去。
在技术行业里,学识,名望,人脉,金钱带来的价值都是可估量的,不可估量的是对行业留下的创新设计,让你无愧于工程师这个称号。
顶!
看完这篇文章,突然又记起当年的理想.当年异常膜拜Anders Hejlsberg,John Carmrk诸位大神,因为一颗好奇的心去学习,去探索.工作久了,就渐渐混于企业管理应用中,如你所说,这10年没怎么变化.
我想,手边这个项目结束之后,我应该起航去寻找自己新的方向.