Work for a long time, found that there is a very interesting phenomenon, from the programmer, senior programmers, to now hang architects, experts and other titles, along with the technology and ability to improve, do not understand more and more things.
Some of these questions come from the exchanges with small partners, some of which are my own self-answers, some of which I do not want to know now, this article will write about these years of their own experience.
Remember someone said a word, the general meaning is: now the development of computer technology so fast, with each passing day, those who learn computer technology, to continue to learn to not be eliminated, those who brain is not broken, why should let oneself live so tired? The expression is puzzling. Don't want to be a few years, I also entered the rapid development of the IT industry. It's probably over time that personal values have changed.
First into the industry of Java programmer is confused, at the bottom of the pyramid, take poor salary, endless overtime, by the "High pay" and "yards nong" synonymous with alternate mapping, the pace of the march, what career planning are ethereal emptiness, Moonlight clan are money. Until you accidentally see an article for a Java programmer, the feeling is quite rewarding. There seems to be a way to clear the clouds and see the Moon
First, know what you are and what kind of life you want.
When we are not sure of our own career planning, we can first determine a goal, even to pay for the goal, in order to achieve this goal, we will certainly fight for it, low salary, just bow down to learn the technology, when you become a senior programmer, can look to the further development line: Expert line and management line, one to deal with the machine, One who deals with people.
Regard oneself as a kind of commodity, the commodity must exist value, use value and Exchange Exchange. The popular point is how much wealth you can create for your employer. To improve personal ability is one thing, there is also a skill to choose a better market segment. A very deep feeling is that through the network to promote personal brand, on the one hand can be personalized knowledge to comb, at the same time can exercise their own logical ability, language expression ability, the most important is to share, so that more people learn and grow together.
Second, as a programmer, you first have to ask yourself a question: "Do I really like programming?
Can I be sure that I am a programmer not only to feed my family, but to realize my life value? "This is very important. If your answer is to feed your family, chances are you won't be a good programmer, and you'll be more tired on this path, and if your answer is really like programming, it's probably not a problem, unless you're actively learning and improving every day.
Forget about the rewards that it may bring to you, but actually learn and enrich yourself, and reward is just a byproduct of your progress. If you do one thing before you consider whether it has value, will not give you a profit, then you in the environment of the time is difficult to see whether there is no value in the future.
Never put their own growth completely pinned to the company, hope that new people can recognize this, the company good project will be very exercise, but everyone in the project is just a screw, will only be responsible for a certain module, do not take the initiative to explore, no one will introduce you to the whole system architecture and working principle. In my growth process, there are generally 2 habits, one is to figure out what the whole project is to do, what modules, the whole system is how to structure and design? Another habit is to start diverging from the modules that you are responsible for, and find another point of interest. Use your spare time to learn in depth. No matter what direction, are able to accumulate and exercise these capabilities, not too much attention to a direction there is no future, personal comprehensive ability to improve, switching direction quickly.
Third, the ability of independently
Personally think that this is any technology to do the ultimate goal, in my growth process, turn a lot of directions, but no matter which direction, I will continue to this standard to interrogate and ask myself, if there is no greater Daniel, I can do it independently? Why not have this confidence, which aspect is still deficient? The back of the growing process, then try to compensate for this short board.
Now that the network is developed, many functions can be found in the online Code reference, or find good open source projects, standing on the shoulders of others, we often can quickly complete certain functions. But do not be too early to gloat, remember, quick to do is a kind of ability, can understand the principle is another ability, they are not equal. Do technology do not float on the surface, muddle through, use some open source library, complete some projects, must take time to understand the underlying principle, so as to really get sublimation and improve.
As of Now (2017.07), the number of Java programmers in China has exceeded 1 million. Moreover, with the continuous development of IT training industry and a large number of fresh graduates entering the society, Java programmers are facing more and more competitive pressure. So, as a Java programmer, how to quickly grow into a senior programmer or architect, or a good senior engineer or architect should have what kind of technical knowledge system, this is not only a junior programmer who has just entered the workplace, but also after 35 years of work began to confuse the old programmer, Must face and want to understand the problem. In order to help people less detours, I summed up a Java programmer's work 2-5-year roadmap for growth.
For the above figure in the technology I deliberately tidy up a bit, there are a lot of technology is not by a few words can be clear, so simply find a friend recorded some video, a lot of questions in fact the answer is very simple, but behind the thinking and logic is not simple, to know it but also to know its why. If you want to learn Java engineering, high performance and distributed, in Layman's. Performance tuning, Spring,mybatis,netty source analysis
Java Architects share their experience, from yards to architects I spent eight years