Java Learning Path (RPM)

Source: Internet
Author: User

I also made a few years of Java, because always lazy, did not become Daniel, just a common program ape, do not love to play social networking sites, do not love to play microblogging, but like Baidu Bar, diving for a long time, preface to the new people to share from the novice to the old birds have seen, but also brush the existence of the feeling, should not be

first of all, we must learn how to manipulate objects, manipulate if and for, manipulate list set map, then thread, IO and JDBC, and the rest, if you don't understand it, you can learn it later if you need it.
After this stage, you can write some small programs that can be printed on the console and exercise your logical thinking. That is to say that Javase graduated, in fact, is only a primer, if you want to go to the web direction, these are basically enough.

next to learn the HTML JSP SERVLET database JAVASCRIPT TOMCAT, Target, write the first dynamic site, maybe just a login function, can only show the next profile, but this is a very important step, you have to figure out that a user's click generated requests, Where to start, where to receive, where to handle, and where to return, you have to understand browser and server relationships and division of labor, cookies and session,request and response. This is the beginning of the learning of web development, which is the most original Java since the birth of the most official web development technology, of course, the real projects are rarely directly adopted these technologies, in order to continuously improve the ease of use of technology, development efficiency and maintainability, scalability, Countless open source projects are packaged and improved on the basis of these original technologies. So at this stage do not blindly run to find a job or internship pick, you will be hit.

OK, the initial phase is complete, start to enter the topic of web development, first of all, the three legends of the framework, struts hibernate spring becomes a skilled additions and deletions to the programmer is necessary, at this stage you have to understand why use the third and not the JSP SERVLET JDBC, you have to realize the benefits of writing MVC, three-tier architecture. At this stage do not easily question the value of the three frameworks, perhaps at the beginning you will feel trouble, think they sometimes are superfluous, a year or two after the return to you will feel less of these frameworks you have been very difficult to work. This stage also to avoid the mentality is can be skilled to delete and change, think of writing procedures so much, and then fill in the resume on a proficient, which is the novice interview was one of the reasons for the batch. If you learn well, this should be able to skillfully write a blog ah, small forum AH such web projects, that is to achieve the basic requirements of employment.


      Then there is no fixed mode, your first business will have a big impact on you, I have seen how rotten business is the destruction of new people, with the design of the poor structure, the old technology, constantly delay the growth of the new, some employees in this enterprise for a few years, thinking has been completely stereotypes, deep into the company's business and the elderly system, seemingly able to solve the problem, but can not bring real progress to the company, Like a man who has used a machete for several years, even if he is skilled, the knife is good, and he can not beat the gun. If I leave this company, I'm afraid it will be difficult to build a foothold in this industry. Remember that there is a good saying, a person with 10 years of time to repeat the first two years of doing things, your real work experience is actually a year or two. This is true of old employees in rotten companies. In the first year, set a standard, you should be able to do:

1, some of the trivial techniques used to learn, such as the role of XML and practical use, how to manipulate files, how to use the log, How to simplify the packaging of commonly used tool classes, such as date operations, encoding processing, paging module              , and so on, these small things will take up a lot of your time to deal with the groping.
2, use the database well. Database is not added or deleted changes can be, you have to pay attention to the transaction set is reasonable, whether it is possible to produce dirty data, whether to use optimistic lock pessimistic lock and so on, important data out of the wrong, both technical and business is a very troublesome thing.
3, understand what is a cluster, what is distributed, know how to send requests to other systems, exchange data, WebService.
4, if you also write the page, you will use JavaScript, not necessarily very deep, you can use jquery instead, do not refresh the page operation and AJAX requests.

      in the first year, you're definitely above the average level. When I reached this level, I had a seemingly all-in-one feeling of web development, of course, then I quickly found that I was too far away .... This stage want to face a high-paying job or difficult, can only say to reach the food and clothing line, do not worry about daily necessities.

      Next stage, you should consider the quality of your code.
1, multi-threaded and asynchronous, the concept of concurrency will suddenly become important, because in a performance-critical system, you will not be allowed to do all kinds of chores in the line of one piece to do, you can not always write a method to adjust the B method and then the C method to adjust the D method and then return the code. You start to think of a queue of this kind of thing, have runable this kind of thing, you start to feel your code high-end, and then the additions and deletions to change the programmer there is a difference. But at the same time the trouble comes, you start to encounter thread safety problems, especially when your program runs in a multi-machine environment rather than a standalone environment, you will have a headache. For these problems, JMS technology is a very representative thing, of course, it is not as common as SSH.

2, you will find that database performance is not good, out of the status quo, or fashion, you should go to understand NoSQL, memcached Redis MongoDB, dazzling, it doesn't matter, try to use, can be good to ease the pressure of relational database such as MySQL.
3, for some business needs of the company, you may delve into a specific area of technology, such as full-text search technology, LUCENE\SOLR, such as workflow jbpm, such as the Authority system, single-point landing, or some specific business areas of the algorithm research, these are your add-on.
4, you start to find that your code is very messy, after a long time you can not understand, repetitive, difficult to reuse the Code mountains, do not want to maintain, a lot of bugs. So you have to start to pay attention to design patterns, reasonable to transform their own code habits, no longer the rigid SSH,MVC three-layer architecture bound to live.
5, Google and a variety of information is your motivation to progress, rarely encounter the need to ask others to solve the problem, if you are always asking others, your technical career is almost over.

This stage, if your communication and self-promotion ability is not too bad, your income will be white-collar level, at least close.

I think most programmers can reach this level after working for many years, some people only need two years, some people have to spend five or six years, at this stage, some of them are out of talent and thinking, some are out of the technical lack of enthusiasm, and some are out of work content constraints. Until the year of middle-aged, no longer spell young, was eliminated, only in self-mockery for the cock and yards of the helpless in the farmer's career.
This is a very important sub-water age, you can continue to progress, can be 30 years of age after continuing to engage in technical work, can be in the company independently, I think it is possible to see you can go beyond this stage. The project manager, who worked for several years in the rotten company I mentioned earlier, has not even reached this level ...

is next to a whole new phase.
1, you want to read the source of excellent open source projects, you have to understand some of the basic knowledge that you do not understand, you begin to understand the essence of thinking in Java, you can write some of the underlying code, and sometimes feel that they are packaged more than some open source tools easier to use.

2, the difficulties and focus of the web will always be performance, load capacity, and now the development of the network caused by the data volume and operating density greatly increased, the hardware has no corresponding progress, you have to try to better use more servers to work together, from the Web end to the server to the database, all need to cluster, need to distribute, Need reasonable control of the flow of data, master the site up and down, a lot of machine balance, find the bottleneck of performance, find the bottleneck of stability and security, hardware failure, third-party technology errors, will be as a potluck into your system and the code carefully considered.
3, began to feel that the program is extremely important, one will be incompetent exhausted thousands of troops will continue to be fulfilled, a bad design, a bad plan, will let a group of excellent programmer work results greatly discounted. You should focus on architecture knowledge and no longer be content with the SSH three layer architecture. Domain-driven design, event-oriented development, agile development and so on a series of ideas at the critical moment can determine the life and death of your project, this stage no longer have the standard paradigm to copy, you only know the idea and principle, practice but need to constantly try and improve.
4, more attention to various assorted of open source technology, some of you may have been contacted before, and communication related, and integrated development environment, and architecture-related, all areas you should be able to say a few mainstream technology, although you may just heard, understand, but the key moment you need to know how to choose technology, and quickly master it. You will also consider trying another language, this is not to say to what C + + C #, which is irrelevant to the Java programmer, I am talking about some of the languages running on the JVM, such as Scala and groovy, when you first know them, you will feel that Java is really old. But when you go back to a large, comprehensive project, you'll find that the whole system technology that Java accumulates is so perfect, just like an industrial standard.
You can put this stage into practice, competent project managers, and even small and medium-sized company technical director are all right.

Unconsciously wrote so much, the above is my personal eyes of the general to the Java EE Development Line, limited to the passage is not comprehensive, the actual personal growth route may be due to different work content will be very large, some people biased to the bottom of the study, some people biased to the business needs of design, some with strong industry color, and technology , and a lot of knowledge is also important. W does not have an easy way to do Java, but a person who is interested in technology will still be enthusiastic about development and want to write good projects. A program that works purely to make a living. Apes are not going to be this step.

For the time being, hope that the above can let J8 new people understand the future to face the general situation, but also hold a blow under the children of the young heart of evil psychology in this press the Publish button.
Can complete the reading of the classmate, in this expression of admiration, I think that year I may not be able to read this smelly and long narrative ...
This article turns from Baidu Post bar, only for the study and the reference.

Java Learning Path (RPM)

Related Article

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.