|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.
中国人多数喜好用武侠小说来对照软件开辟,可是在实战武功中,只要葵花宝典才是最凶猛的,也只要把握了葵花宝典,才干称为"不败"。
但甚么才是软件开辟的葵花宝典?
让我们先从一些征象动身。我们的条件是,软件开辟是一项智力麋集型休息。关于智力麋集型休息,我们察看到的征象是,个别的体现差别很年夜,团队的体现差别很年夜,构造的体现差别很年夜,国度的体现差别很年夜。这不象膂力占次要的休息,象百米王跑百米的速率也仅比我快50%。但在棋类活动中,一个妙手能够车轮战数位低手,并且毫无破例地将他们逐一击败!
这些智力活动员体现出的特性是,盘算准确并且速率快。其举动很象东方不败。固然关于葵花宝典的传说良多,但最正确的形貌只要一个字"快"。东方不败已快到了吓人的境地。就象卡斯帕罗夫已快到了深蓝的境地。
有一则关于物理学家玻尔的轶事,有一次玻尔在普林斯顿年夜学听两个年轻传授演讲他们的事情功效。时代玻尔俄然讲话说,假如照你们的研讨算下往,会失掉一个很成心思的推论。了局两个年轻传授归去盘算了两天,公然得出了一样的结论。玻尔是怎样做到如许快的?
在软件开辟中,我们一样注重到如许一种妙手,他们能够天天写出一千行摆布的高品德代码。他们能够使用已有的一些软件包,敏捷完成一个新的产物。他们能够在很短的工夫内,学会一项新的程序言语或是新手艺。他们体现出一种奇妙的速率。
在武侠小说中,一切的妙手都有一些伟人不克不及企及的体现。象张无忌学太极,用龙爪手击败龙爪手名家;乔峰用太祖长拳击败世界好汉;苏州慕容以其人之道还治其人之身,令狐冲一剑剌瞎十几双眼睛等等。我以为,之以是他们能做到如许,关头是在于他们快。
快其实不意味着禁绝或品德差。快与品德其实不冲突。
妙手的快,实在包括着很高的品德在个中。假如你由于妙手的快,就质疑其品德,那就相称于在问:东方不败脱手那末快,会不会刺禁绝?东方不败其实不满意于刺逝世敌手,他会在敌手身上刺朵花。他把杀人酿成了艺术。正确来讲,他真实的乐趣不在杀人,而在于艺术。
退一步说,就算东方不败第一击有点偏向,他稍作修改后,即刻跟上的第二第三击,也会击中他想击中的中央。在武功差的敌手剑还没拨出来的时分,他已杀逝世对方并刺上了一朵花。
以是真实的软件妙手,他其实不满意于他的代码能无效地事情了,他以为编程是艺术,并醉心于个中。在低手能写出一个版本的工夫里,他已写出了第十版。其品德固然不成等量齐观。就象一个九段棋手,在给定的工夫里,他能盘算十种大概,并将每种大概盘算到100手以后,从当选择一种最有益的下法。低手岂有苟全的时机?
妙手写软件老是一直地在重构(refactoring)。妙手喜好迭代式开辟。妙手说,增量就是打补钉,迭代就是推倒重来。关于软件这类工具,写一遍它大概OK(做到这一点也不简单),写十遍就是一个巨大的产物,再多写一遍它就更巨大些。
妙手快的窍门在于他很熟习各类工具。妙手看书很快,由于每本旧书里,值得他好悦目的新手艺只要一两章的内容。他能敏捷看完,并正确了解这本书的中央头脑和代价。而关于一个老手,每句话都是新的,他都必要往了解,每段例子,他都必要往试。
很少看到一种100%全新的手艺或实际。就象Javalanguagespecification里说的,Java没有利用任何新手艺,用的都是业界久经磨练的手艺。关于妙手来讲,那些手艺都是他所熟习的。天然,很快他就从一个C++妙手酿成了Java妙手。假如一个编程老手学Java,学两年也不如一个妙手学两个月的。妙手学新工具快。
妙手写代码速率快。统计了局说,人均每人月的无效代码速率也许是300至400行。但那是业界均匀临盆效力。关于妙手来讲,这个数字太低了。天天写300至400行是完整有大概的。由于在写代码时,一切常识都已具有,已没有任何必要他多花工夫的事变了。他乃至很少必要Debug。
妙手重用代码的才能很强,熟习新的API的速率很快。这也是由于,他已经利用过良多的API,重用过良多的代码。他晓得哪些是可用的,哪些出缺陷。他既过用Qt,也用过gtk+,也用过windowsAPI&MFC,也用过AWT&SWING。新的API对他来讲,也是老熟人。
妙手喜好用轻量级的工具,象vi,notepad,最多到UltraEdit如许庞大的。妙手用这类工具写出良多的工具。这些工具就象东方不败的针。那根针已具有奇妙的魔力,偶然候它能够当激光枪来用。
关于一些分量级的工具,妙手虽不经常使用,但一经使出也能力年夜于凡人。假如让东方不败用剑,最凶猛的剑术名家也会败得很丢脸。妙手实在用过良多的分量级工具,并且深知其优弱点。以是使出来,就会把能力发扬到最年夜,而把缺点削减到最校而低手则否则,老是把缺点加以年夜年夜的发扬而浑不知其精华安在。就象良多人学用UML、RUP、XP、Designpattern那样。
妙手所学博杂且举一反三。妙手做甚么都快,当低手还在一愁莫展的时分,妙手已美满办理成绩,往干其余事往了。
在成为妙手的路上,要有热忱,要循规蹈矩,要锲而不舍。
要逼本人,书要快快地看。要试图敏捷了解其大旨。实在你快快看所承受的信息量,与渐渐看承受的差未几。能分明几很年夜水平上取决于你的功底。今后用到再回过火来看。一本对你来讲新工具太多的书,不要期望看一次就全了解吸取。就象良多功力不敷的人看designpatterns那本书一样。渐渐看还不如找到多种信息来历,都快快看一遍。关于一个完整生疏的范畴,只看一本书很远远不敷的。
要逼自已,事要快快做。有一个伴侣,几年前我先容他往玩玩linux,他也暗示想玩,但他如今还没碰过。他得到了良多时机。
平常要无意识进步本人写代码的速率,实在你一天写15行无效代码,与你写50行无效代码,其品德是差未几的。你应当把那些业界均匀程度抛诸脑后,把超出本人做为独一方针。比及你写了良多形形色色的代码,你的程度就纷歧般了。一个先生曾向我先容他的学英语的决窍,他说你往啃原版小说,啃到50本,就和常人有很年夜间隔了。就是这个理。假如你写得太慢,怎样能写很多?程度怎样能进步?
要逼本人,学良多他人怕学的工具。低手总会说:这么多工具怎样学得过去埃因而就少学或不学。如许就成不了妙手了。妙手有十分广的常识面,有很丰厚的履历。晓得良多低手不晓得的事。玩过良多低手听都没听过的工具。
要逼本人,勉力满意客户的各类需求。团体妙技是在满意客户的各类需求的过程当中进步的。好比你喜好用Delphi,客户说必定要用VB,那你就允许他,然后把本人培育成为VB的妙手。用户的需求看似反常,但对你是一个时机。
如何才干做到看书快,写代码快,学新工具快,一个不言而喻的路子就是将事情并行化。你在一台呆板上make时,同时能够在看其余文档和谈天。关于盘算机是如许,对人也是如许。假如你只能串行地处置成绩,你的速率将进步无限。你的年夜脑有很年夜潜力可挖,它应当是一个多义务分时体系。勉力削减它idle的工夫。弄经济的Samuelson被人称为humanbrainmainframe,可见他的年夜脑有多快。
让你的头脑快起来,你就会区分于那些反响愚钝的人。假如你不克不及让人生的路途变长,就让它变宽。这天下变更快,必要你变得比它快才行。
如许加速其实不会让你夭折,相反,你有更多的工夫来享用生存和熬炼身材。你的生存将更有品德,更丰厚,更成心义。面临变更,你将立于不败之地。我们都是和本人竞走的人,必要跑得比今天的本人更快。
但是对于JAVA技术类的学习,我觉得大课堂反而会影响自身独立思考的过程,因为上课的时候,老师讲课的速度很快为了不遗漏要点,通常会仔细的听, |
|