Java文萃 什么才是软件开辟的葵花宝典[Java编程]
本文“Java文萃 什么才是软件开辟的葵花宝典[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
中国人大都喜好用武侠小说来对比软件开辟,但是在实战武功中,只有葵花宝典才是最利害的,也只有掌握了葵花宝典,才能称为"不败".
但什么才是软件开辟的葵花宝典?
让我们先从一些现象动身.我们的前提是,软件开辟是一项智力密集型劳动.关于智力密集型劳动,我们察看到的现象是,个体的表现差别很大,团队的表现差别很大,组织的表现差别很大,国家的表现差别很大.这不象体力占主要的劳动,象百米王跑百米的速度也仅比我快50%.但在棋类运动中,一个高手可以车轮战数位低手,并且毫无例外地将他们一一击败!
这些智力运带动表现出的特点是,计算切确并且速度快.其行为很象东方不败.固然关于葵花宝典的传说很多,但最精确的描写只有一个字"快".东方不败已经快到了吓人的地步.就象卡斯帕罗夫已快到了深蓝的地步.
有一则关于物理学家玻尔的轶事,有一次玻尔在普林斯顿大学听两个年青传授演讲他们的工作成果.期间玻尔忽然发言说,假如照你们的研究算下去,会得到一个很有意思的推论.后果两个年青传授回去计算了两天,公然得出了一样的结论.玻尔是若何做到这样快的?
在软件开辟中,我们一样注意到这样一种高手,他们可以每天写出一千行左右的高品质代码.他们可以应用已有的一些软件包,疾速完成一个新的产品.他们可以在很短的时间内,学会一项新的程序语言或是新技术.他们表现出一种奇异的速度.
在武侠小说中,全部的高手都有一些常人不能企及的表现.象张无忌学太极,用龙爪手击败龙爪手名家;乔峰用太祖长拳击败天下豪杰;姑苏慕容以其人之道还治其人之身,令狐冲一剑剌瞎十几双眼睛等等.我认为,之所以他们能做到这样,关键是在于他们快.
快并不意味着不准或品质差.快与品质并不冲突.
高手的快,其实包含着很高的品质在此中.假如你因为高手的快,就质疑其品质,那就相当于在问:东方不败出手那么快,会不会刺不准?东方不败并不满意于刺死对手,他会在对手身上刺朵花.他把杀人变成了艺术.精确来说,他真正的爱好不在杀人,而在于艺术.
退一步说,就算东方不败第一击有点毛病,他稍作改正后,即刻跟上的第二第三击,也会击中他想击中的地方.在武功差的对手剑还没拨出来的时刻,他已杀死对方并刺上了一朵花.
所以真正的软件高手,他并不满意于他的代码能有效地工作了,他认为编程是艺术,并醉心于此中.在低手能写出一个版本的时间里,他已经写出了第十版.其品质当然不可同日而语.就象一个九段棋手,在给定的时间里,他能计算十种大概,并将每种大概计算到100手之后,从中挑选一种最有利的下法.低手岂有苟全的机会?
高手写软件老是不断地在重构(refactoring).高手喜好迭代式开辟.高手说,增量就是打补钉,迭代就是推倒重来.关于软件这种东西,写一遍它大概OK(做到这一点也不简单),写十遍就是一个巨大的产品,再多写一遍它就更巨大些.
高手快的诀窍在于他很熟习各种东西.高手看书很快,因为每一本新书里,值得他好好看的新技术只有一两章的内容.他能疾速看完,并精确领会这本书的中央机惟和代价.而关于一个新手,每句话都是新的,他都需求去理解,每一段例子,他都需求去试.
很少看到一种100%全新的技术或理论.就象Java language specification里说的,Java没有利用任何新技术,用的都是业界久经磨练的技术.关于高手来说,那些技术都是他所熟习的.自然,很快他就从一个C++高手变成了Java高手.假如一个编程新手学Java,学两年也不如一个高手学两个月的.高手学新东西快.
高手写代码速度快.统计后果说,人均每人月的有效代码速度大约是300至400行.但那是业界平均生产效率.关于高手来说,这个数字太低了.每天写300至400行是完好有大概的.因为在写代码时,全部知识都已具有,已经没有任何需求他多花时间的事情了.他乃至很少需求Debug.
高手重用代码的本领很强,熟习新的API的速度很快.这也是因为,他曾经利用过很多的API,重用过很多的代码.他知道哪些是可用的,哪些有缺陷.他既过用Qt,也用过gtk+,也用过windows API & MFC,也用过AWT & SWING.新的API对他来说,也是老熟人.
高手喜好用轻量级的工具,象vi,notepad,最多到UltraEdit这样复杂的.高手用这种工具写出很多的东西.这些工具就象东方不败的针.那根针已具有奇异的魔力,有时刻它可以当激光枪来用.
关于一些重量级的工具,高手虽不常用,但一经使出也威力大于常人.假如让东方不败用剑,最利害的剑术名家也会败得很丢脸.高手其实用过很多的重量级工具,并且深知其优缺陷.所以使出来,就会把威力施展到最大,而把缺陷削减到最校而低手则不然,老是把缺陷加以大大的发扬而浑不知其精华安在.就象很多人学用UML、RUP、XP、Design pattern那样.
高手所学博杂且融会贯穿.高手做什么都快,当低手还在一愁莫展的时刻,高手已经圆满办理问题,去干别的事去了.
在成为高手的路上,要有热忱,要循序渐进,要持之以恒.
要逼自己,书要快快地看.要试图疾速理解其大旨.其实你快快看所承受的信息量,与渐渐看承受的差不多.能懂得多少很大程度上取决于你的功底.今后用到再回过头来看.一本对你来说新东西太多的书,不要期望看一次就全理解吸取.就象很多功力不够的人看design patterns那本书一样.渐渐看还不如找到多种信息根源,都快快看一遍.关于一个完好陌生的范畴,只看一本书很远远不够的.
要逼自已,事要快快做.有一个朋友,几年前我介绍他去玩玩linux,他也表示想玩,但他目前还没碰过.他失去了很多机会.
平常要有意识提高自己写代码的速度,其实你一天写15行有效代码,与你写50行有效代码,其品质是差不多的.你应当把那些业界平均水平抛诸脑后,把超越自己做为唯一目标.等到你写了很多形形色色的代码,你的水平就不普通了.一个老师曾向我介绍他的学英语的决窍,他说你去啃原版小说,啃到50本,就和常人有很大距离了.就是这个理.假如你写得太慢,怎么能写得多?水平怎么能提高?
要逼自己,学很多别人怕学的东西.低手总会说:这么多东西怎么学得过来埃于是就少学或不学.这样就成不了高手了.高手有非常广的知识面,有很丰富的经验.知道很多低手不知道的事.玩过很多低手听都没听过的东西.
要逼自己,勤奋满意客户的各种需求.个人技术是在满意客户的各种需求的历程中提高的.比方你喜好用Delphi,客户说一定要用VB,那你就承诺他,然后把自己造就成为VB的高手.用户的需求看似变态,但对你是一个机会.
怎样才能做到看书快,写代码快,学新东西快,一个显而易见的途径就是将工作并行化.你在一台机械上make时,同时可以在看别的文档和聊天.关于计算机是这样,对人也是这样.假如你只能串行地处理问题,你的速度将提高有限.你的大脑有很大潜力可挖,它应当是一个多任务分时系统.勤奋削减它idle的时间.搞经济的Samuelson被人称为human brain main frame,可见他的大脑有多快.
让你的思维快起来,你就会辨别于那些反映愚钝的人.假如你不能让人生的道路变长,就让它变宽.这世界改变快,需求你变得比它快才行.
这样加快并不会让你短寿,相反,你有更多的时间来享用生活和锤炼身体.你的生活将更有品质,更丰富,更有意义.面对改变,你将立于不败之地.我们都是和自己竞走的人,需求跑得比昨天的自己更快.
以上是“Java文萃 什么才是软件开辟的葵花宝典[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |