您的位置:首页 > 其它

菜鸟到大牛

2010-06-01 20:50 99 查看
什么是菜鸟?

菜鸟就是写java程序分不清楚=和equals的区别。

菜鸟就是写select ... from ... Group By...的时候,select中的字段必须是聚合函数或者在group by中出现。

菜鸟就是不知道什么时候用的是引值对象什么时候是引址对象。

菜鸟就是没有理由地使用类局部变量作为同类两个方法的共享值的传递方式。

菜鸟就是申明对象的时候从来不考虑对象的生命周期。

菜鸟就是定义方法名,变量名,类名的时候,一拍脑袋就随意写上一个牛津字典中都找不到的单词。

菜鸟就是catch了exception去不知道为何要catch。

菜鸟就是只会用log.debug但是从来不知道如何使用log.isDebugEnabled来避免性能问题。

菜鸟就是写一个方法的时候从来不看这个方法有多少行,就一股脑地写下去。

菜鸟就是学会了写一个helloworld的ejb就开始觉得自己很行,但是根本不懂那些在ejb实现类中方法的含义和使用。

菜鸟就是只会和面试官说我精通SSH,但是却连Spring里面对象的几种生命周期管理方式都不知道。

菜鸟就是学会了一门高级语言比如C++或者JAVA就开始鄙视那些还在用VBScript写Excel编程的人。

菜鸟就是会那么一点设计模式,就自认为是架构师开始到处炫耀自己对设计模式是多么熟悉。

呵呵,其实菜鸟的例子还有很多很多,如果你符合上面中的任何一条,那我只能说你还是一个菜鸟。菜鸟的本性就是天不怕地不怕,不知前面的水有多深,路有多险,凭着一股子劲就向前冲,感觉只要有动力就什么都可以做出来。其实任何人刚走这条路都不可能是大牛,都是从菜鸟做起,我也不例外,上面说的这些每一条我都沾边。

那如何来看待菜鸟问题,如何使自己从菜鸟变成大牛?

首先最重要的一点,保持天不怕地不怕的精神,坚信一点就是只有想不到没有做不到。即使遇到挫折也不要放弃。

第二,学会批评和自我批评,学会审视自己。对自己做过的东西,写过的程序,需要适时地回顾,重构,精炼,最好是请经验丰富的人指导。每一次的重构都是一次进步,都是对自己学到的知识进行一次重新组合。我一直坚信一句话,好的程序员回头看他三个月前写的代码都会认为是一堆垃圾。长久坚持,你会慢慢的有一套自己精炼后的库,会发觉程序越写越简单,越写越美观,工作效率也会越来越高。

第三,要能做到深入浅出,程序语言只是一种工具,大部分的时候我们只会知道如何来使用它,但是不会去了解它的一些基本结构和原理。就好像我上面提到的,会ejb的人,不一定清楚ejb的整个生命周期,写java的人并不一定能够知道GC的原理。学习技术尤其是应用技术,还是需要有一个系统的过程,至少这技术的基本原理需要了解,这就是所谓的深入。就好比Spring, Hibernate, 现在马路上随便丢块砖头都有可能砸中会SSH的人,但是他们不知道IOC容器有何优势,AOP切面定义在接口和定义在实现类上有何区别,Hibernate二级缓存的实现架构,Hibernate中如何使用CGLib,Lazy Loading和Non-Lazy的区别,annotation在这框架中有什么好处,等等(你如果这些还不知道,个人建议你下次别和面试管说你精通SSH)。

那什么是浅出呢?浅出就是把握深入的度,技术时时刻刻都在更新,而我们的时间和精力都是有限的,学习一个新技术重点在于掌握它的思想和一种对于这个技术控制和学习的方法,而不是什么东西都要刨根问底太过深入,个人觉得诸如API或者过于低层的东西可以不用深究,例如,搞java的人没必要去了解System.out.println在Windows上对应JVM虚拟机的C代码是什么,Class文件中每一个字节的含义是什么,RMI对应的庄如何实现,Quartz中每一行Thread代码的含义是什么等等。这些对于具体工作意义不是很大,我个人观点就是宏观掌控,特事特行。有了基本的原理和概念,在遇到特殊情况或者具体实现的时候,再有针对性地深入效果是最佳的。

第四,保持谦虚地态度。还是这句话,世界这么大,总归有你不懂的。不要盲目的觉得自己的知识有多高级,别人的知识有多过时。沟通和交流的时候需要时刻保持学习的态度,学习别人,别的技术的长处和思想。即使别人说的不对或者有偏差,也不要盲目的否定,有了一定的事实依据或者熟悉程度后,再做出评价往往会得到对方的尊敬和肯定。

第五,注重细节。这里提的注重细节和深入浅出不同,强调的是,要精益求精。写代码和写情书是一个道理,你花的心思越多,得到的结果自然也越好。我个人是十分看重细节,一个不注重细节的程序员是不可能写出好程序来的。在此,再次希望那些糙哥们,定义类名的时候查查牛津字典,注意动名词的组合,写代码要多敲ctrl+alt+L, ctrl+alt+o (个人是idea的忠实粉丝),方法名超过80行就要考虑重构和抽象,if...else搭把手加一个大阔号...

最后一点,学会思考。菜鸟喜欢冲,大牛爱思考。你可以观察一下周围的同僚,是不是存在这种现象:)。菜鸟喜欢拿来就做,实现了功能就交差,这都是不可取的。思考并不是意味着没有做事,而是为了将要做的事情条例理顺了。例如,我们常常会有一个需求要去改一个已有的功能或者一个遗留系统。盲目的下手最终都会导致各种问题的出现。只有冷静地思考,和对需求的洞察才可以保证此类任务地顺利完工。此外,要勤于写文档,虽然程序员都不喜欢写文档,但是文档确实锻炼一个人思维缜密性的最好方式。个人觉得不一定非要写出论文一样的长篇大论,但是对于建模功力尚不足的菜鸟来说,还是需要在纸面上先做一点功夫,不求形式,只求对思维的整理。

上述都是我个人的一点体会,希望能对各位菜鸟有一定的帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: