Java learning path: without detours, It is a shortcut (2)

Source: Internet
Author: User
2. Software Development Learning route

For more than two thousand years, the way of Confucianism, Confucius and Mencius, and the doctrine of the mean have been passed into the bone marrow, neither rashly nor conservatively. Instead, they are looking for the correct routes and rules for learning software development.

From the perspective of software developer's career planning, we can be divided into three stages: Software Engineer → software designer → architecture designer or project manager. Soldiers who don't want to be Marshal are not good soldiers, and they don't want to be architects or project managers. Program Not a good programmer. We should try to go up. Let's sort out the main technologies that need to be learned to develop application software.

A. Basic Theoretical knowledge, such as operating systems, compilation principles, data structures, and Algorithm And computer principles. They are not unimportant. If you do not want to become a computer scientist, you can adopt the principle of "coming back when necessary.

B. One door Programming Language Currently, it is basically an object-oriented language, such as Java/C ++/C. For web development, you need to learn HTML/JavaScript and so on.

C. A methodology or idea. Currently, it is basically an object-oriented idea (OOA/ood/design model ). Derived from this, the component-based development of CBD/Aspect-Oriented Programming AOP and so on.

D. A relational database, such as Oracle/sqlserver/DB2/MySQL

E. A Productivity Improvement ide integrated development environment, such as JBuilder/Eclipse/Vs. net.

F. a uml modeling tool that uses rose/Visio/pen for modeling.

G. A software process, such as RUP/XP/CMM, organizes various activities of software development through the software process to standardize the development process. Of course there are other software engineering knowledge.

H. Project Management, architecture, and framework knowledge.

The correct route should be: B → C → e → F → G → H.

You need to add the following points:

1). What we need to add to a and c is that we should gradually understand programming theories and ideas in practice. Although new technologies are constantly emerging and the update speed is dazzling, the changes in programming theories and ideas are quite slow. When you have mastered programming theories and ideas, you will be able to see the cloud. At present, the object-oriented thinking is quite critical and one of the strong technologies. It requires more time to invest in it, and your return will surprise you.

2) For databases, it is up to you to decide the time.

3). The programming language is the main line for learning software development, while the rest is the Auxiliary Line.

4). software engineers focus on B, C, E, and D. software designers focus on B, C, E, D, and F. Architecture designers focus on C, F, and H.

3. How to Learn Java?

3.1 Java learning route

3.1.1 basic syntax and Java principles

The basic syntax and Java principles are the foundation, and the foundation is not reliable. It is quite dangerous to build a skyscraper on the sand. The same is true for learning java. You must have a solid foundation to be able to work in the J2EE and J2EE fields. Taking the scjp (Sun-certified Java programmer) test is a good way, one of the reasons is to be able to afford your 1200 ocean examination fee, you will study harder, the second reason is that the scjp test gives you a strong foundation and requires you to be familiar with Java basics like JDK. However, you must never think that it is amazing to have passed the scjp test, it is dangerous to get a high salary if you can get the favor of a software company. The "real" scjp can only prove that your foundation is still good, but there is still a long way to go from the actual development.

3.1.2 understanding of OO Thoughts

After mastering the basic syntax and Java program running principle, we can use Java to implement the object-oriented thinking. Object-oriented is a methodology. It is a programming idea independent from other languages. It is the basis of component-based development in the CBD. It is one of the strong technologies. When you need to transfer your work to another object-oriented language in the future, you will feel very familiar with it and learn it as easy as drinking cold water.

The basic process of development using object-oriented thinking is:

● Investigate collection requirements.

● Create a case model.

● Identify the static dynamic relationships between analysis classes and classes from the use case model to establish an analysis model.

● Refine the analysis model to the design model.

● Use specific technologies for implementation.

● Testing, deployment, and summary.

3.1.3 Basic API Learning

When developing software, not all functions need to be implemented, that is, the classic Famous saying We do not need to re-invent the wheel ". We can use existing classes, components, and frameworks to build our applications. For example, Sun has compiled many classes to implement some underlying functions and the classes contained in the downloaded jar files, we can call methods in the class to complete some functions or inherit from them. So what methods are provided for these classes? What is the number and type of parameters of the method? Does the class constructor need parameters? It is impossible for Sun engineers to make international calls or even make overseas calls to tell you how to use the classes he has compiled. They can only provide documents for us to view. Java Doc (reference 4.4) is such a document, which can be said to be a document for programmers to communicate with programmers.

A basic API refers to a class that implements some underlying functions and has a strong versatility, such as string processing/input/output. We turn it into a class library. The first method to familiarize yourself with the API is to check the Java Doc documentation (see document 4.4), and the second is to use Code Prompt function.

3.1.4 learning specific APIs

Java is involved in a wide range of fields. Different fields have different APIs. No one is familiar with all the APIs. for average people, they are only familiar with the APIs used in their work. If you develop interfaces, you need to learn swing, AWT, SWT, and other APIs. If you develop online games, you need to learn more about network APIs, multimedia APIs, and 2d3d; if you do web development, you need to be familiar with Servlet and other APIs. In short, you need to select and learn specific APIs based on your work needs or your interests.

3.1.5 usage of development tools

When learning basic syntax and basic object-oriented concepts, we recommend using editplus/jcreator + JDK from the perspective of language proficiency, at this time, do not rush to get started with integrated development environments such as JBuilder/eclipse, so as not to worry too much about the powerful functions of IDE and distract yourself from Java technology. After this stage, you can get familiar with IDE.

The daily work of programmers includes many activities, such as editing, compiling and building, debugging, unit testing, version control, model and code synchronization, and document update, almost every activity has dedicated tools. If you use these tools independently, you will suffer. You need to switch constantly on the task bar full of tools, which is very inefficient, it is also prone to errors. In JBuilder, eclipse, and other ides, the editor, compiler, debugger, unit test tool JUnit, automatic build tool ant, version control tool CVs, and Doc document generation and update are automatically integrated, we can even integrate the UML modeling tools and provide a wealth of Wizard to help generate framework code, making development easier. It should be said that the development trend of IDE is almost all the tools used in integrated software development.

From the perspective of development efficiency, using IDE is the only way to go and a milestone in the transition from a student to a professional programmer.

Java development mainly uses several types of Ides, including eclipse, JBuilder, jdeveloper, and netbeans. Eclipse and JBuilder have the largest market share. JBuilder has been the dominant player in the Java integrated development environment in recent years. It was developed by Borland, a highly respected programmer. In the world of Java IDE, beat IBM's Visual Age for Java with its quick version updates, and so on. IBM has made no difference in Visual Age for Java, and simply contributes to open-source Community To become the predecessor of Eclipse ". Eclipse, which is born after the fire, enjoys great development potential thanks to its open plug-in extension mechanism and free open source.

3.1.6 Learning Software Engineering

For small projects, you may think that software engineering is not necessary. As the complexity of the project increases, the necessity of software engineering will be reflected. See the "Software Development Learning route" section.

3.2 learning points

After establishing the learning route, we also need to summarize the learning points of Java. These points have been mentioned more or less in the previous article, but I think they should be summarized only when special attention is given to these points, don't worry about my mother-in-law.

3.2.1 diligence API documentation

When programmers write some classes, they feel very fulfilled and want to contribute them to their peers who are suffering. In this case, you need to use the "javadoc" tool (included in JDK) to generate standard Java Doc documents for your peers. The j2se/J2EE/j2's DOC file is a tool for programmers to communicate with each other, except for cainiao. J2se Doc documentation official: http://java.sun.com/j2se/1.5.0/download.jsp, you can go to googlesearch chm download. For more information, see http://java.sun.com/j2se/1.5.0/docs/api/index.html.

Treat Doc documents like Chairman Mao's quotes. Read them once in the morning and before dinner and bed.

When you need a function, you should first check the corresponding doc document to see if there are any ready-made implementations. If so, you don't have to bother with it and use it directly, when you cannot find it, consider your own implementation. The procedure is as follows:

● Find a specific package. The package is generally organized according to the function.

● Find the class to be used. If the class naming convention is used, we can guess one or two by the class name.

● Select the constructor. Most classes are used to create objects.

● Select the method you need.

3.2.2 check books/Google-> write code test-> View Source code -> Consult others

What should we do when we encounter problems?

At this time, don't rush to ask others. It's too simple a question. If you don't think about it, others will look down on you. You can first find a book and search for it in Google. Most problems are basically solved. For example, "how to use some classes/methods", the doc document is the answer. If you are confused about some knowledge points, writing code and testing will impress you. However, you may need to check the source code of the API to verify your ideas. You have to ask for advice.

3.2.3 learning the design ideas of open-source software

Many open source code engineers in the Java Field

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.