高手 说
“差距在哪里”的问题在受访的专家级开发高手看来有不一样的答案。这些答案多是指向技术内涵和开发者本身。
代码的“斟”与“酌”
高手在编程效率方面可能并不比普通程序员快多少,因为他们会吝啬自己敲下的每一行代码。这种“吝啬”有两方面的含义,一是项目的架构性和整体性考量,二是从性能和优化的角度进行Coding。其实,这里所映射的是一个开发者的技术视野。
有多位技术专家强调项目执行时的全局观。面对一个项目,即使是团队中的普通一员,也要力求从项目整体架构的角度审视开发需求,对各个模块、接口和通信做最优化的预想和配置。这样可以从全局审视整个项目的技术布局,预判可能出现的问题。
在确定了整体之后,落实到具体的模块实现,每一行代码不但有上下文的考量与规划,还要具备模块间的整体布局。这是模块内的技术视野,比如接口的定 义、注释的可读性、代码的执行效率等。当你写下一行代码前,要考虑它是否会对整个系统造成影响,是否方便其他接口进行调用,这些都是一个开发高手的“技术潜意识 ”。
据一些经常带领入门级开发者的技术经理介绍,多数人只考虑自己所负责的模块进行开发,缺乏一个全局性的技术视野和对代码性能苛刻的态度,这样虽然能按交付日期完成项目,却对项目质量和开发者的自我提高有很大阻碍。
喜欢大麻烦
一般开发者对工作中的一些技术问题相当排斥,每个人都希望手里的项目可以顺利进行,一旦遇到问题就会有负面情绪。而我们所看到的一些开发高手对待技术问题则是一种非常积极的态度。
问题、难点是提高的机会。解决一个问题,能力就提升一点;解决一个大问题,能力就提升一大截。很多技术高手喜欢大麻烦,如果开发工作可以顺利进行当然是好事,但没有难度就没有高度;高手们会认为没有技术挑战性,很难让高手们在项目中发挥应有的激情。
同样有技术经理反映,用一个开放的态度迎接问题、解决问题,这是目前入门级程序员所缺乏的心态。“喜欢大麻烦”的态度也是程序员向开发高手进阶的必备心里素质。
代码阅读者
开发高手是代码阅读者。大多数技术专家的代码阅读量是普通程序员的百倍,代码阅读的时间比写代码的时间要长得多。《Java编程思想 》的作者Bruce Eckel对阅读代码的好处做出两种说明:
◆代码被阅读的时间比写代码的时间要长,这有助于你的代码被人理解,并改善或者修改其中的Bug。
◆ Code Review是最有成效的改善软件缺陷的方法,但在我们却经常“没有时间来考虑它”。
关注代码的可读性有助于团队的其他同事帮助你修正技术问题,而技术问题的修正可以使你不再犯同样的错误。Code Review可以让你有更高的视角来审视已完成的项目,这样做,往往能有意外的收获——你发现同样一个项目,你可以做的更好。
除了自己和团队中的代码,高手们还愿意花大量的时间研究“代码大全”,从别人的代码中吸收不同的技术思想并与自己的技术风格融汇贯通。而普通程序员多数只阅读与自己项目相关的程序代码,很少分配精力阅读优秀代码。
其他“差距”
◆参与开源项目。高手们往往都会参加2-3个开源项目,从头到尾完成一个项目的实现和后期升级。开源项目可以与世界各地的优秀程序员接触,协同完成工作,学习和应用最前沿的技术;并得到更多人对你的技术反馈。
◆技术探索者。专家级开发者往往是技术探索者和新技术的布道者。高手们往往对现有技术并不满足(而且经常抱怨这些技术的不足之处),能清晰看到现有 技术的缺陷。与开源社区的结合让高手们有更多机会接触到最前沿的技术和应用理念,这些技术往往是解决现有技术缺陷的最佳方案。高手们还会把新发现的技术带 到国内加以推广和应用,成为这门新技术的专家。
摘录自 ”差距在哪里,你与开发高手的距离有多远?“
link: http://developer.51cto.com/art/201008/222070.htm
另: 一:不要抱怨机会少,没有参加更多的项目
二:不要抱怨没有良师和好的经理