The following is a summary of the growth path of Java programmers over the years.

Source: Internet
Author: User

I have been engaged in Java for a few years. Because I have always been lazy and have never become a bull, I am just a programmer. I don't like social networking websites, I don't like Weibo, but I like Baidu posts. I 've been diving for a long time, it is easy to tell new people what they have seen from a newbie to an old bird. It's better than exposure.

First of all, we must first understand the syntax phase. We must learn how to operate objects, operate if and for, operate list set map, and then thread, Io, and JDBC. If we do not understand the rest, you can learn it later.
After this stage, you can write some small programs that can be printed on the console to exercise logical thinking. That is to say, javase has graduated, but it is just an entry. If you want to develop towards the Web, this is basically enough.

The next step is to learn about the html jsp servlet database JavaScript tomcat. The goal is to write the first dynamic website. It may be just a login function and can only display personal information, but this is an important step, you need to understand the relationship and division of labor between the browser and the server, cookie and session, request and response. This is a preliminary learning stage of web development. These are the most primitive and official web development technologies since the birth of Java. Of course, these technologies are rarely directly used in real projects, to continuously improve the usability, development efficiency, maintainability, and scalability of the technology, countless open-source projects are encapsulated and improved on the basis of these original technologies. So do not blindly and optimistically go to a job or pick and pick up your internship at this stage. You will be hit.

Well, the initial stage is complete and begins to enter the topic of web development. First, there are three legendary frameworks. Struts hibernate spring is a must for skilled programmers to add, delete, modify, query, and query resources, at this stage, you also need to understand why to use this scheme instead of those JSP servlet JDBC. You need to understand the advantages of MVC and L3 architecture. At this stage, do not easily question the value of the three frameworks. Maybe at the beginning, you may feel troublesome and think that they sometimes come together with one another, looking back a year or two, you will find it hard to work without these frameworks. At this stage, we should avoid having the mentality of adding, deleting, modifying, and querying data skillfully, so we thought that writing a program was not so good, and then entering a proficient on the resume, this is one of the reasons why a newbie interview is rejected. If you have learned well, you should be able to write a blog, a small forum, or a WEB Project, which meets the basic job requirements.

There will be no fixed model, and your first company will have a great impact on you. I have seen how bad companies destroy new people and use poorly designed architectures, the old technology is constantly delaying the growth of new people. Some employees who have been in this company for several years have been completely confused by incorrect ideas and are deeply immersed in the company's business and old systems, it seems to be able to solve the problem, but it cannot bring real progress to the company. Just like a person who has been using machete for several years, even if he is more skilled and skilled, he cannot beat the gun. If you leave this company, it may be difficult to establish a foothold in this industry. I remember a good saying. If you repeat what you did in the first one or two years after 10 years, your real work experience is actually one or two years. This is the case for old employees in bad companies. In this year, set a standard. What you should be able to do is:
1. I learned some common trivial technologies, such as the role and practical use of XML, how to operate files, how to use logs, and how to simplify the encapsulation of common tool classes, such as date operations, code processing, paging modules, and so on, these things will take a lot of time to process and explore.
2. Make good use of the database. The database does not support addition, deletion, modification, and query. You need to check whether the transaction settings are reasonable, whether dirty data may be generated, and whether optimistic locks or pessimistic locks are used. If an error occurs for important data, both technically and in terms of business operations are troublesome.
3. Understand what a cluster is, what is distributed, how to send requests to other systems, exchange data, and WebService.
4. If you write pages too, you need to use JavaScript. You don't have to go into depth. Instead, you can use jquery to avoid refreshing page operations and Ajax requests.

You can reach this level in the first year. You are definitely on average. When I reached this level, I felt like all my website development was successful. Of course, I soon discovered that I was too far away .... at this stage, it is still very difficult to have a high-paying job. It can only be said that it is enough to meet the needs of food and clothing, and there is no need to worry about rice, oil, and salt.

In the next stage, you should consider your code quality.
1. The concept of multithreading, Asynchronization, and concurrency will suddenly become very important, because in a system with performance requirements, you will not be allowed to arrange all kinds of things for one piece. You cannot always write some method A, call Method B, call method C, call method D, and then return the code. You start to think of something like a queue and something like runable, and you start to think that your code is high-end, which is a world different from the increase, deletion, modification, query, and query programmers in the past. But at the same time, the trouble also comes. You begin to encounter thread security problems, especially when your program runs in a multi-machine environment rather than a single machine environment, you will have a headache for these. For these problems, the JMS technology is very representative, of course not as common as SSH.

2. You will find that the database performance is really not good. Out of your preferences or fashion, you should learn about nosql, memcached redis MongoDB, Which is dazzling and doesn't matter. Try to use it, it can effectively relieve the pressure on relational databases such as MySQL.
3. For some business needs of the company, you may study a specific technical field, such as full-text search technology, Lucene \ SOLR, such as workflow jbpm, such as permission system and single-point login, or some algorithm research in specific business areas, these are your plus points.
4. You began to find that your code was messy. After a long time, you could not understand the code, repeat it, and the code that was difficult to reuse piled up. You didn't want to maintain it, and there were hundreds of bugs. Therefore, you need to pay attention to the design model and properly transform your code habits. It is no longer constrained by the rigid SSH and MVC three-layer architecture.
5. Google and various materials are the driving force for your progress, and you rarely encounter problems that must be solved by asking others. If you still ask others at this stage, your technical career will soon be reached.

At this stage, if your communication and self-promotion capabilities are not too bad, your income will be white-collar, at least close.

I think most programmers can reach this level after years of work. Some people only need two years, but some will use people who fell behind in year 56, some are restricted by talent and thinking, some are restricted by lack of enthusiasm for technology, and some are restricted by work content. When we were in the middle of the year, we were no longer able to fight for young people and were eliminated. We had to turn around in the helpless ways of Self-ridicule as a hacker and a code farmer.
This is a very important water separation age. Can you continue to improve, continue to engage in technical work after the age of 30, and be alone in the company? I think it depends on whether you can surpass this stage. The project manager who has been working in a bad company for several years has not even reached this level...

Next is a new phase.
1. You need to read the source code of a good open-source project. You need to understand basic knowledge that you did not understand in the past. You begin to understand the essence of thinking in Java. You can write some underlying code, sometimes, you may feel that your encapsulated tools are easier to use than some open-source tools.

2. The difficulty and focus of the web are always on performance and load capabilities. However, the development of the network has led to a significant increase in data volume and operation density, but the hardware has not improved, you have to try to better use more servers for collaborative work. From the Web end to the server end to the database, all clusters are required, distributed, and data flow needs to be properly controlled, master the balance between websites, hosts, performance bottlenecks, Stability and Security bottlenecks, hardware faults, and third-party technical errors, take it into consideration in your system and code.
3. At first, I felt that the solution was extremely important. A poor design and a poor solution would compromise the work of a group of outstanding programmers. You need to pay attention to the architecture knowledge and cannot meet the requirements of the SSH three-tier architecture. Domain-driven design, event-oriented development, agile development, and a series of other ideas can determine the life and death of your project at critical moments. There are no standard examples for you to copy at this stage, you only know the thoughts and principles, but you need to constantly try and improve your practice.
4. Pay more attention to various open-source technologies. Some of you may have been familiar with communication-related, integrated development environment, and architecture-related, you should be able to talk about several mainstream technologies in various fields. Although you may have heard about and understood them, you must know how to select technologies and quickly master them at a critical moment. You will also consider trying other languages. This doesn't mean to turn to C ++ C # or the like. It's irrelevant to Java Programmers. I'm talking about some languages running on JVM, for example, scala and groovy, when you first get to know them, you will feel that Java is really old. However, when you return to a comprehensive large-scale project, you will feel that the entire system technology accumulated by Java is so complete, just like an industrial standard.
You can practice this stage well and be competent as the project manager, or even the technical director of small and medium-sized companies.

I have written so much without knowing it. The above is a general development line for Java EE in my personal eyes, and it is not comprehensive due to its limitations, the actual personal growth path may vary greatly because of the different work content. Some people tend to study at the bottom layer, some tend to design business needs, and some have a strong industry color, in addition to technology, there is a lot of knowledge that is also very important. W has no easy direction in Java, but a person interested in technology will still be enthusiastic about development and want to write a good project at this step. It is impossible for programmers who work for their livelihood.

Now, I hope that the above will let new J8 people understand the general situation they will face in the future, and hold down the evil psychology that strikes the hearts of young friends.

I would like to admire all those who can finish reading this story. I think I may not be able to read this smelly and long story...

-- The content of this article is transferred from Java. It is helpful to go to a blog to spur myself.

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.