Skills required for a senior java engineer

Proficient in java basics, advanced java programming, and common java design patterns

macro aspect

1. JAVA.

If you want to become a JAVA (senior) engineer, you must learn JAVA. Ordinary programmers may only need to know some JAVA syntax structures to cope with. But to become a JAVA (senior) 
engineer, you need to do a more in-depth study of JAVA. You should study more about JDBC, IO package, Util package, Text package, JMS, EJB, RMI, threads. If possible, I hope you 
can browse all JAVA packages and know the approximate API, so that you will find that many functions you want to achieve can be achieved through the JAVA API, so you don't have to spend too much brains. .

Second, the design mode.

It's actually easy to write code, and I'm sure you feel the same way. But how to write well is more difficult. The word "good" includes code reusability, maintainability, extensibility, etc. How to write good 
code often relies on some design patterns. Of course, long-term code experience accumulation, as long as you pay attention, will make you form your own code style. I believe that your code is also more in line with code reusability, maintainability, and scalability. 
But since the predecessors have summed up the experience for us, why don't we step on the shoulders of the predecessors?

3. XML.

It is almost impossible in today's systems not to use XML. XML is very powerful, it can do data conversion, system configuration, and even save your system business data. So you must understand 
XML, including its syntax, structure. You also need to be proficient in using some APIs for parsing XML, such as JDOM, SAX, etc. Because in our general projects, XML often plays 
the role of system configuration information, you need to use these APIs to parse the configuration information and develop a perfect project .

4. Be proficient in using one or both frameworks.

"Framework will have a lot of reusable code, good hierarchical relationship and business control logic, framework-based 
development allows you to save a lot of development costs." I hope you can be proficient here, and more hope that you can understand the idea of ​​​​the framework through the use of the framework. In this way, when you develop a project, your thinking will be broadened. For example, you 
will think of separating SQL statements from your JAVA code. For example, you will consider configuring your business logic into XML or database, so that the whole project can be easily expanded. .

5. Familiar with mainstream databases. In fact, some really big projects are made by someone specializing in the database, but often many projects require that you, as a (senior) engineer, also participate in the design of the database and the writing of SQL. Therefore, in order to 
better contribute to the country, it is recommended that you learn more about some mainstream databases, such as SQLSERVER, ORACLE, multi-connection SQL, stored procedures and triggers. If you are not from a " 
class , you also need to add some knowledge of database principles.

Six, proficient in one or two WEBServer.

Because as a JAVA engineer, especially if you 
want to become a senior JAVA engineer, you inevitably have to deploy your project to WebServer, and only when you are proficient in a WebServer can you use its 
resources to the maximum, which is often Saves a lot of time and effort.

Seven, UML.

You definitely want to be a senior engineer, so it is necessary for you to know or be proficient or proficient in UML, depending on how determined you are to become a senior engineer and project manager. In a more formal development team 
, UML is a communication tool for discussing projects. If you want to be a software engineer, you must at least be able to understand it. If you want to be a senior engineer, you must be able to describe your understanding of the project through it. , although this is not required, 
it is important.

8. Analyze the problem from a high level:

这不是一个知识点,也不是通过书本就能学得到的。只所以提到这一点,是因为我比您还着急,我希望您更快的成为一个高级的软件工程师,而 
不是一个一般的软件工程师。希望您在工作中多向您的系统分析员、需求分析员、系统设计员学习,多站在他们角度上去看您在开发的项目。在最好在项目之初先在 
您的脑海里对项目有个大致的分析、设计,然后和他们进行比较,找找差别,想想缺点。

九、 工具。

您在这个阶段可能接触到不同的工具了,尽管您还需要使用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进行开发

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.软件工程,项目管理


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324648593&siteId=291194637