Current location - Loan Platform Complete Network - Big data management - What are the abilities and skills required for a senior java engineer?
What are the abilities and skills required for a senior java engineer?

Macro aspects

I. JAVA.

To become a JAVA (senior) engineer definitely need to learn JAVA. general programmers may only need to know some of the syntactic structure of JAVA can cope with. But to become a JAVA (Advanced)

engineer, you need to do a more in-depth study of JAVA. You should study JDBC, IO packages, Util packages, Text packages, JMS, EJB, RMI, threads. If possible, I hope you

JAVA all packages are browsed, know the general API, so you will find that in fact you want to achieve a lot of functionality through the JAVA API can be achieved, you do not have to spend too much of their own brain.

Two, design patterns.

In fact, writing code is a very easy thing, I believe you have the same feeling. But how to write well is more difficult. The word "good" includes code reusability, maintainability, and extensibility. How to write good code

Code is often based on design patterns. Of course, the long-term experience of code accumulation, as long as you pay attention, will enable you to form their own code style. I believe that your code is also more in line with the reusability, maintainability, and extensibility of the code.

But since our predecessors have already given us their experience, why don't we step on their shoulders and move forward?

Three, XML.

Nowadays, it is almost impossible not to use XML in the system. XML is very powerful, it can do data conversion, do the configuration of the system, and even save your system business data. So you need to understand

XML, including its syntax, structure. You also need to be more proficient in the use of parsing XML of some APIs, such as JDOM, SAX, etc., because in our general project, XML often plays the role of system configuration

Information, you need to use these APIs to parse the configuration information, the development of the perfect project.

Four. Proficient in using one or two frameworks.

"Frameworks come with a lot of reusable code, good hierarchical relationships and business control logic, and framework-based development

allows you to save a lot of development costs". Here I hope you can be proficient, more than that, I hope you can understand the idea of frameworks through the use of frameworks. So that you will be in the development of a project when the idea will be open, for example, you

will think of the SQL statement with your JAVA code separately, and then you will consider the configuration of your business logic to the XML or database, so that the whole project is very easy to expand.

V. Familiarize yourself with major databases. In fact, the really big projects are people who specialize in databases, but often many projects require you as a (senior) engineer to participate in the design of the database as well as SQL writing. So in order to

better contribute to the country, it is recommended that you still know more about some mainstream databases, such as SQLSERVER, ORACLE, multi-connection SQL and stored procedures and triggers. If you are not a "class" out of

Body, you also need to add some knowledge of database principles.

Sixth, be proficient in one or two WEBServers.

Because as a JAVA engineer, and especially if you want to become a senior JAVA engineer, you will inevitably have to deploy your project to a WebServer, and only if you are proficient in one WebServer will you be able to maximize its

resources, and this is where you will need to add some additional knowledge. >

Resources, which can often save a lot of time and effort.

VII. UML.

You definitely want to be a senior engineer, so it's necessary for you to understand or be skilled or proficient in UML, depending on how committed you are to becoming a senior engineer and project manager. In more formal development teams

the UML is the communication tool for discussing projects, and for you to be a software engineer you need to be able to at least read it, and for you to be a senior engineer you need to be able to describe your understanding of a project by using it, which, while not required, is

important.

VIII. Analyzing problems from a high level:

This is not a point of knowledge, nor can you learn it through books. Only mention this point, because I am more anxious than you, I hope you faster to become a senior software engineer, and

not a general software engineer. I want you to learn from your system analysts, requirements analysts, and system designers, and to look at the projects you are developing from their point of view. In the best in the beginning of the project first in

Your mind on the project has a general analysis, design, and then and their comparison, to find the differences, think about the shortcomings.

Nine, tools.

You've probably come across different tools at this stage, and although you'll still need to use JB or IDEA, you'll probably want to know more about

ROSE, Together, because you'll be drawing UML. Don't be obsessed with Dreamweaver and other HTML editors, those JSP pages let the junior programmers to write it

Micro aspects

1.Core Java part

This is the most basic, for a java senior developer/designer, you need to be on this part to reach the level of proficiency, the key contents are as follows.

a. object-oriented programming ideas (encapsulation, inheritance, polymorphic interfaces)

b. string processing

c. java.lang packages, java.util packages and other commonly used packages

d. java exception handling

2. Java Advanced Part

a. Java I/O streams

b.

b.Java multithreading technology

c.Java network programming

d.Java Swing

The last two can be understood, if the project requires in-depth study

3.Front-end basic skills

* HTML + CSS web development

* JavaScript

*. JavaScript

* Jquery

* Browser compatibility CSS hack (understand)

4. Skilled in the use of JSP + Servlet development

5. MVC design patterns, principles, and related frameworks, such as Struts

6. SSH framework

7. p>7. caching technology session & cookie

8. proficiency in the use of more than one Java development tools (Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)

9. proficiency in the use of XML

.

JDOM w3c.dom SAX

10. Java Design Patterns

Factory Patterns, Singleton Patterns ==

11. Java Reflection Mechanisms

Various uses of reflection

12. Understanding of, or familiarity with, C, C++, . Environment variables

14. database oracle must learn, the other best to understand more than one (mysql, sql server, access==)

oracle: views, indexes, stored procedures, triggers, cursors, packages, commonly used functions ==

15. database principles

principles of transactions, locking mechanisms, table connections. Locking mechanism , table joins , complex query statements (work experience) , performance tuning , locking tables and solutions ==

16. JDBC, connection pooling

17. Ajax, reverse Ajax

18. HTTP protocol , request and response principle , HTTP status ( understand the common ) , the principle of HTTP protocol , the principle of HTTPS

18. Https principle

19. Familiar with the basic commands of Linux, the use of Linux/Unix system , you can write shell scripts , you can deploy projects on Linux

20. Understanding of windows system batch script bat

21. Understanding of HTML5, it is best to learn

22. Familiar with a JS framework, such as Prototype

23. J2EE principles Familiar with more than one web container such as Tomcat, JBoss, websphere, weblogic==

24. Familiar with ant or maven

25. Familiar with a scripting language, such as python Ruby

26. Understanding of php/ asp

27. Understanding of ftp protocols and principles

28. Skilled in the use of Junit testing, familiar with Mockito and other testing tools

29. Familiar with javac, javadoc, native, native2ascii and other commonly used command

30. Familiar with commonly used sorting algorithms, such as bubble sort, quick sort, etc., it is best to study some of their own algorithms.

31. Understanding of Flex (do not learn is okay)

32. Understanding of Agile development model

33. Workflow workflow at least one , such as OSworkflow, understand the principle of

34. Use of VPN to understand the principle of

35. Familiar with the jstl expression and el Expressions

36. Familiar with webservice, WSDL, SOAP

37. image processing, such as image upload, preview, limit the size of the

38. version control tools, CVS VSS SVN

39. JSON technology, JSON + AJAX

40. paging technology. Java Mail

42. Java read and write txt, excel, JXL technology

43. JVM principle, JVM memory management, GC, Java stack pool

44. office office software, word, excel, ppt, etc.

plsql, sqldevelop database development tools

outlook large companies use

ue editor

browser console, debugging

SHH/PUTTY remote

45. UML modeling tools such as Rational Rose

46. using log4j

47. used open Api such as Baidu, Tencent Street View, Sina Weibo, etc.

48. page static technology (pseudo-static pages)

49. reporting technology, the use of report creation tools, such as the crystal easy table.

50. timed tasks such as Spring batch ,learn to customize the batch task (does not apply to third-party tools)

51. understand uuid

52. b/s and c/s architecture

53. regular expressions

54. understand jndi jms

55. ERP

56. UNICODE encoding, garbled code resolution

57. open source web editor, such as ckEditor

58. binary principle

59. used, understand the open source forum frameworks, such as discuzz

60. GWT, Closure framework

61. Understanding of big data, cloud computing

62. Search engine search technology

63. Software engineering, project management

Occupational Requirements

Education and Training

Computer-related majors, college degree or above. Relevant professional certificates are: Sun Certified Java Programmer (SCJP) and Sun Certified Java Developer (SCJD) certifications.

Work Experience

Have certain software analysis and design ability; familiar with Java, Servlet, JSP, EJB and other development technologies; skilled in the use of Eclipse or jbuilder and other java development tools; familiar with JAVA + STRUTS architecture and development tools; familiar with at least one kind of database development and design; with Good learning ability, strong sense of responsibility, good communication skills and teamwork spirit.

Salary reference

According to the salary of java engineer in Shanghai on Wisdom Link Recruitment, as of June 13, 2012, the average level of java engineers has reached 6435. According to the share of Android market in the mobile Internet nowadays, it is believed that the salary level of this profession will keep on rising.

Career Prospects

Java is currently the world's most popular computer programming language, is an object-oriented programming language that can write cross-platform applications. This can be summarized by the fact that JAVA has its own unique advantages: the language is simple, it is object-oriented, distributed and secure, architecture-neutral and portable, and most importantly, it is a dynamic language.

Authoritative statistical agencies statistics - in all the software development talent demand, the demand for JAVA engineers to reach 60% ~ 70% of the total demand for JAVA engineers, JAVA engineers have relatively high salaries, in general, engineers with 3 ~ 5 years of experience in development, with an annual salary of 100,000 yuan is a very normal salary level. The salary level of a...

JAVA development direction

One is to become a managerial personnel, such as product development manager, technical manager, project manager and so on to continue; the second is the path of his technical work, become a senior software engineer, requirements engineer and so on.

Or look at the IDC Java engineer salary is relatively high. Java software engineers typically earn a monthly salary range of $4,000-$10,000, far exceeding the average monthly salary of $2,500 for recent graduates. Typically, a Java Senior Software Engineer with one year of experience is paid roughly around $100,000-$130,000 per year.

JAVA employment direction: can be engaged in JSP website development, Java programming, Java game development, Java desktop programming, and other programming related to the Java language. Can enter the telecommunications, banking, insurance professional software development company engaged in software design and development work.