Java (http://www.javaeye.com)
Fan Kai (http://robbin.javaeye.com)
As a Java programmer, the most painful thing is that you can choose a wide range of books, you can read too many books, and it is often easy to get at a loss. I want to select some technical books I have read and recommend them to you in the order of study, especially Java programmers who want to continuously improve their technical skills.
I. Java programming Basics
Programmers who have no Java programming experience need to get started and read any introductory books at will. At this stage, you need to quickly master the basic java syntax and basic usage. The purpose is to "Never get started ", get familiar with Java first. It takes a short time to quickly go through the Java syntax and write more code by using tokens with guesses ".
1. Java programming ideas
After some java programming experience, you need to "know why. At this time, "Java programming ideology" is a good book that gives you a clear understanding of the basic object-oriented knowledge and basic java syntax, the basic class library has a clear explanation, which can help you lay a good foundation for Java programming. The disadvantage of this book is that it is too thick and coarse. It is not suitable for modern people to learn quickly. Therefore, it is not worth reading every chapter in this book, you can focus on it in depth.
2. Chinese version of agile Java
This book was handed to me by the publishing house. As soon as I got it, I had no pages on the bookcase, but I did not go over it when I sorted it out two days ago, I found this is definitely a good book! A major feature of this book is unit testing and tdd throughout the book. In the process of teaching you all kinds of important basic knowledge of Java, it has a subtle influence on your Agile programming thinking and moving towards TDD. In addition, this book is quite new. Based on the jdk5.0 syntax, it is also good to learn the new jdk5.0 syntax. This book is also very suitable for the selection of content. After all, the Java language has a huge library and can talk too much about it. The content and content selected in this book are very suitable, it will give you the least time to master the most important knowledge of Java, and cultivate excellent programming ideas by the way. This is really a rare good book.
Although the author positions this book at the entry level, I am not sure if it is a little deep in getting started. I also want to flip this book and learn it when I have time.
Ii. Advanced Java programming
To lay a good Java Foundation, more practical experience is needed. I don't think there is any shortcut. There are two books worth reading at this stage of your programming career, cultivating good programming habits and improving your code quality.
1. refactoring to improve the design of existing code
This book is very popular. You don't need to introduce it much. You can flip it over in your spare time and prove it with your own practices. This book has a subtle influence on you.
2. Test-driven development by example
This book is very thin and seems to have no burden. You can look for a weekend afternoon to finish reading the book. The role of this book is to help you cultivate TDD ideas through practice.
Iii. Path to Java architect
At this stage, you should have been very skillful 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, this is your first step towards architects.
1. Expert one-on-one J2EE design and development
This book is a famous book by Rod Johnson and is very classic. 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, with the participation of many industry experts. Although the signed translator is javaeye, javaeye does not contribute much, but it is truly the name of the translator.
The above two books are the classic masterpiece of rod Johnson, a must-read book for Java architects. Among the books I have recommended, I have read the most carefully and seriously. At that time, I almost read this book in an out-of-the-box manner, when I was a child, I picked up the lights and went to night to read Jin Yong's martial arts novels. The content in the book, as well as my own experience and knowledge, were thoroughly summed up. After reading this book, I was able to get through the channels, the feeling of explosive growth in power.
However, I have read comments from other people and it seems that the reading experience is not as high as I do, maybe because of the different knowledge accumulation and experience of each person. At that time, I had accumulated a wealth of experience and knowledge, but there was no systematic arrangement. Let the book be sorted out and a complete knowledge system was formed immediately.
3. Enterprise Application Architecture Model
Martin has another famous book, but I have read this book extensively and have not read it carefully. This book seems more suitable for framework developers. For example, if you want to write an ORM on your own, this book must be viewed. However, it doesn't matter if you don't look at the application. But if you are free, I recommend you take a look at it carefully to see why the framework is designed like this, in this way, 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. Agile Software development principles, models and practices
The famous book of Uncle Bob, the classic masterpiece of agility, is quite special. It is not so much a book about the software development process as a book about the software architecture, this book takes a lot of space to talk about various object-oriented software development models. I personally think that after reading this book, you don't have to read gof's design pattern.
4. Software Development Process
Understanding the software development process is not only to improve the good programming habits of individual programmers, but also to enhance the foundation of team collaboration.
1. UML Essence
In fact, UML is not necessarily related to the software development process, but it is a tool required for the software team to collaborate and communicate and write software documents. However, there are not many practical diagrams in UML. It is enough to read this book and there is no need to chew on things like the UML user guide. I would like to remind you that the Chinese translation of this book is very bad. You are advised to read the original English version if necessary.
2. Resolve eXtreme Programming to embrace change XP
This is the second version of Kent Beck's masterpiece. There is nothing to say. You must read books.
3. unified software development process up
In fact, up and agile are not necessarily in conflict. Up also emphasizes iteration and testing, but the document and process-driven by up are not agile. In any case, up is worth reading. After all, there are very few enterprises that really accept agility in China. You still need to arm yourself with up, even if it is a pack of XP.
4. agile modeling AM
Scott Ambler's masterpiece, this book is very progmatic, telling you how to be agile and up, unify agility and up, and put forward many progmatic suggestions and practices. You can read three books, resolution eXtreme Programming Embracing Change, unified software development process, and agile modeling, to see the differences between XP and up, let's look at how am unifies XP and up, and combines these three theories into one furnace to form your own theoretical system. Then you can write a book.
V. Software Project Management
If you are suddenly Promoted to a project manager by a leader and you have no project management experience, you will surely feel confused. If you feel that your project management skills are poor, you would like to improve your project management capabilities, therefore, PMP is definitely far from quenching thirst.
1. Fast Software Development
This is also a masterpiece. In this case, if you have a book in hand, you will have a senior project management adviser to give you advice, and you will no longer have to worry about your incompetency. This book is not about management theory. In actual project management, these theories do not solve problems. This book is a bit similar to "software project ideas, I listed various problems faced by various software projects and the ideas on how to solve the problems. You just need to make some changes and just find someone to take the medicine.
Vi. Summary
In this list of recommended books, I did not list popular books on software frameworks, such as struts, hibernate, spring, or Ajax. This is because these books are easy to get out of date, and the life cycle of most of the above books is long enough, so it is worth buying and collecting them.