回顾ext学习过程的一些感受(一)初学者

    学习一种新技术,或者更简单的,熟悉一套API都有一个非常难过的时期,这个时期就是在门外徘徊的时候。面对浩如烟海的文档、冗长的例程或者面对残缺的文档和死活调不通的例程,郁闷的情绪积累到一定程度,大概死的心都有。可是,一旦入门,进展就势如破竹,一通百通。和武侠小说中的任督二脉很像,想练绝世武功,这一关必过。

     很幸运,当时选Ext作为客户端开发的支持库是一个不错的抉择,因为和dojo,moon等库相比,文档全、例程质量高,同时也足够全面,一般的需求无需再借助其他的组件库。(当然,总是有特殊需求的,比如客户要求输入日期精确到秒,只好用了其他的控件,地图控件也是用的OpenLayers的库)

  学习的第一步就是收集资料。
   资料在于精而不在于多。所谓精有这样两个含义:

  精简。不要一上来就用XX大全XX完全参考之类的大部头吓唬自己,学中文这么多年,也没见过有多少人背辞海,虽然上面都是好东西。少的东西容易看完,也容易有成就感,一开始最重要的是坚持,就别打击自己了。

  精确。我最恨带有错别字的正版书,虽然网上的错字连篇,那是快餐文化,书是要传世的东西啊。其实更让人气愤的错的代码。你一个门外汉,想个通过看书学点东西,结果他教你的是错的。要是学到错的也好。可计算机这个东西偏有个死脑筋,你输入错的他不会也骗你是对的,于是,你拿着错代码,死活调试不过,然后坚信是计算机CPU进了水。唉!我曾经就在一本技术书上抄了几句代码,调试了两天,结果丫连变量定义方式都是错的。

  学习资料,大概只有三个:自带的文档自带的例程用户论坛,有的还有用户邮件列表,用户邮件列表我是不太习惯,订阅之后经常没有时间看(谁让我什么活儿都干呢?)。有的文档没有中文的,有的有,但我还是推荐看官方的文档,即使它是法文德文编写的(现在大概没人这么夸张,推广自己的东西还敢不用英文的可能只有日本人了,今天刚看见一个工控电子镜头上面赫然印着computar),学语言呗。对于翻译的文档,我持保留意见。国内多数文档中文化工作都是找个高校老师带着几个学生用金山快译或者东方快车(我还真见过比较好的翻译软件,但是他们不用啊)堆砌出来的, 不论MapInfo还是ESRI都一样,术语、关键词翻译不准根本不算什么问题,更可怕的我都见过。我坚信,没有比产品、项目自带的文档更具有权威性和全面性的了。这应该没什么可争论的了。如果文档确实不够,那就有足够的理由放弃这个产品,即使是开源的。对于初学者,陷入源代码而迷失方向,等同杀人——谋杀时间。

     自带的例程,从最简单的开始。世界上只有一个没有bug的程序,就是hello world。无论从哪里开始,使用新技术hello world,总是一个好的开始。如果没有简单的程序,就将最简单那个删掉不必要的内容开始调试。编程的学习是个实践的过程,检验程序的唯一标准是编译器或解释器说ok。第一个调通,然后逐步加代码,一句一句的。如果一下子加入太多,就会找不到出错的地方。Dr. House说Everybody lies.编译器也不例外,而且绝大多数是lie,如果你真的听他的,你永远不会找到错误的所在。相信自己,拉住自己的缰绳,一点一点来。

     Ext是js的,项目的要求浏览器是IE,微软有个脚本跟踪器,但有和没有没有太大区别。如果一个关键字符错了,比如丢了括号,逗号或者非字符串中用了中文符号,整个页面就不会出来,所以一步一步做比都写完了集中调试要省心,虽然时间不一定省。

     最后是论坛,网络时代,任何东西几乎都能搜到,甚至我的毕业院校、我的电话号码,对于大家都用的软件,他们的小纰漏更是到处是了,上网搜吧,和你遇到相同问题人总会有的。You are not alone!常住一个觉得比较好的论坛,提问前查看精华区搜索旧帖。还有就是《提问的智慧》。官方论坛是最好的,因为那里一般都有专业人员解决用户问题,甚至你可以遇到核心开发人员。

  在Ext学习过程中,我找了很多中文论坛,但最终发现,文档是足够用的。国内关于Ext的资料只有一家网站做得不错,他们不但提供了非常好的非常系统的入门教程,也提供收费的咨询服务。收费也不高。大家有兴趣去搜吧,我就不在这里提名字了,免得有广告嫌疑。我当时确实有冲动要买一本书。 不过后来想想,我掌握最好的技术都是没有买过书的,而我买过技术书籍的技术,直到现在还都放在书里,于是也就打消了念头。

关于技术书籍

     书是可以买,但说句不中听的话,现在国内出的中文技术参考书籍不仅看的寥寥,而且特别贵,买了只能用来放着,然后当废纸卖掉。电子时代了,看电子文档了。总有人给自己借口说纸质的书方便,可以随时看。乖乖,你是在做程序哦,守在机器每天的时间有多少?还剩多少时间翻书?眼前是键盘显示器,有地方放书么?何况还得翻书查找,你在计算机里找东西也是一个文件夹一个文件夹翻么?放弃老旧的方式吧!何况电子文档更新更免费,省下钱买点人文书籍看看,补补文化知识才好。

第二步就是实践。

     编程是一门实践的技术,编译器(解释器)是检验程序的唯一标准。(当然这个标准是非常低的,是对初学者而言的,即编写正确的代码。)所以不要大骂编译器或者怀疑计算机有问题(中毒者不在此列),检查程序,一句一句调试。这个前面已经说过了。

  这部分要说的是另外几个方面。

多头并进。

     学习一个产品或者是一套程序库,基本上都是依托在一种编程语言的基础之上的。当然有些产品是有多个语言或平台版本的,尽可能选择自己熟悉的语言平台。当然,这个选择多数时候是身不由己的,如同我手头的这个项目,合作学院的教授一上来就说,让他们用VB……,可这个系统是Java的啊,虽然系统异构 并不是什么不可能的事情,可做核心算法怎么也得C++啊。于是,现在这些师弟们都在Java。学习代码的过程,要有意识的将语言本身和程序库之间做一个区分,那些方式是语言的那些是程序库的,这些特征不好说,但能够体会到。一定不要为了学语言而去学语言,没有程序库的支持,语言是无力的。

有个目标。

     学东西在项目里学最快,这是我的感受。一则学以致用,很有成就感,再则,有压力,学东西也快。而且,有目标,也就有个顺序,偌大的程序库,先从哪里开始?没有目标就如同没头的苍蝇乱撞,到头来头晕目眩,迷失了方向。在项目里,今天做需求,要求做界面,先把GUI搞定,明天讨论流程,把业务建模方式了解一下。后天开始处理数据,把数据库访问学起来。这样从头到尾都有目标,学习起来也就不会盲目了。

     在现在这个项目中,Ext取代了以前的PPT,visio成为和用户交流需求的方式,甚至配合编的演示数据让用户看到动态的操作过程,这是我一开始没有想到的。后面我再专门说这个事情。

代码自省。

     时不时地回头来看自己前一段的代码,会不会有些内容觉得写得不好,或者本来不该这么写,或者有更好的方法解决。孔子的道德观念我不一定赞同,但是他说温故而知新却有一定的道理。经常修改、优化自己的代码可以将新学到的内容加深印象,同时,看到自己进步,也是件不亦乐乎的事情。

  Ext是JavaScript的库,里面用到了很多Js的面向对象的变量定义方式,而且写得相当精简。最初看上去很难理解,因为我Js也不熟悉,但是到现在,发现自己些代码也不规规矩矩的写new Ext.……云云了而是直接var panel={xtype:'panel',……,大概程序员都是一样的懒,所以才会有这么多库吧。

第三步,也是最重要的一步,就是传承

  通过学习,菜鸟终成高手,或者正在这个过程中打拼。也许拼了三个小时,终于弄明白了回调是个怎么回事,或许查了无数资料,编出了一套算法。这个时候除了长出一口气,泡杯奶茶休息一下之外,还要抓紧时间把遇到的这个问题,从现象到原因到解决方法都记录下来。不得不承认,计算机用多了,大脑记性是不那么好了,但这些记录还是要有的,如果一个问题要费劲全力解决两遍,那岂不是自杀?另外,把这些内容放到自己blog和论坛上。 即不要因为问题解决,而且觉得简单就不好意思放到外面给大家看,不要忘了,门外还有很多人围着墙乱摸找门把手呢。也不要觉得这个成果是我的,我得藏着。你见过有人买PC收藏的么(确实有,不过正常人不会的)?技术不保值,交换才有价值。

  我现在的这个团队是依托学校的。铁打的营盘流水的兵,除了几个常年坚持的几个人之外,每年都有新面孔近来,每年也都有人毕业离开。传承技术是一个时时都要做的工作,而且经常一个人技术上成熟,能够独当一面的时候,就基本上面临论文毕业了。头儿总是跟我们说,我也理解。学校,教书育人而已,特别是现在的高校,能在其中学到某些谋生的技能就已经很不错了,有些人几年毕业之后白得跟张纸似的。

  关于学习,就是想到这么多,第二篇,我想写一下Ext在这个项目中发挥的作用,以及开发流程上的体会。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值