As a Java programmer, the most painful thing is that the range of choices can be too wide and too many books can be read, which is often at a loss. I want to select some of the technical books I have read and recommend them to everyone in the order of learning, especially those Java programmers who want to continuously improve their technical level.
1. Introduction to Java programming
For programmers who do not have Java programming experience, they should get started. Any introductory book is the same. At this stage, you need to quickly master the basic grammar and basic usage of Java. The purpose is to "swallow them whole and not seek to understand them very much". First, be familiar with Java. You can quickly pass the Java syntax in a very short time, write more code even if you are confused and guessing, and you must "know the truth".
1. "Java Programming Thoughts"
After having some experience in Java programming, you need to "know why". At this time, "Java Programming Thoughts" is a good book that lets you know the reason. It has a clear explanation of basic object-oriented knowledge and a clear explanation of Java's basic syntax and basic class library. It can help you lay a good foundation for Java programming. The disadvantage of this book is that it is too thick and relatively wordy, and it is not suitable for modern people to learn fast-pacedly. Therefore, you must know how to choose and trade off when reading this book. Not every chapter is worth reading, but you can just read the key points in depth.
2. Chinese version of "Agile Java"
This book was given to me by the publishing house. As soon as I got it, I put it on the shelf and put it on the bookcase without turning it over. However, when I was sorting out the bookcase two days ago, I took it out and flipped it out and found that it was definitely a good book! A major feature of this book is that unit testing and TDD are used throughout the book. In the process of teaching you various important basic knowledge in Java, it subtly affects your programming thinking toward agility and TDD. In addition, this book is very new and is explained based on the grammar of JDK5.0. It is also good to learn the new grammar of JDK5.0. In addition, this book also makes good choices about content. After all, the Java language library is huge and there is too much content to talk about. The content selected by this book and the amount of content are very appropriate, which allows you to master the most important knowledge of Java with the least time and cultivate excellent programming ideas by the way. It is really a rare and good book.
Although the author himself positioned the book at the entry level, I am not sure if this book is a little deeper to get started. I am also planning to read this book when I have time and learn.
2. Advanced Java programming class
Laying a good Java foundation requires more practical experience accumulation, and I think there is no shortcut. There are two books worth reading at this stage of your programming career, develop good programming habits, and improve the quality of your code.
1. "Refactoring and improving the design of existing code"
This book is very famous and does not need to be introduced. You can read it more in your spare time and verify it with your own practice. This book has a subtle impact on you.
2. "Test-driven development by Example"
The biggest feature of this book is that it is very thin and looks like it is not burdensome. You can find a weekend afternoon, read it while doing it, and finish reading the book in one afternoon, and all the examples of this book are completed. The purpose of this book is to cultivate TDD's ideas through actual combat.
3. The Road to Java Architect
By this stage, you should have been very skilled in using Java programming and have a good programming idea and habit, but you may still lack the grasp of the overall architecture of the application software. Now is your first step towards an architect.
1. "Expert One-on-One J2EE Design and Development"
This book is a famous book by Rod Johnson, very classic, and springframework was born from the code in this book. But it seems that this book does not have a Chinese translation.
2. "Expert One-on-One J2EE Development without EJB"
This book was translated by gigix and participated by many industry experts. Although the signed translator is JavaEye, JavaEye actually doesn't contribute much, and it is really a translator.
The above two books are classic classics by Rod Johnson and must-read books for Java architects. Among the books I recommend, they are the most careful and serious books I have ever read. I read this book almost in one go day and night. I was so excited to read Jin Yong’s martial arts novels when I was a child. The contents in the book were verified one by one with my own experience and knowledge, and were summarized incredibly incisively. After reading this book, I felt like my meridians were opened and my skills were increased.
But later I read some other people's comments and it seems that the reading experience is not as high as mine. Perhaps it is because everyone's knowledge accumulation and experience are different. At that time, I had accumulated experience and knowledge sufficiently, but I had not yet systematically organized it. After the book was sorted out, I immediately formed a complete knowledge system.
3. "Enterprise Application Architecture Model"
Another famous book by Martin, but I just read this book in general and didn't read it carefully. This book seems to be more suitable for people who are frameworks to read. For example, if you plan to write an ORM yourself, this book must be read. However, it doesn’t matter if you don’t look at it. However, if you have time, I would recommend taking a look carefully, which will let you know why the framework is designed in this way, so that your level can be promoted to the perspective of the framework designer to think about the problem. I have always admired Martin's books, but I have never read them as seriously as Rod Johnson's books.
4. "Principles, Models and Practices of Agile Software Development"
Uncle Bob's classic works, agile classic works. This book is quite special. It is not so much a book about software development, but rather a book about software architecture. This book spends a lot of space on various object-oriented software development models. I personally think that after reading this book, there is no need to read GoF's "Design Pattern".
4. Software development process
Understanding the software development process is not simply to improve programmers’ personal good programming habits, but also to enhance team collaboration.
1. "UML Essence"
UML actually has no necessary connection with the software development process, but it is a tool needed by software teams to collaborate and communicate and write software documents. However, there are not many pictures that are truly practical in UML. It is enough to read this book. There is no need to chew on things like "UML User Guide". I would like to remind everyone that the Chinese translation of this book is very bad, and it is recommended to read the original English version if possible.
2. "Analysis of Extreme Programming Embrace Changes" XP
This is the second edition of Kent Beck's classic work, a comparison in Chinese and English. There is nothing to say, must-read books.
3. "Unified Software Development Process" UP
In fact, UP and Agile do not necessarily conflict. UP also emphasizes iteration and testing very much, but the document and process drivers emphasized by UP are not adopted by Agile. No matter what, UP is worth reading. After all, there are very few companies that truly accept agility in China, so you still need to use UP to arm your own, even if it is XP with UP.
4. "Agile Modeling" AM
Scott Ambler's classic book, this book is very progmatic, telling you how to be both agile and UP, unify agile and UP, and put forward a lot of progmatic suggestions and practices. You can read the three books "Analysis of Extreme Programming Embrace Changes", "Unified Software Development Process" and "Agile Modeling" together to read the differences between XP and UP, and then see how AM unifies XP and UP, integrate these three theories into one and form your own theoretical system, and then you can also write a book.
5. Software project management
If you are suddenly promoted to project manager by your leader and you have no project management experience at all, you will definitely be unsure; if you feel that you are not good at managing projects and want to improve your project management capabilities, then taking the PMP exam will definitely be far away and not quenching your thirst.
1. "Rapid Software Development"
This is also a famous book. It can be said that with this book in hand, you will have a senior project management consultant to give you advice, and you will no longer have to worry about your incompetence. This book does not talk about management theory. In actual project management, talking about these theories will not solve problems. This book is a bit similar to the "Software Project Ideas Collection". It lists various problems faced by various software projects and the ideas on how to solve problems. You only need to make some changes and find prescriptions to get medicine.
6. Summary
In this list of recommended reading books, I do not list popular software framework learning books, such as Struts, Hibernate, Spring, etc., nor do I list AJAX books. This is because this type of book is easy to get out of date, and most of the books mentioned above have a long life cycle that is worth buying and collecting.