java学习方法-浅谈软件开发的神速进步

中国人大都喜欢用武侠小说来比较软件开发,可是在实战武功中,只有葵花宝典才是最厉害的,也只有掌握了葵花宝典,才能称为“不败”。java

1浅谈软件开发的神速进步linux

1.1什么才是软件开发的葵花宝典?c++

  让咱们先从一些现象出发。咱们的前提是,软件开发是一项智力密集型劳动。对于智力密集型劳动,咱们观察到的现象是,个体的表现差别很大,团队的表现差别很大,组织的表现差别很大,国家的表现差别很大。这不象体力占主要的劳动,象百米王跑百米的速度也仅比我快50%。但在棋类运动中,一个高手能够车轮战数位低手,并且毫无例外地将他们一一击败!程序员

  这些智力运动员表现出的特色是,计算精确并且速度快。其行为很象东方不败。虽然关于葵花宝典的传说不少,但最准确的描述只有一个字“快”。东方不败已经快到了吓人的地步。就象卡斯帕罗夫已快到了深蓝的地步。编程

  在软件开发中,咱们一样注意到这样一种高手,他们能够天天写出一千行左右的高品质代码。他们能够运用已有的一些软件包,迅速完成一个新的产品。他们能够在很短的时间内,学会一项新的程序语言或是新技术。他们表现出一种神奇的速度。windows

  在武侠小说中,全部的高手都有一些凡人不能企及的表现。象张无忌学太极,用龙爪手击败龙爪手名家;乔峰用太祖长拳击败天下英雄;姑苏慕容以其人之道还治其人之身,令狐冲一剑剌瞎十几双眼睛等等。我认为,之因此他们能作到这样,关键是在于他们快。api

  快并不意味着不许或品质差。快与品质并不矛盾。eclipse

  高手的快,其实包含着很高的品质在其中。若是你由于高手的快,就质疑其品质,那就至关于在问:东方不败出手那么快,会不会刺不许?东方不败并不知足于刺死对手,他会在对手身上刺朵花。他把杀人变成了艺术。准确来讲,他真正的兴趣不在杀人,而在于艺术。ide

退一步说,就算东方不败第一击有点误差,他稍做修正后,立刻跟上的第二第三击,也会击中他想击中的地方。在武功差的对手剑还没拨出来的时候,他已杀死对方并刺上了一朵花。工具

1.2高手的特色

  真正的软件高手,他并不知足于他的代码能有效地工做了,他认为编程是艺术,并醉心于其中。在低手能写出一个版本的时间里,他已经写出了第十版。其品质固然不可同日而语。就象一个九段棋手,在给定的时间里,他能计算十种可能,并将每种可能计算到100手以后,从中选择一种最有利的下法。低手岂有苟全的机会?

1.2.1高手写软件老是不停地在重构(refactoring)。

高手喜欢迭代式开发。高手说,增量就是打补丁,迭代就是推倒重来。对于软件这种东西,写一遍它可能ok(作到这一点也不容易),写十遍就是一个伟大的产品,再多写一遍它就更伟大些。 一、编码要不断的重复,再重复。直到潜移默化。

1.2.2高手快的诀窍在于他很熟悉各类东西。

高手看书很快,由于每一本新书里,值得他好好看的新技术只有一两章的内容。他能迅速看完,并准确领会这本书的中心思想和价值。而对于一个新手,每句话都是新的,他都须要去理解,每一段例子,他都须要去试。

不多看到一种100%全新的技术或理论。就象java language specification里说的,java没有使用任何新技术,用的都是业界久经考验的技术。对于高手来讲,那些技术都是他所熟悉的。天然,很快他就能从一个c++高手变成了java高手。若是一个编程新手学java,学两年也不如一个高手学两个月的。高手学新东西快。

二、境界转移,举一反三

1.2.3高手写代码速度快。

统计结果说,人均每人月的有效代码速度大概是500行(天天22 / 25)。但那是业界平均生产效率。对于高手来讲,这个数字过低了。天天写300至400行是彻底有可能的。由于在写代码时,全部知识都已具有,已经没有任何须要他多花时间的事情了。他甚至不多须要 debug。

三、量变到质变

1.2.4高手重用代码的能力很强,熟悉新的api的速度很快。

这也是由于,他曾经使用过不少的api,重用过不少的代码。他知道哪些是可用的,哪些有缺陷。他既过用qt,也用过gtk+,也用过windows api & mfc,也用过awt & swing。新的api对他来讲,也是老熟人。

四、举一反三,触类旁通的能力

1.2.5高手喜欢用轻量级的工具(eclipse 免费/ myeclipse收费 / idea【idea支持1.8/ 1.9】) 像vi,notepad,最多到ultraedit这样复杂的。 高手用这种工具写出不少的东西。这些工具就象东方不败的针。那根针已具备神奇的魔力,有时候它能够当激光枪来用。

对于一些重量级的工具,高手虽不经常使用,但一经使出也威力大于常人。若是让东方不败用剑,最厉害的剑术名家也会败得很难看。高手其实用过不少的重量级工具,并且深知其优缺点。因此使出来,就会把威力发挥到最大,而把缺陷减小到最小。而低手则否则,老是把缺陷加以大大的发扬而浑不知其精髓何在。就象不少人学用uml、rup、xp、design pattern那样。

五、高效作事

1.2.6高手所学博杂且融会贯通。 高手作什么都快,当低手还在一愁莫展的时候,高手已经圆满解决问题,去干别的事去了。

 六、融会贯通   1.3成为高手的总结

相信你有一点点想成为高手了。可是有一个问题亟等解决,那就是“欲练神功,必先自宫”的问题。这一点实际上是有比喻意义的。就是说,你必需抛弃一些世俗的人们很看重的东西。有诗为证 : 1.3.1成为高手要作到抛弃一些世俗的人们很看重的东西     世人都晓高手好,只是寂寞受不了

  世人都晓高手好, 只有名利忘不了

  世人都晓高手好, 只有金钱必定要

  世人都晓高手好, 天下美女都要抱

世人都晓高手好, 不写代码最最好 
复制代码

  高手的武功不是一朝一夕练成的。还记得玻尔那件轶事吗,玻尔回答说,他年青时也计算过不少的问题。在不少计算的基础上,高手能培养起一种感受。高手不写代码就能作设计是由于他之前写了不少的代码。并且他们会保持写代码,以保证自已的水平不降低。想想九段高手是如何练成的。最难作到的是能忍受十年磨一剑的寂寞。别人在父母那里撒娇时,他们在一旁用功。十年磨一剑,剑就成了东方不败的针。

  在你下定决心要作高手以后,也就是下定决心抛弃那些世俗的追求以后,也就是你下决心忍受那些来自于庸俗的人的白眼、攻击和谩骂以后,你就具有了练成神功的必要条件。

  事实上其实你没必要一开始就练神功,一开始你们多是为了钱,房子,汽车,美女才编程序的,然然后来艺术就从中产生了。那时高手就再也不关注那些东西了。卓别林曾说过,他开始进入那个圈子也是为了钱,后来艺术就从中产生了。固然,也有人一开始是为了艺术,后来变成为了钱。

  所谓三十而立,就是说到了三十,你找到了你的真爱,值得用一辈子去追求的那种。好比说有的人到了三十认为这一生应该赚尽量多的钱,这也没什么很差,也能够把赚钱自己变成一种艺术,所谓资本运做是也。因此在三十之前,有些私心杂念没什么。三十之后还这样是可耻的。而我,想作一个程序员。

  每一个人作本身最喜欢的事。这个世界须要程序员,也须要资本运做。全部真正的程序员,他最喜欢的事是编程和他自已。若是他后来去作ceo去了,再也不编程,只说明他原本不是一个真正的程序员。

1.4在成为高手的路上要。

1.4.1要有热情,要按部就班,要锲而不舍。

1.4.2要靠本身,书要快快地看。 要试图迅速理解其主旨。其实你快快看所接受的信息量,与慢慢看接受的差很少。能明白多少很大程度上取决于你的功底。之后用到再回过头来看。一本对你来讲新东西太多的书,不要期望看一次就全理解吸取。就象不少功力不够的人看design patterns那本书同样。慢慢看还不如找到多种 信息来源,都快快看一遍。对于一个彻底陌生的领域,只看一本书很远远不够的。

1.4.3要靠自已,事要快快作。 (雷厉风行) 有一个朋友,几年前我介绍他去玩玩linux,他也表示想玩,但他如今还没碰过。他失去了不少机会。

平时要有意识提升本身写代码的速度,其实你一天写15行有效代码,与你写50行有效代码,其品质是差很少的。你应该把那些业界平均水平抛诸脑后,把超越本身作为惟一目标。等到你写了不少各式各样的代码,你的水平就不通常了。一个老师曾向我介绍他的学英语的决窍,他说你去啃原版小说,啃到50本,就和通常人有很大距离了。就是这个理。若是你写得太慢,怎么能写得多?水平怎么能提升?

1.4.4要靠本身,学不少别人怕学的东西。 低手总会说:这么多东西怎么学得过来啊。因而就少学或不学。这样就成不了高手了。高手有很是广的知识面,有很丰富的经验。知道不少低手不知道的事。玩过不少低手听都没听过的东西。

1.4.5要靠本身,努力知足客户的各类需求。 我的技能是在知足客户的各类需求的过程当中提升的。好比你喜欢用delphi,客户说必定要用vb,那你就答应他,而后把本身培养成为vb的高手。用户的需求看似**,但对你是一个机会。

1.5怎样才能作到看书快,写代码快,学新东西快 一个显而易见的途径就是将工做并行化。你在一台机器上make时,同时能够在看别的文档和聊天。对于计算机是这样,对人也是这样。若是你只能串行地处理问题,你的速度将提升有限。你的大脑有很大潜力可挖,它应该是一个多任务分时系统。努力减小它idle的时间。搞经济的samuelson被人称为human brain main frame,可见他的大脑有多快。

  让你的思惟快起来,你就会区别于那些反应迟钝的人。若是你不能让人生的道路变长,就让它变宽。这世界变化快,须要你变得比它快才行。

这样加快并不会让你短命,相反,你有更多的时间来享受生活和锻炼身体。你的生活将更有品质,更丰富,更有意义。面对变化,你将立于不败之地。咱们都是和本身赛跑的人,须要跑得比昨天的本身更快。

目标:平均天天500行代码量 15K 沟通(自信) 在深圳的水平:120天 * 500有效行 = 60000行 = 10K/月 (执行力) 行业工做量要求:60000/100 = 600天 = 2年

2知识,技能,才干 , 艺术

2.1技能与知识最大的差异是 技能是以熟练不熟练为判断的。它没有知识那种知道或不知道,“原来是这么回事”的瞬间快感。任何人刚刚接触技能,都是笨拙而滑稽的。虽然26个字母清清楚楚地写在每个键位上,可是谁也不会一开始就运指如飞。

目标:前面半个月对打字必需要练到运指如飞 1000 600 100 后面的要求由于很难 必需要达到: 眼看,手敲,耳听,心想,脑思。

2.2中国式英语教学的问题 把英语当成一种知识来教——你清晰地知道[θ]是从喉咙发起的气流经过上颚冲出唇齿之间摩擦发出的浊音,可是你不必定能顺利发得标准。你能够对虚拟语气的十二种可能了如指掌,可是仍是没法脱口而出。

目标:多练,不断的敲代码,敲到浑然天成的胸有成足。

2.3语言是技能,而不是知识。 知识能学到,而技能只能习得。知识学习是瞬间的,知道与不知道之间几乎瞬间完成。但技能则须要漫长的笨拙期——若是你不接受本身笨拙的开始,你永远也不会学好任何技能。

也正由于这个心智之墙,不少知识优胜者死别也不肯走入技能的练习领域。这也是为何“好学生”每每不如“坏学生”混得好的缘由——“混社会”是门技能啊。

2.4才干 而当一门技能被反复地操练,就会进一步内化,成为才干。正如你如今打字不须要看键盘,正如你说话张嘴就来不用考虑发音,正如你骑单车不用想着保持平衡同样,这些技能都由于反复修炼,成为你不知不觉的才干。

而才干一旦学会,能够很迅速地迁移到其余技能领域中去。就好像今天的小孩子学习个新电子产品必定比中年人快, 他们与电脑的互动,早就成为才干,又从新迁移到新的知识和技能领域来。高手就是这样炼成的。

让技能升级为才干,咱们就完成了最牛的一项能力修炼:才干是自动自发的能力。

无须过脑子就可以直接使用这项技能,他彷佛成为你的天生属性之一。一个魔术在上台前,须要通过大概近3千次的练习,因此当刘谦对着镜头变魔术的时候,他的大 脑确定不会过关于“如何拉动皮筋”这样的事,那些动做彻底自动化,他的脑子则在想如何配合当时的机位、镜头、全部人的表情。时间一长,这些技能也变成“镜 头感”被存为才干。他能够发展新的技能了。

爱好学习的宝宝们,能够找我。v:17711692868

相关文章
相关标签/搜索