I heard Android is very hot in recent years, many Java programmers go directly to the development of Android, why?
First is interested, I think this is an important reason, after all, based on the Android platform software and Android system, deeply hooked up the programmer's curiosity, naturally filled with strong interest.
And then it's making a lot of money, as a whole, the programmers who do the Android development have a higher salary than do java.
Another main reason is the so-called follow-up, follow the crowd! I'm not going to say much about that.
A few days ago to see the company's recruitment information, iOS programmers, two years of work experience, treatment 8K to 15K. Not by the exclamation, iOS have so ox? So surf the internet for a moment, think of the iOS is also in the boom Ah!
A tall on the rhythm, revealing contempt for all languages, only iOS exclusive momentum! Not by stunned, incredibly there are many also by doing Java to the iOS.
Can't help asking, is Java outdated? Are you going to be shot dead by a rising star?
It used to be that Java's core competitor is C #, ASP, and so on, or PHP, C + +, Python, and other programming languages.
But did not think, incredibly many do Java to transfer other languages. Hurriedly opened the station on a classic "Java Programming ideas", browse the preface and directory, seemingly Java in all aspects is very powerful!
Maybe some do Java lose interest or see the future, think do Java too much, future competition has no advantage.
The crux of the matter is, how much do you know? Buckle heart Ask yourself, I have been a Java programmer for more than three years, but also only understand less than one-tenth, it can be seen how the Java language is majestic.
So, how can the Java of this path, gradual transformation? Can waterfall it?
After a few days of thinking, Java programmers want to do very hard, very powerful, indeed there is a long way, but if you can persist, the future is unlimited.
As we all know, a treasure of the backend architecture has been completely in Java to do development and integration, it is still very good, and no more than any programming language.
Many enterprise-class applications, the core language is also used in Java.
For example, I have done a lot of banking related software and systems, using Java technology.
So, I think sticking to Java, the future is a bright, the key is to find a quasi-target, find the right direction, find good positioning, and can persevere, and to enjoy.
Always believe that code and thinking are the cornerstone of Java Programmer's progress! There is no short cut, Qinnengbuzhuo is good training ah!
This is the end of the crap, and here's what I personally think is the process of developing a career in Java, and I hope you can think about it together.
First of all, the basic knowledge of Java must be mastered, still recommend the classic "Java Programming ideas", "Java Core technology Volume One", "Java Core technology Volume two."
While mastering the basics, learn about coding specifications and improving coding efficiency, recommending refactoring _ Improving existing code design (Martin Fowler), writing high-quality code: 151 recommendations for improving Java programs, and effective Java.
After the basic and the specification and the efficiency has the localization, then the next step is the advanced, after all, now Java does mainly is the Web application, the natural some commonly used framework is needs to study.
The underlying code of the various frameworks and implementation ideas are based on Java's very basic knowledge, reflection, and annotations. The most common technology for web frameworks is servlet, so it is necessary to familiarize yourself with the principles and usage of the servlet and the life cycle, and to search the web for knowledge about Servlets.
As to how the framework should learn to understand in depth? My personal advice is to study with problems and use them with questions. For example MVC application, why use SPRINGMVC, why use STRUTS2MVC, each merit is what? What are their shortcomings? What are the respective implementation principles based on what technology?
Is there a better framework for the persistence framework, either Hibernate or MyBatis? What are the pros and cons, their respective implementation principles, and the persistence mechanism?
As the saying goes, a willing heart, when the real determination to learn to study, then did not do things, the only obstacle to prevent their progress, is their laziness.
Many park friends may think, design patterns? What about algorithms? What about architecture? What should I learn and when to learn?
Design patterns, preferably after working experience to study, you will find that many of the patterns in fact in the work has been used, when you learn the pattern, there will be déjà vu feeling, this will deepen understanding and memory. If there is no work experience or lack of experience in the project, for the design pattern, will always be smattering, and will make you feel dull, hit the enthusiasm, recommended "design mode of Zen (second edition)".
As for the algorithm, why use the algorithm, the algorithm exactly what advantages and efficiency? Recommend a book "Data structure and Algorithm analysis Java Edition", you will find, OH ~ The original algorithm is the same thing.
See this, the heart is not appear a big question mark, so much knowledge, how to learn the end?! Rest assured, time is some, the key is how to use the time, recommended that every programmer should read the classic masterpiece "high-performance people's Seven Habits"
When the wings become abundant, how can we further transform? Whether it is the management of the project manager or in-depth technical architect, it is necessary to constantly read the "People's Month myth", believe me, this book will let you see the multiplication of growth, and make every programmer's lifetime benefit infinite.
No matter the programmer at any stage, even if you do management architecture, do not forget, there is an important skill to master! UML Modeling!
This is a must-have skill for every qualified programmer. Recommended UML Reference Manual (second edition)
Finally, add a piece of advice.
The most important accomplishment in your career: self-esteem, honesty, teamwork, and clear goals.
These suggestions are my own requirements, there may be some omissions and imperfections, but I still hope to bring you a trace of help and inspiration.
Sincerely wish every Java programmer can maintain the initial passion, constantly improve their ability, in the future career development, stronger and bigger, go farther!
"Late night talk" How to become a more grid-driven Java programmer