一个高级Java开发程序设计人员年薪在40万以上应该具备什么技能?一年40w的工资,税前400000/12左右,月收入超过34,000w;一年的税前年薪要50w起,因此税前月薪为42,000元,每月可得42000元以上,税后月薪30K左右,实际上能赚到30000元,那么一年的税后工资35W+5W公积金差不多就是40w的年薪。
就拿到40万的薪水,高级Java开发程序员需要掌握什么技能呢?需要掌握的宏观方面的技能Java开发能力.设计模式.XML.精通一两个框架.熟悉主流数据库.精通WEBServer.UML.高度分析问题.工具;微观方面.CoreJava部分.Java部分.Java高级部分.前端基本技能.JSP+Servlet开发.MVC设计模式,原则,还包括Struts.SSH框架.缓存技术的session&cookie等相关框架。
一、宏观方面。
1.JAVA(高级)
要成为JAVA(高级)工程师当然要学习java。一个普通的程序员也许只要了解一些JAVA的语法结构,就能处理它。但是要成为JAVA(高级)工程师,你要对JAVA做一个比较深入的研究。对于JDBC.IO软件包.Utilbundle.Text包.JMS.EJB.RMI.Three。如有可能,希望您浏览JAVA的所有软件包,了解大概的API,以便您能够发现,实际上您想要实现的许多功能,通过JAVA的API都可以实现,不用费心费神。
2.设计模式。
事实上,编写代码很简单,相信你一定也有同样的感觉。但是怎样写好却更难。这种“好”字包含了代码的可复用性、可维护性、扩展性等等。编写好的代码常常需要借助一些设计模式来完成。一定是长时间的代码积累,只要你用心,会让你形成自己的编码风格。你相信你的代码也更符合代码的可复用性、可维护性、可扩展性。但是,既然前人已经为我们总结了经验,为什么不让我们再向前走呢?
3.XML。
目前,不使用XML几乎是不可能的。XML的功能很强大,能进行数据转换,进行系统配置,甚至保存你的系统商业数据。所以必须要理解XML,包括其语法和结构。此外,还需要更熟练地使用诸如JDOM、SAX等解析XML的API,因为在我们通常的项目中,XML通常充当系统配置信息的角色,您需要用它们来解析这些配置信息,开发出完美的项目。
4.熟练运用一个或两个框架。
正如《如何成为java初级程序员》一书中提到的,“所有框架将包含大量可复用的代码,良好的层次关系和业务控制逻辑,以及基于框架的开发让您节省大量开发成本。但是在此,我希望您能够熟练掌握,并且希望您能够通过框架的使用理解框架的概念。通过这种方式,您在开发一个项目时思路将变得更宽广,例如,您可能想要将SQL语句与JAVA代码分离开来,并且还可以考虑将业务逻辑配置到XML或数据库中,使整个项目易于扩展。
5.熟悉主流数据库。
事实上,真正的比较大的项目都有人专门做数据库的,但是常常要求你作为(高级)工程师的你还需要参与数据库的设计和SQL的编写。因此,要想更好地为国家做贡献,最好还是多了解一些主流数据库,如SQLSERVER,Oracle,多连接SQL和存储过程以及触发器。假如你不是Coffeed出身,你也需要对数据库原理有所补充。
6.熟悉一个或两个WEB服务器。
虽然我又谈到了如何成为java的初级程序员,我还是要强调你必须要熟练掌握其中的一两个。由于身为Java工程师,特别希望成为java高级工程师,你必然要在WebServer上部署你的项目,并且只有在掌握一种WebServer的情况下,这样,你就能充分利用自己的资源,这通常能节约大量的时间和精力。
7.UML。
你一定想成为一名高级工程师,所以你必须熟悉UML,或者是精通UML,这取决于你要成为高级工程师和项目经理的决心。UML是一个沟通工具,在比较正规的开发团队中,你要想成为一名至少能够阅读的软件工程师,你要成为一名高级工程师,你要用它描述你对这个项目的理解,虽然这并非必需,但却非常重要。
8.站在高度分析问题。
那不是一个知识点,也不是从书本上学到的。只是提及这些,因为我比你们还急,我希望你能更快地成为一名高级软件工程师,而非一个普通的软件工程师。但愿你能多从你的系统分析师,需求分析师,系统设计人员的角度多学一学,从他们的角度,看看你正在开发的项目。最好在项目开始的时候,首先在你的头脑中对这个项目进行一个粗略的分析.然后和他们比较,找出区别,考虑一下缺点。
9.工具。
虽然你也需要使用JB或IDEA,但是对于ROSE、Together等人来说,你可能会在这一阶段接触到不同的工具,虽然你也需要使用JB或IDEA,但是对ROSE、Together有更多了解,因为你要绘制UML。别再喜欢Dreamweaver这样的HTML编辑器了,这些JSP页面是由初级程序员编写的。
二、微观方面
1.CoreJava部分
这是最基础的,对于一个java高级开发/设计人员,你需要对这一部分达到精通的水平,重点内容如下:
a.面向对象编程思想(封装继承多态接口)
b.字符串处理
c.java.lang包,java.util包等常用包
d.java异常处理
2.Java高级部分
a.JavaI/O流
b.Java多线程技术
c.Java网络编程
d.JavaSwing
后两项可以了解即可,如果项目需要可以深入研究
3.前端基本技能
*HTML+CSS网页开发
*Jquery
*浏览器兼容性CSShack(了解)
4.熟练使用JSP+Servlet进行开发
5.MVC设计模式,原理,以及相关框架,如Struts
6.SSH框架
7.缓存技术session&cookie
8.熟练使用一种以上Java开发工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/Netbeans)
9.熟练使用XML
10.Java设计模式
工厂模式,单例模式==
11.Java反射机制
反射的各种用法
12.了解或熟悉C,C++,.NET
14.数据库oracle必学,其他最好了解一种以上(MySQL,sqlserver,access==)
oracle:视图,索引,存储过程,触发器,游标,常用函数==
15.数据库原理
事务的原理,锁机制,表连接,复杂查询语句(工作经验),性能调优,锁表以及解决方案==
16.JDBC,连接池
17.Ajax,反向Ajax
18.HTTP协议,request和response的原理,HTTPstatus(了解常用的),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.了解图灵/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.版本控制工具,CVSVSSSVN
39,JSON技术,JSON+AJAX
40.分页技术,最好自己实现过不仅仅是用过要知道原理
41.JavaMail
42.Java读写txt,excel,JXL技术
43.JVM原理,JVM内存管理,GC,Java堆栈池
44.熟练使用下面的工具:
office办公软件,word,excel,ppt等
plsql,sqldevelop数据库开发工具
outlook大公司都用
ue编辑器
浏览器控制台,调试
SHH/PUTTY远程
45.UML建模工具RationalRose等
46.使用log4j
47.使用过开放Api如百度,腾讯街景,新浪微博等
48.页面静态化技术(伪静态页面)
49.报表技术,使用过报表制作工具,如水晶易表。
50.定时任务,如Springbatch,学会自定义batch任务(不适用第三方工具)
51.了解uuid
52.b/s和c/s架构
53.正则表达式
54.了解jndijms
55.ERP
56.UNICODE编码,乱码解决
57.开源网络编辑器,如ckEditor
58.二进制原理
59.使用过,了解过开源论坛框架,如discuzz
60.GWT,Closure框架
61.了解大数据,云计算
62.搜索引擎搜索技术
63.软件工程,项目管理
Java行业每年只有三十万元的收入,也有五年,甚至三年都可以升任高级工程师.甚至架构师都可以拿到30W+.50W+的年薪。但是大部分同行还是十年都不能达到30W,主要是没办法学习,希望获得专业技能方面的提示可以选择图灵Java开发优质课程,通过在线学习掌握更多技能,减少工作岗位上加薪的时间;通过课程学习来提高学习效率,我们在自学时只需花费十分之一的时间就能迅速提升,把握网络前沿企业的核心技术。