1、 泛而不精
这是一些程序员的问题。大家看现在的程序员的简历,大部分的掌握的语言都是:精通VB,VC,JAVA,Delphi。其实一个人真的能精通这么多语言吗?其实大部分都是粗通罢了,能和编辑器画些东西,然后以用些别人的组件,写一些代码罢了。可是真正要用起来时问题一大堆,哪种语言都懂,哪种语言都弄不好,写出来的软件别人无法看懂,修改维护问题多多。
这类懂的组件一般都很多,Struts出来马上学,EJB出来马上学,什么都是好的,什么都是要学的,可是就是没弄懂为什么要学这些东西,懂的也是书上说的,这些符合CVS架构,开发维护起来简单等表面的东西。俗话说的好:有利必有弊。写这些东西的书当然不会写这些东西有什么不好,这些都要靠自己来判断。我们解方程式的时候都会判断方程的定义域再来求解,只有在指定的范围内解法才有效,出了这个范围解法就完全没作用了。还没弄清使用的环境需求就盲目使用只能导致编写出的程序运行更慢,维护更难等问题。
2、 基础不扎实
很多的程序员对语言都懂几种甚至更多,可是对程序要用到的一些计算机基础根本不懂。比如:计算机怎么存储时间、能存储的时间有多长,整数型有多大,在计算时会不会溢出,3/2得几,3./2会得多少,各种语言怎么分配内存等等。这些问题都不懂怎么能写出好程序。
3、 寻根究底
跟上面一条相对,对一些不重要的组件经常喜欢寻根究底。这样花了大量的时间把这些组件里的运行机制,算法弄清楚,而这部分对程序的影响往往并不大。虽然弄清这些组件比较有成就感,可是花费了大量的时间,以后很可能再也用不着,做了大量无用功。所以对一些不重要的组件只要对程序影响不是很大的,随便找一个组件知道怎么用,用了就算了。
4、 喜欢使用新组件
一个新组件出来,往往宣传会做得很好,会吸引大量的人的眼珠。对新的观念、新组件我建议只要了解期运作的大概的框架,使用的新技术以及进行一些简单的分析就行了,不必进行深究。因为这些新组出来后经过测试或用户使用后,经常会作出大的修改。要使用的组件一定要是成熟,稳定的,免得以后维护困难。而这些新的组件也很可能你永远也用不着,或者是你想用时已有更好的组件出现了,花时间在这些组件上是很不理智的问题。(不过为了应聘工作,多了解一些流行组件也是有必要的)