As someone who has mastered JAVA technology and is preparing to become a Java software engineer in the future, if you want to become a JAVA engineer, you must learn JAVA. The average programmer may only need to know some JAVA syntax structures to cope with it. But to become a senior JAVA engineer, we need to do more in-depth research on JAVA. The following three aspects of learning methods are summarized for everyone:
1. Software development learning route. Two thousand years of Confucianism and the Tao of Confucius and Mencius, the idea of ??the mean has penetrated into the bone marrow. Neither being aggressive nor conservative is not the golden mean, but finding the correct route and rules for learning software development. From the perspective of career planning for software developers, we can roughly divide it into three stages: software engineer → software designer → architecture designer or project manager. A soldier who doesn't want to be a marshal is not a good soldier, and a programmer who doesn't want to be an architect or project manager is not a good programmer. We should try to move up. Let's first sort out the main technologies you need to learn to develop application software.
A. Basic theoretical knowledge, such as operating systems, compilation principles, data structures and algorithms, computer principles, etc., are not unimportant. If you don't want to become a computer scientist, you can adopt the "learn it when you need it" principle.
B. A programming language is now basically an object-oriented language, such as JAVA/C++/C# and so on. If you do WEB development, you also need to learn HTML/Jav**ript and so on.
C. A methodology or idea is now basically object-oriented thinking (OOA/OOD/design pattern). Derived from this are component-based development CBD/aspect-oriented programming AOP and so on.
D. A relational database, ORACLE/SqlServer/DB2/MySQL, etc.
E. An IDE integrated development environment that improves productivity JBuilder/Eclipse/VS.NET, etc.
F. A UML modeling tool for modeling with ROSE/VISIO/PEN.
G. A software process, RUP/XP/CMM, etc., organizes many activities of software development through the software process to professionalize and standardize the development process. Of course, there are other software engineering knowledge.
H. Project management, architecture, framework knowledge.
The correct route should be: B→C→E→F→G→H.
A few more points need to be added:
1. What we need to add to A and C is that we should gradually understand programming theory and programming ideas in practice. Although new technologies continue to emerge, and the update speed is dizzying, but everything remains the same, and programming theory and programming ideas change very slowly. Once you master programming theory and programming ideas, you will feel like you can see the sun through the clouds. Object-oriented thinking is very critical at present. It is one of the strong technologies. You need to invest more time in it, and the rewards will surprise you.
2. For databases, learning is independent. The timing is up to you.
3. Programming language serves as the main line of learning software development, while the rest serve as auxiliary lines.
4. Software engineers focus on B, C, E, and D; software designers focus on B, C, E, D, and F; architectural designers focus on C, F, and H.
2. JAVA learning route.
1. Basic grammar and JAVA principles. Basic grammar and JAVA principles are the foundation. If the foundation is not solid, it is like building a skyscraper on sand, which is very dangerous. The same is true for learning JAVA. You must have a solid foundation so that you can operate with ease in the J2EE and J2ME fields. Taking the SCJP (SUN Certified JAVA Programmer) exam is a good way. One of the reasons is that in order to be worthy of the 1,200 ocean exam fee you pay, you will study harder. The second reason is that the SCJP exam allows you to master the basics. It is very reliable, and it requires you to be as familiar with the basic knowledge of JAVA as JDK; but you must not think that just because you have passed SCJP, you will be great, you will be favored by software companies, and you will be able to get high salaries. This idea is also very dangerous. Obtaining a "real" SCJP can only prove that your basics are passable, but it is still a long way from actual development.
2. Learning of specific APIs. JAVA is involved in a wide range of fields, and different fields have different APIs. No one is familiar with all APIs. Most people are only familiar with the APIs used in work. If you do interface development, then you need to learn APIs such as Swing/AWT/SWT; if you develop online games, you need to have an in-depth understanding of network APIs/multimedia APIs/2D3D, etc.; if you do WEB development, you need to be familiar with APIs such as Servlet La. In short, you need to choose to learn a specific API based on your work needs or the direction of your interest.
3. How to use development tools.
When learning basic syntax and basic object-oriented concepts, from the perspective of training language proficiency, the tool we recommend is Editplus/JCreator+JDK. At this time, do not rush to get started with integrated development environments such as JBuilder/Eclipse, so as not to focus too much on the IDE The powerful functions distract attention from the JAVA technology itself. After this stage you can start to become familiar with the IDE.
4. Comprehension of OO thoughts. After mastering the basic syntax and operating principles of JAVA programs, we can use JAVA language to implement object-oriented ideas. Object-oriented is a methodology; it is a programming idea that is independent of language; it is the basis of component-based development of CBD; it is one of the strong technologies. When you need to switch to another object-oriented language for work in the future, you will feel particularly familiar and friendly, and learning it is as easy as drinking cold water.
The basic process of development using object-oriented thinking is:
(1) Investigate and collect requirements.
(2) Establish a use case model.
(3) Identify analysis classes and static and dynamic relationships between classes from the use case model, thereby establishing an analysis model.
(4) Refine the analysis model to the design model.
(5) Use specific technology to achieve it.
(6) Testing, deployment and summary.
5. Learn software engineering. For small projects, you might think that software engineering is not necessary. As projects become more complex, the need for software engineering becomes apparent.
6. Learning of basic API. When developing software, not all functions need to be implemented, which is what the classic saying goes, "There is no need to reinvent the wheel." We can use ready-made classes, components, and frameworks to build our applications. For example, SUN has written many classes to implement some underlying functions, and for the classes contained in the JAR files we downloaded, we can call methods in the classes to complete Some functionality or inherit it. So what methods are provided in these classes for us to use? What are the number and types of parameters of the method? Does the constructor of a class require parameters? It is impossible for an engineer from SUN to make an international long distance call or even cross the ocean to tell you how to use the class he wrote. They can only provide documents for us to view. The JAVADOC document (Reference 4.4) is such a document. It can be said to be a document for programmers to communicate with programmers.
Basic API refers to classes that implement some low-level functions and highly versatile APIs, such as string processing/input and output, etc. We call it a class library again. The first way to become familiar with the API is to check more JAVADOC documents, and the second is to use the code prompt function of IDEs such as JBuilder/Eclipse.
A programmer’s daily work includes many activities, including editing, compiling and building, debugging, unit testing, version control, maintaining model and code synchronization, document updates, etc. Almost every activity has a dedicated Tools, if you use these tools independently, you will be very painful. You need to constantly switch on the taskbar full of tools, which is very inefficient and error-prone. IDEs such as JBuilder and Eclipse have automatically integrated editors, compilers, debuggers, unit testing tools JUnit, automatic build tools ANT, version control tools CVS, DOC document generation and updates, etc., and even UML modeling tools can be integrated Integrated in, it also provides a wealth of wizards to help generate framework code, making our development easier. It should be said that the development trend of IDE is to integrate almost all tools used in software development. From the perspective of development efficiency, using IDE is the only way to go, and it is also a milestone in the transition from a student to a professional programmer.
The IDEs used in JAVA development mainly include Eclipse, JBuilder, JDeveloper, NetBeans, etc.; Eclipse and JBuilder have the largest market shares. JBuilder has been the dominant player in the JAVA integrated development environment in recent years. It was developed by Borland, a company highly respected by programmers. In the smoke-filled JAVAIDE war, it defeated IBM's Visual Age for JAVA and so on with its rapid version updates and achieved great success. A great cause. Since IBM was no longer profitable with Visual Age for JAVA, it simply contributed it to the open source community and became the predecessor of Eclipse. The reborn Eclipse has won the favor of the majority of programmers (including almost all hardcore programmers) with its open plug-in extension mechanism and free open source, and has great development potential.
Finally, to become an excellent JAVA engineer, the professional knowledge and skills we need to master include: familiarity with the Java language, understanding of object-oriented thinking and design patterns, and at least familiarity with j2ee, j2me, j2se and other development One of the systems; be proficient in using development tools such as Eclipse or Jbuilder, and understand the MVC pattern and practical applications; be familiar with the development and design of at least one database; have certain program testing and design analysis capabilities.
In addition, good learning ability, teamwork spirit, strong sense of responsibility and communication skills are also essential.
If you can do the above points well, then you are an excellent JAVA engineer