⼀个⾼级java⼯程师需要具备什么能⼒和技术
宏观⽅⾯
⼀、 JAVA。
要想成为JAVA(⾼级)⼯程师肯定要学习JAVA。⼀般的程序员或许只需知道⼀些JAVA的语法结构就可以应付了。但要成为JAVA(⾼级) ⼯程师,您要对JAVA做⽐较深⼊的研究。您应该多研究⼀下JDBC、IO包、Util包、Text包、JMS、EJB、RMI、线程。如果可能,希望您对JAVA的所有包都浏览⼀下,知道⼤概的API,这样您就发现其实您想实现的很多功能,通过JAVA的API都可以实现了,就不必⾃⼰费太多的脑经了。
⼆、设计模式。
其实写代码是很容易的事情,我相信您也有同感。但如何写得好就⽐较难了。这个“好”字包括代码可重⽤性,可维护性,可扩展性等。如何写出好的代码往往要借助⼀些设计模式。当然长期的代码经验积累,只要您⽤⼼,会使您形成⾃⼰代码风格。相信您的代码也⽐较符合代码的可重⽤性,可维护性,可扩展性。但既然前⼈已经给我们总结出了经验,我们何不踩着前⼈的肩膀前进?
三、 XML。
现在的系统中不使⽤XML⼏乎是不可能的。XML的功能⾮常强⼤,它可以做数据转换、做系统的配置、甚⾄可保存您的系统业务数据。因此您必须了解 XML,包括它的语法,结构。您还需要⽐较熟练的使⽤解析XML的⼀些API,⽐如JDOM,SAX等,因为在我们⼀般的项⽬
中,XML往往担当系统配置信息的作⽤,您需要⽤这些API解析这些配置信息,开发完美的项⽬。
四、精通使⽤⼀种或两种框架。
“框架都会有许多可重⽤的代码,良好的层次关系和业务控制逻辑,基于框架的开发使你可以省出很多的开发成本”。这⾥希望您能精通,更多的是希望您能通过框架的使⽤了解框架的思想。这样您在开发⼀个项⽬时思路会开阔⼀些,⽐如您会想到把SQL语句与您的JAVA代码分开,再⽐如您会考虑把您的业务逻辑配置到XML或者数据库中,这样整个项⽬就很容易扩张了。
五、熟悉主流数据库。其实真正⽐较⼤的项⽬都是有⼈专门做数据库的,但往往很多项⽬要求作为(⾼级)⼯程师的您也参与数据库的设计以及SQL的编写。所以为了更好的为国家做贡献,建议您还是多了解⼀些主流数据库,⽐如SQLSERVER,ORACLE,多连接SQL和存储过程以及触发器。如果您不是“科班”出⾝,您还需要补充⼀些数据库原理⽅⾯的知识。
六、精通⼀种或两种WEBServer。
因为作为JAVA⼯程师,特别时想成为⾼级JAVA⼯程师的您,您不可避免地要部署您的项⽬到WebServer上,⽽且只有当您精通⼀种WebServer,您才可能最⼤限度地使⽤它的资源,这往往可以节省很多时间和精⼒。
七、 UML。
您肯定想成为⾼级⼯程师,因此您有必要了解或熟练或精通UML,这取决于您有多⼤决⼼想成为⾼级⼯程师和项⽬经理。在⽐较正规的开发团队中,UML是讨论项⽬的交流⼯具,您要想做⼀个软件⼯程师,您⾄少要能看懂,您要想做⾼级⼯程师,您要能通过它来描述您对项⽬的理解,尽管这不是必须,但却很重要。
⼋、站在⾼度分析问题:
这不是⼀个知识点,也不是通过书本就能学得到的。只所以提到这⼀点,是因为我⽐您还着急,我希望您更快的成为⼀个⾼级的软件⼯程师,⽽不是⼀个⼀般的软件⼯程师。希望您在⼯作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们⾓度上去看您在开发的项⽬。在最好在项⽬之初先在您的脑海⾥对项⽬有个⼤致的分析、设计,然后和他们进⾏⽐较,差别,想想缺点。
九、⼯具。
您在这个阶段可能接触到不同的⼯具了,尽管您还需要使⽤JB或者IDEA,但能可能对 ROSE,Together要多了解⼀些,因为您要画UML 了。不要再对Dreamweaver等HTML编辑器情有独钟了,那些JSP页⾯让初级程序员去写吧
微观⽅⾯
1.Core Java部分
这是最基础的,对于⼀个java⾼级开发/设计⼈员,你需要对这⼀部分达到精通的⽔平,重点内容如下:
a.⾯向对象编程思想(封装继承多态接⼝)
b.字符串处理
c.java.lang包,java.util包等常⽤包
d.java异常处理
2.Java⾼级部分
a.Java I/O流
b.Java多线程技术
c.Java⽹络编程
d.Java Swing
后两项可以了解即可,如果项⽬需要可以深⼊研究
3.前端基本技能
* HTML + CSS⽹页开发
* JavaScript
* Jquery
* 浏览器兼容性 CSS hack(了解)
4.熟练使⽤JSP + Servlet进⾏开发
python转java代码
5.MVC设计模式,原理,以及相关框架,如Struts
6.SSH框架
7.缓存技术 session & cookie
8.熟练使⽤⼀种以上Java开发⼯具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟练使⽤XML
JDOM w3c.dom SAX
10.Java设计模式
⼯⼚模式,单例模式 ==
11.Java反射机制
反射的各种⽤法
12.了解或熟悉 C, C++, .NET
13.熟悉JDK的配置,环境变量
14.数据库oracle必学,其他最好了解⼀种以上(mysql,sql server,access==)
oracle:视图,索引,存储过程,触发器,游标,包,常⽤函数 ==
15.数据库原理
事务的原理,锁机制,表连接,复杂查询语句(⼯作经验),性能调优,锁表以及解决⽅案==
16.JDBC,连接池
17.Ajax,反向Ajax
18.HTTP协议,request 和 response的原理,HTTP status(了解常⽤的),Https原理
19.熟悉Linux基本命令,使⽤过Linux/Unix系统,可以编写shell脚本,可以在Linux上部署项⽬
20.了解windows系统批处理脚本bat
21.了解HTML5,最好学习过
22.熟悉⼀种JS框架,如Prototype
23.J2EE原理熟悉⼀种以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉⼀门脚本语⾔,如python ,ruby
26.了解php/ asp
27.了解ftp协议及原理
28.熟练使⽤Junit测试,熟悉Mockito等测试⼯具
29,熟悉javac,javadoc,native,native2ascii等常⽤命令
30.熟悉常⽤的排序算法,如冒泡排序,快速排序等,最好⾃⼰研究过⼀些的算法。
31.了解Flex(不学也没关系)
32.了解敏捷开发模式
33.⼯作流workflow⾄少⽤过⼀种,如OSworkflow,了解原理
34.使⽤过VPN了解其原理
35.熟悉jstl表达式和el表达式
36.熟悉webservice,WSDL,SOAP
37.图⽚处理,如图⽚上传,预览,限制⼤⼩等
38.版本控制⼯具,CVS VSS SVN
39,JSON技术,JSON+AJAX
40.分页技术,最好⾃⼰实现过不仅仅是⽤过要知道原理
41.Java Mail
42.Java读写txt,excel,JXL技术
43.JVM原理,JVM内存管理,GC,Java堆栈池
44.熟练使⽤下⾯的⼯具:
office办公软件,word,excel,ppt等
plsql,sqldevelop 数据库开发⼯具
outlook⼤公司都⽤
ue编辑器
浏览器控制台,调试
SHH/PUTTY 远程
45.UML建模⼯具Rational Rose等
46. 使⽤log4j
47.使⽤过开放Api如百度,腾讯街景,新浪微博等
48.页⾯静态化技术(伪静态页⾯)
49.报表技术,使⽤过报表制作⼯具,如⽔晶易表。
50.定时任务,如Spring batch ,学会⾃定义batch任务(不适⽤第三⽅⼯具)
51.了解uuid
52.b/s 和 c/s架构
53.正则表达式
54.了解jndi jms
55.ERP
56.UNICODE编码,乱码解决
57.开源⽹络编辑器,如ckEditor
58.⼆进制原理
59.使⽤过,了解过开源论坛框架,如discuzz
60.GWT,Closure框架
61.了解⼤数据,云计算
62.搜索引擎搜索技术
63.软件⼯程,项⽬管理

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。