Introduction
The road of software development is a road full of thorns and challenges, but also a road full of hope. Java learning is the same, there is no shortcut to go. Dream like "Tianlong eight" in the virtual bamboo is no cliff son of the enlightened and easy to get a piece of skill, is very unrealistic. Every day, "God, please give me a sunflower book," But even if you get the sunflower treasure, in addition to the suffering from the palace itself, you may not become a "oriental invincible", it is a "Western failure" the chance of a little higher.
"Do not detours, is the shortest way", the Buddhist scriptures say the truth.
1. How to learn programming?
Java is a platform, but also a programming language, how to learn program design is not only applicable to Java, C + + and other programming languages are also useful. There are programmers who think that Java or C is no different, take it. Why are they able to reach this state? I think because there is a common between programming languages, understand the essence of programming, nature can do Itong. There are a lot of common places to learn how to program.
1.1 Training interests
Interest is the motivation to keep you going. If you just write the program as a means of earning a living, you will live very tired, and too sorry yourself. Pay more attention to some industry anecdotes, think more about gates. Do not advocate daydreaming everyday, but if people do not have a dream, do you think there is taste? Like many local farmers in Shenzhen, playing mahjong, drinking kung Fu tea, and bye-bye to the wealth of fortune, there is a Guiwan of tens of thousands of or more in a month, and a "food-for-benefit class". Do you think that smells like that? If you have time to go to some programmers forum, you will find that they are actually very optimistic and humorous, from time to time there will be sparks of wisdom.
1.2 Carefully selected programming language
Men afraid to enter the wrong line, women afraid to marry the wrong lang. Beginners should be cautious in choosing a programming language. Software development is not just about mastering a programming language, it also requires a lot of other background knowledge. Software development is not only limited to a few areas, but has penetrated almost every corner of the industry.
If you are interested in hardware, you can learn C language/assembly language, into the Hardware development field. If you are familiar with Telecom's industry knowledge and network, you can spend more time on C + + and so on to enter the domain of telecom software development. If you are familiar with the operating system, you can learn c/linux and so on, laying the groundwork for Linux kernel Development/driver development/embedded development.
If you want to get involved in the broadest range of application software development (including E-commerce e-government systems), you can choose either Java or. NET, or even lamp combination. The background knowledge required in each domain is different. Do the application software needs to be familiar with the database and so on. In short, you need to choose the right programming language according to your own characteristics.
1.3 to down-to-earth, fast-food learning is not advisable
Share a story first.
There is a small child, he likes to study biology, very want to know how those butterflies from the pupa shell out, become butterflies will fly. Once, he went to the prairie to see a pupa, then took home, and then looked, after a few days later, the pupa out of a crack, see inside the butterfly began to struggle, want to catch broken pupa shell fly out. This process for several hours, butterflies in the pupa inside very hard struggle, how can not come out. The child looked at not bear heart, just want to let me help it, then picked up the scissors on the pupa cut open, so that the butterfly broken pupa out. But after the butterflies come out, because the wings are not strong enough, become very bloated, can't fly up.
The lesson of this story is: Haste makes waste.
Impetuous is the most common mentality of modern people, can blame who? Perhaps poverty has lagged behind for so many years, like the Great Leap forward in the past, all want to stride into the democratic society. Today's software companies, customers, governments, schools, training institutions and so on everywhere filled with impetuous gas. Take me more familiar with the Dalian workpiece it vocational training, actually hit the advertisement declared "more than 20 years of computer vocational education, Liaoning Province top ten schools", but only a few years of computer development in China, software development only a few years, incredibly to enroll a lot of students, is simply a contempt for the world programmer. Most of the trained "programmers" do not know what Oo,op is? The social environment is, we cannot change, we can only change ourselves, the tranquility in the downtown is precious. Many beginners C++/java have not started to learn, immediately use Vc/jbuilder, will use the vc/jbuilder to develop a Hello World program, and then rushed to announce to the Earth, "I will be software development", resume also has the audacity to write "proficient Vc/java." As a result, the software company's interview was either sent away by 32 or was broken and humiliated. After hitting the wall to know to hold "C + + programming thought" "Java programming thought" carefully delve into, early know so He Bidang ah.
"Now you pay attention to simplicity and convenience, you will be long after the road," as if it is also a mantra in the exhortation.
1.4 More practice, fast practice
Peng's "to learn a first show Zishi" in the story of the poor Monk and Rich monk.
Once upon a time, the Sichuan border had two monks, one poor and one rich. One day, the poor monk said to the rich monk: "I am going to the South China Sea Pilgrimage, what do you think?" "The Rich Monk said:" Here is thousands of miles away from the South China Sea, what do you rely on? "The poor Monk said:" I only need a bowl, a rice bowl is enough. The rich monk embarrassed to say: "A few years ago I intend to buy a ship to the South China Sea, but so far did not go, you still don't go!" A year later, the rich monk was still raising money for the chartered ship, but the poor monk had returned from the South China Sea pilgrimage.
This story can be interpreted as: anything, once considered well, it is necessary to go on the road, do not wait until the preparation of a comprehensive, then do things. If things are ready to be considered and then on the road, I'm afraid everyone will get there. Software development is an engineering discipline, pay attention to is the practice, "the gentleman mouth not to do" to the software developers is simply wrong, they advocated "hands first", but do not be afraid, they are mostly gentle, no violent tendencies, although sometimes unkempt a "Bill Gates" kind. Senior high man thought that the secret of learning programming is: programming, programming, and then programming, the author deeply agree. Not only to practice more, but also to practice fast. When we are reading, do not wait until you fully understand the start to knock code, but should be reading the code at the same time, the program to run a variety of situations can let you faster and more firmly grasp the knowledge points.
More than 1.5 reference program code
Program code is one of the most important results of software development, which penetrates the mind and soul of the programmer. Many people by the "Chinese Paladin" in the poignant love story moved, the tragic end of a more regrettable beauty. Why do you end up with a tragedy? It is said that because of writing "Chinese Paladin" programmer lovelorn and arranged such an outcome, he put his feelings into the game, but let many of the Chinese paladin sigh.
A lot of reference code examples, for java reference [4.3], there are API class source code (JDK installation directory of src.zip files), you can also study some open source software or framework.
1.6 Strengthening English reading ability
For learning programming, do not require English, but can not be a little,. At the very least, like Java API documentation (ref. [4.4]) These things still need to be able to understand, even guessing with Meng can be, next to open a "powerword." If you look more, you will become more and more proficient. Learning English While studying Java, Stone is much better. Many other software needs to download the English website, you have to be able to find them, these are the most basic requirements. Good English is a great help to your study. Spoken good words have a better chance of getting into management, and can become the "Zhou Skinner" of exploiting programmers.
17,000 have to ask others
When the author solves the students ' problems in the online tutoring system of Martix and Java forum, it is found that most of the students can solve the problem by thinking little. Before you ask someone else, you should answer the following questions first.
Did you search Google for a solution to the problem?
Do you see the Java API documentation?
Have you looked up any related books?
Have you ever written a code test?
If the answer is "yes", and you have not found a solution, ask others no later. You know, the ability to think independently is important to you. It's very valuable to know the programmer's time.
1.8 Read more books.
The book has its own Yanruyu. Bill Gates is a perusal group of books. Although he had not finished college, Bill Gates had read all the encyclopedias at the age of nine, so he was proficient in astronomy, history, geography, and so on, and could say that bill was not only the richest man of money in the world, but also the rich of knowledge.
The author in the class when the students often give them recommended books, to later students really unbearable start complaining, "God, so many books to see when the", "learning software development, feeling on the shanghaied." At this time, my answer is generally, "do not worry, when to take you to see my study, to the present monthly spent on technical books 400 yuan, which in the software developers can only be regarded as medium", students fainted on the spot. (Note: This part of the students are just learning software development)
1.9 Using the right tools
工欲善其事 its prerequisite. Software development includes a variety of activities, requirements collection analysis, the establishment of use-case model, the establishment of analysis and design models, programming implementation, debugging procedures, automated testing, continuous integration and so on, there is no tool to help can be said to be unable to move. Tools can improve development efficiency, making software more quality and fewer bugs. A combination of arms called hands. To fly pick leaves can hurt the realm is very high, no recruit wins have strokes, the hands of the sword in the heart of such a realm almost unattainable.
2. Software Development Learning Route
More than 2000 years of Confucian thought Mencius, the golden mean of thought through the marrow, neither aggressive nor conservative is not the middle way, but to find the right way to learn software development and law.
From the career planning of software developers, we can be roughly divided into three stages, software engineers → software designers → architects or project managers. A soldier who does not want to be a marshal is not a good soldier, and a programmer who doesn't want to be a architect or project manager is not a good programmer. We should try to get up. Let's start by sorting out the major technologies that need to be learned to develop application software.
A Basic theory knowledge, such as operating system, compiling principle, data structure and algorithm, computer principle and so on, they are not unimportant. If you do not want to become a computer scientist, you can take the "time to learn again" principle.
B A programming language, is now basically object-oriented language, java/c++/c# and so on. If you do Web development, you have to learn html/javascript and so on.
C A methodology or thought is now basically an object-oriented idea (ooa/ood/design pattern). Derived from this, 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 JBUILDER/ECLIPSE/VS to improve productivity. NET and so on.
F. A UML modeling tool that is modeled with a rose/visio/pen.
G A software process, RUP/XP/CMM, etc., through the software process to organize many activities of software development, so that the development process specialization standardization. Of course, there are some other software engineering knowledge.
H. Project management, architecture, framework knowledge.
The correct route should be: B→c→e→f→g→h.
Additional points need to be added:
1). To add to a and C, we should gradually comprehend programming theory and programming ideas in practice. Although the new technology is constantly emerging, the update speed is dazzling and confusing, but same, programming theory and programming ideas change is very slow. Master programming theory and programming ideas you will have a sense of dispel. Object-oriented thinking at present is quite critical, is one of the strong technology, in the above need to invest more time, give you the rewards will also let you surprise.
2). For the database is independent learning, this time is up to you to decide.
3). Programming language as the main line of learning software development, while the rest as the auxiliary lines.
4). Software engineers focus on B, C, E, D; Software designers focus on B, C, E, D, f; architecture designers focus on C, F, H.
3. How to learn Java?
3.1 Java Learning route
3.1.1 Basic syntax and Java principles
Basic grammar and Java principles are the foundation, the foundation is not reliable, like the sand building skyscrapers, is quite dangerous. Learning Java is also so, you must have a solid foundation, you can in the EE, j2me field. Taking the SCJP (Sun Certified Java programmer) exam is a good way to one reason is that in order to make up for your 1200 ocean test fee, you will study harder, because the second is that the SCJP exam can make you play a solid foundation, it requires you to be as familiar with the Java basics as the JDK But don't think it's dangerous to be able to get a high salary by getting the favor of a software company if you're SCJP. Getting "real" SCJP only proves that your foundation is passable, but there is a long way to go before you can actually develop it.
The understanding of 3.1.2 Oo thought
After mastering the basic syntax and the operation principle of Java programs, we can implement object-oriented ideas in the Java language. Object-oriented, is a methodology, is independent of the language of programming ideas, is the CBD based on component development, belong to one of the strong technology. When you have to move to another object-oriented language later because of work, you will feel especially familiar and learn as simple as drinking cold water.
The basic process of developing using object-oriented ideas is:
Investigate and collect demand.
Establish a use case model.
The static dynamic relationship between class and class is identified from the use case model, and the analysis model is established.
Refine the analysis model to the design model.
With the specific technology to achieve.
Test, deploy, summarize.
3.1.3 Basic API Learning
When it comes to software development, not everything needs to be done, which is what the classic quote says, "No need to reinvent the wheel." We can use ready-made classes, components, frameworks to build our applications, such as Sun has written many classes to implement some of the underlying functions, and we downloaded the jar file contained in the class, we can invoke the method in the class to complete certain functions or inherit it. So what do these classes provide for us to use? What is the number and type of parameters of the method? constructor for class requires no arguments? It is not always possible for sun engineers to make international calls or even go across the ocean to tell you how to use the classes he wrote. They can only provide us with a document, and the Java Doc document (Reference 4.4) is a document that can be said to be a document that programmers communicate with programmers.
A basic API is a class that implements some of the underlying functions, a more versatile API such as string processing/input and output. We made it into a class library again. One way to familiarize yourself with the API is to check the Java Doc documentation (ref. 4.4) and use the IDE's code hints features such as jbuilder/eclipse.
3.1.4-Specific API Learning
Java is involved in a wide range of areas, different areas have different APIs, no one familiar with all the APIs, for the average person is only familiar with the work of the API. If you do interface development, then you need to learn SWING/AWT/SWT and other APIs, if you do online game development, you need to understand the network api/multimedia api/2d3d and so on, if you do Web development, you need to familiarize yourself with the servlet and other APIs. In short, you need to choose to learn specific APIs based on the needs of your job or the direction you are interested in developing.
Usage of 3.1.5 Development tools
When learning basic grammar and basic object-oriented concepts, from the perspective of training language proficiency, we recommend the use of the tool is EDITPLUS/JCREATOR+JDK, this time do not rush to jbuilder/eclipse and other integrated development environment, Avoid distracting the Java technology itself by focusing too much on the power of the IDE. After this stage you can begin to become familiar with the IDE.
The programmer's daily work involves many activities, editing, compiling and building, debugging, Unit testing, versioning, maintaining model and code synchronization, document updates, and so on, almost every activity has a dedicated tool, and if you use these tools independently, you'll be in pain, and you'll need to switch on the full stack of tools on the taskbar, Inefficient and prone to error. You can even integrate UML modeling tools into the IDE, such as JBuilder, Eclipse, and so on, with automatic integration of editors, compilers, debuggers, unit test tools JUnit, automated build tools ant, Version Control tool CVS, DOC document generation and updates, and so on, Also provides a wealth of wizards to help build the framework code, so that our development easier. It should be said that the trend of IDE development is the integration of nearly all the tools used in software development.
From the perspective of development efficiency, using the IDE is a necessary and a milestone in the transition from a student to a professional programmer.
Java Development uses a number of Ides, including Eclipse, JBuilder, JDeveloper, NetBeans, and Eclipse, JBuilder occupy the largest market share. JBuilder has been the overlord of the Java Integrated development environment in recent years, developed by a highly programmer-respected Borland company, and has been successful in the smoky Java IDE battle with its rapid version update to defeat IBM's visual age for Java. IBM has not been profitable in visual age for Java, and has simply contributed to the open source community as Eclipse's predecessor, the so-called "Vista". The rebirth of the eclipse with its open plug-in extension mechanism, free open source access to the vast number of programmers (including almost all the Ashes level programmers) of the favor, has great potential for development.
3.1.6 Learning Software Engineering
For small projects, you may think that software engineering is not much needed. As the complexity of the project becomes more and more high, the necessity of software engineering will be reflected. See the "Software Development Learning route" section.
3.2 Learning Points
Established the learning route, we also need to summarize the Java learning points, these points in the previous article more or less mentioned, but I think these places special attention to them to collect, don't think I am a sissy.
3.2.1 API Documentation
When programmers write certain classes, they feel a sense of accomplishment and want to contribute to their miserable peers. This is where you use the Javadoc tool (included in the JDK) to generate standard Java DOC documents for your peers to use. J2se/j2ee/j2me Doc documentation is a tool for programmers to communicate with programmers, with almost a hand in it, except for amateurs. J2SE Doc Document official Download address: http://Java.sun.com/j2se/1.5.0/download.jsp, you can go to google search chm version download. can also be viewed online: http://Java.sun.com/j2se/1.5.0/docs/api/index.html.
Treat doc documents like quotations from Chairman Mao, get up in the morning and read them before you eat and go to bed.
When you need a function, you should check the corresponding DOC document to see if there is a ready-made implementation, some words do not have to bother to use directly, you can not find the time to consider their own realization. The following steps are generally used:
Find specific packages, packages are generally based on functional organization.
If you want to use a class, a class naming specification, we can guess one or two by the name of the class.
Select the constructor, most of which use the class by creating the object.
Choose the method you need.
3.2.2/google-> Write code Test-> View Source code-> Consult others
How do we solve the problem when we encounter it?
At this time do not rush to ask others, too simple questions, no thinking problems, others will despise you for this. Can look for a book, Google search for a look, most of the problem is basically solved. The doc document is the answer, as in the question of how some classes/methods are used. For some knowledge point of doubt is, write code test, will give you a deep impression. And some problems, you may need to look directly at the API source code to verify your ideas. It is a last resort to consult others.
3.2.3 Learning the design idea of open source software
The Java domain has a number of open-source tools, components, frameworks, JUnit, ANT, Tomcat, Struts, Spring, Jive Forums, Petstore pet shops and so on. These are the treasures that our predecessors left us. You willingly to go to Baoshan and return empty-handed? For these tools, the framework of the analysis, to understand the design ideas, one day maybe you can write a xxx frame or something, scenery one. Analyzing open source software is actually a convenient way for you to improve your skills and improve your actual combat ability.
The importance of 3.2.4 norms
No rules, radius. The specification here has two layers of meaning. The first layer of meaning is technical specifications, more to http://www.jcp.org download jsrxxx specifications, read more specifications, this is the most authoritative accurate latest textbooks. The second layer of meaning is the programming specification, if you use a lot of unique algorithms, rich personality variables and methods of naming, at the same time, the program is not annotated to show how deep your programming skills. Such code other people look like a heavenly book, to understand the difficult, let alone maintenance, will be mercilessly swept into the garbage heap. Java Coding specifications to view or download http://Java.sun.com/docs/codeconv/, Chinese also have, ah, also ask me where, please refer to section 3.2.2.
3.2.5 is not limited to Java
Unfortunately, luckily, there are a lot of things to learn. Unfortunately, because there are too many things to learn and changeable, no time to accompany old in-laws or girlfriends, resulting in physical and mental exhaustion, serious even lead to depression. Fortunately, it is not easy for others to rob your job, they or they need to pay a lot to achieve their wish.
Java do not learn in isolation, the need for comprehensive learning data structure, OOP, software Engineering, UML, network programming, database technology and other knowledge, with horizontal vertical comparison of the way to learn will be more effective. such as learning Java collection of time to find the data structure of the book to see, when learning JDBC Review of database technology, the adoption of the "need to learn" principle.
4. Conclusion
Need to emphasize is that learning software development does have a certain degree of difficulty, but also very hard, need to pay a lot of effort, but do not give up halfway. If this article can be helpful to friends who have been wandering outside the Java temple, I am gratified. Haha, how does it sound unbelieving? No way, in the long-term radiation of the computer, are quickly becoming a small old man. Finally advise you programmers, especially MM programmers, finished work quickly away from the computer, according to the "Hu broadcast chaos" reported that the computer radiation will be in the white skin dotted with some small black spots, look bright and incomparable ... To drag up the dream of tomorrow is still on their own!
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.