论坛首页 Java企业应用论坛

我的编程经验梳理

浏览 3336 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-20  

本人不才,在编程上也有三年多时间了呵呵,具体的说,在学校的三年里大概有两年多时间编程,现在则是职业coder了,这个月是我入职五个月的日子,在这里梳理一下我的编程思路,同时也做一下总结,同时也希望跟大家交流一下,互相提高。毕竟,大家都想提高自己的薪金,呵呵。

       首先,我觉得在code中,学习能力是最重要的东西,毕竟新东西总是出现的太多太快,这就需要不断学习。而学习这些东西时也有一个学习速度和把学习到的东西迅速应用到当前项目中的问题,这就是知识掌握速度和知识转化为应用的问题。以前在学校的时候,我在接触一个新东西时,一般是买一本这方面的书,然后照着里面的例子做一些,比如Hibernate、Spring之类,这样对这个东西就会掌握比较全面和深刻一些,在遇到一些问题时也会迅速判断出问题出现在什么方面,但是速度上会比较慢些。后来慢慢地就是到网上找些材料看了,尤其是一些网站会提供一些get start一类的入门材料,耐心看下去,也会迅速掌握,但是我觉得这种方式实际上还是有些片面的,因为get start的材料才注重入门,深入一点的东西和基本原理都不会讲,现在我一般是会先下载一些sample code,先看看这里面的代码,然后再带着不懂的地方去看get start材料。在我接触的人中,有些是有着七八年工作资历的大牛(说他们牛一点都不过分,呵呵,不少是以前公司的技术总监)们,他们则更牛了,他们怎么学习新东西我不知道,但是我知道他们在遇到什么问题时,会直接去看源码,甚至时间充裕一点的话他们也会把源码大概看一遍,例如我的PM就把Hibernate、Spring之类的源码都通读了,在这一点上,我觉得还是有差距的,应该向他们学习,多读源码。
      其实在学习新东西方面也是有知识迁移的,如果你本身知识就比较少,什么都是新接触的,那么自然会比较慢。如果你学习过的东西已经很多了,那么再接触新东西时一般会比较快些。

   再者,在Code中就是调试了。这方面我觉得Robbin定的“提问的智慧”上说的很对,很多问题都是由于粗心导致的,“比如说多写了一个空格,用=判断相等,关键单词拼写错误,大小写敏感等等。”,这些问题的确是别人帮不了你的,需要自己的用心和耐心。记得当时刚开始编程时,大师兄经常帮我们调试,发现最多的其实还是这类问题,在这里再次向大师兄谢一个。
      一般而言配置性的信息更容易出现拼写错误,因为如果编辑器好的话,源代码基本的拼写错误基本上是不会有的,但是用=判断,在Eclipse中我也遇到过了呵呵(汗一个),在出现问题时,首先是细心的检查有没有拼写错误。,昨天晚上还遇到这么一个问题,只是因为我引用变量时忘记了写{},耗掉了我5分钟的时间。
     一个减少这种低级错误的方法就是尽量不要copy 大段代码,尽量看清其中的逻辑后自己写,这样可以避免很多变量问题,同时也可以在code中思考,有利于发现问题和重构。
     如果一个问题没有见过,那么我一般就会到google上去搜索了,我一般喜欢用google.com,而不是google.cn来搜索,因为这样会查出来更多的内容,尤其是Websphere之类的问题(都快被websphere搞疯了,动不动就需要重启项目,甚至是server,而且这个玩意(WPS)一起来就需要四五百M内存,整一个破玩意,WAS还要好些)
    还有一个需要注意的是在编程时尽量要专注,记得刚才做过什么,这样在出现问题时可以迅速排查见过一边调程序一边看新闻的,也见过专注着盯着无聊的console message的人,一般而言,后者更能迅速发现问题所在。

   还有就是要备份了。问题可能随时出现,尤其时越紧张时,越会出现一些问题,这时候解决的代价相当高。所以当build好一个基本可用的应用后,我就会export出来,而不是等到所有功能都完善了才export出来一个备份,其实这也是一个milestone,以后如果有问题,起码可以迅速恢复到这种状态,不至于不可收拾。另外我觉得SVN、CVS之类的代码管理工具实在是太有必要了,我个人的感受时,如果写代码,就尽量用这些东西管理,除非你写code是为了玩。当出现不问题时,起码你还可以会后退,给自己留一个后路,不然,当你调试不出来时,有时会很难堪的。当然,这可能也和我debug能力不强有关,有些人则是在遇到问题时一往直前,直到解决,而我则是先后退一个,看看两者到底有什么差异。
    在debug方面比较有感触的是,很多debug经验都是在深夜里与程序亲密接触时得到的,是用程序员的心血和汗水以及睡眠时间换来的,我所遇到的那些高手大部分都如此,在深夜里,伴随的只有硬盘的轻吟和屏幕上频出的Exception和error,当然可能也会有弥漫的咖啡香味,这,是不是也是程序员水平提高的一条道路?

    先写这么多吧,有空再慢慢加。

   发表时间:2007-10-22  
很多debug经验都是在深夜里与程序亲密接触时得到的,是用程序员的心血和汗水以及睡眠时间换来的,我所遇到的那些高手大部分都如此,在深夜里,伴随的只有硬盘的轻吟和屏幕上频出的Exception和error,当然可能也会有弥漫的咖啡香味,这,是不是也是程序员水平提高的一条道路?

写得很美 :)
0 请登录后投票
   发表时间:2007-10-22  
        有点标题党嫌疑,应该不算编程经验吧,一些代码人生的感悟
0 请登录后投票
   发表时间:2007-10-22  
两个阿布。。。不过akane的图比较像阿布。。。

看了江南白衣的blog:体会到大牛就是不断的折磨自己。
0 请登录后投票
   发表时间:2007-10-22  
我的提高之路就是16个字


大胆设想 小心求证 精益求精 多多动手
0 请登录后投票
   发表时间:2007-10-22  
本意是想按照标题写的,但是写着写着就忍不住有些感慨了
0 请登录后投票
   发表时间:2007-10-22  
哈哈。境界不同啊。

等你看到对象的时候看到的不是对象,而是数据块,你就有了小成。
当你看线程的时候不只看到1个run,而看到了很多context,你就可以号称牛头了。
当人家还在为语法,框架而争论不休的时候,你很奇怪的觉得他们都是一个样子的时候,你就成仙了。
当搞了好多年java的你突然发现原来ARM+嵌入式linux也是不用怎么学就会了的时候,你就可以跟刚开始学编程的小朋友吹吹牛啦,当年我也是这么过来的.......

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics