一:Java语言学习
对线程(thread),串行化,反射,网络编程,JNI技术,容器(Map,List, Iterator), 类加载器
(ClassLoader),输入输出流,垃圾回收机制, 有比较深入的了解,最起码做过项目应用。有
过Java项目的性能优化经验,最起码掌握一种性能监视工具的使用,熟悉JVM参数,最起
码知道可以在JVM启动时指定不同垃圾回收机制,以及不同垃圾回收机制之间的
差别,熟悉JVM参数优化。
二:J2EE方面
最好知道JDBC规范是怎么回事情,面对Oracle数据库如果告诉你JDBC驱动不能用了,你
还知道有OCI驱动可以。掌握常见的SQL语句,熟悉JMS, JNDI等组件,掌握一套web开
发模式,从前台到后台,有能力整合好这样的框架。理解并掌握MVC思想,像SSH已经实
现了MVC的分层,几乎不需要你自己再实现,假设你开发一个简单的Swing程序,你能MVC
就说明你真的掌握了MVC的精髓。有能力在J2EE前端开发中构建自己的MVC模式,知道
什么是WEB2.0,知道什么是SOA, SaaS, SaaP等含义
三:理解并能合理运用设计模式,UML建模
知道并理解设计模式中蕴含的几种基本原则如:里氏替换原则, 开闭原则,合成复用原则,
依赖倒置原则有很好的理解,并能举例说明。对常用的设计模式如工厂模式,单例模式,观
察者模式,责任链模式,桥接模式等知道灵活运用,明白什么是回调(Callback)。最后用一位
高人话来总结设计模式,它是为了让软件更容易被别人读懂,更容易维护而产生,设计模
式本质是程序员之间的交流,如果A用工厂模式设计一个模块B来接替,A只要说该模块是
工厂模式实现,B维护起来应该容易得多,所以设计模式是关于交流,不关于代码。切忌滥
用设计模式。学会使用UML建模工具至少熟悉一种URL建模工具。
四:注重用户体验,掌握KISS原则,知道欧卡姆剃刀原则
顾客就是上帝这个口号我们已经喊了N年了,程序员的劳动成果最终也需要转换为服务提
供给客户,用户体验至关重要,常常看到的场景是功能实现了,软件很难使用,程序员有个
很充足的理由我不是美工,其实注重用户体验跟美工八杆子也打不到一起,FoxMail的成功
在很大程度是用户体验的成功,友好,清晰的用户提示,强的容错与纠错设计是获得好的
用户体验的不二法门。傻瓜相机顾名思义傻子都会使用,这个就著名的KISS原则(Keep it
simple and stupid)意思是UI设计要简单明了,傻子一看就知道怎么用,想想我们做出来的
东西,对照说明书都不知道怎么用。另外一个就是最著名的例子IPhone手机外观设计,是
典型的欧卡姆剃刀设计原则来完成人机交互。
五:自动测试与软件配置管理(SCM)实现
知道什么是软件配置管理,知道Hudson - http://java.net/projects/hudson/运用该工具SCM,
知道怎么获取测试代码覆盖率, Java有效代码行数(NCSS),完成firebug, JDepend等工具
集成ant/maven。熟悉并注重在开发过程中使用JUnit单元测试,理解白盒测试规范。
六:熟悉常见的网络通信协议
对HTTP协议,知道POST, GET的区别是什么,阅读过HTTP相关的RFC文档。学会使用sniffer
工具查看数据包,帮助查找与调试程序,知道TCP与UDP的区别,知道并理解E-Mail发送
与接受的协议如SMTP, POP3,IMAP等协议,了解MIME与Base64编码。知道组播是怎
么回事情。
七:面向市场,永远对新技术保持渴望
计算机技术的发展日新月异,做为IT行业的软件开发人员要不断的给自己充电,更新自己
的技术与时代保持同步,同时还要面向市场,华为总裁任正非说过-“华为的技术革新必须面
向市场”,作为程序员同样要有市场意识,很多人都后悔没有在android刚出来的时候加以
关注学习。那些很早关注android开发技术的很多程序员因此获得丰厚回报。如今HTML5
得到越来越多的浏览器厂家支持,你是否已经跟上脚步,开始学习。