Java learning road (book recommendation)

Reprinted from: https://www.cnblogs.com/WangBoBlog/p/7622753.html

1. Basic class

1. "Thinking in java" (read 2 times), the first entry is to establish the correct concept

2. The book "Core Java" is closer to practice, with more API introductions, and similarly, updates are more frequent. (You can choose the key chapter to read)

2. Advanced class

1. "Effective Java" (read 1 time), after familiarizing yourself with the syntax and API, you need to know the best practices and pitfalls. There is no better book than this.

2. "In-depth Java Virtual Machine" (read 2 times), the translation is general, but it is necessary to read, it is best to read it in conjunction with the latest JVM specifications.

3. "Java Puzzlers", which introduces some leftovers that you may not have noticed through puzzles, and is also a good read for fun

3. Specific areas

1. Concurrent programming (process, thread, coroutine, concurrent mode):

(1) "Java Concurrency in Practic" (read 1 time), a must-read classic in the field of concurrency.

(2) "Java Concurrent Programming: Design Principles and Patterns" is also the work of Doug lea.

(3) "java threads", a primer.

(4)《Programming Concurrency on the JVM:Mastering Synchronization, STM, and Actors》

(5) "The Art of Multiprocessor Programming" (read 1 time)

2. Set programming (data structures and algorithms):

Collection Framworks/STL, Data Structures and Algorithms: "Introduction to Algorithms" "Introduction to Algorithms" "The Art of Computer Programming"

《Java Generics and Collections》

3. Network programming:

(1) O'Reilly's "Java nio" is recommended by many people. I personally think it is average. It is basically just a more detailed description of the API. Many of O'Reilly's java series are like this.

(2) I recommend this book "Fundamental networking in java", which teaches you how to do java network programming from the simple to the deep, and introduces a lot of background knowledge, and even introduces various best practices, network programming models and Java sockets on different platforms. differences, etc.

(3) Netty

4. web programming

(1) Servlet specification

(2) JSP specification

(3) JavaBean specification

(4) JMS/Java Naming and Directory Interface(JNDI)/JDBC/Java Transaction API(JTA)

(5) Struct2 + Spring + ibatis/hibernate/jdbc/

4. Pattern and Design

1 architectural pattern,

1. "Analysis Mode - Reusable Object Model"

2. "Pattern-Oriented Software Architecture", which seems to have been translated in 5 volumes in China, is an absolute classic, but unfortunately the translation is poor.

3. "Enterprise Application Architecture Patterns" (2 times)

4. "Distributed Architecture: Pick a Book"

2 Design Patterns

1. "Design Patterns", a classic of GOF.

2. "Design Pattern Refinement" (1 time), there should be the latest version, which I think is more suitable for entry.

3. "Head first Design Patterns", an easier primer.

4. "Java and Patterns"

3 Code Patterns/Conventions/Coding Conventions

1. "Code Encyclopedia" (1 time)

4 Refactoring

1. "Refactoring - Improving Existing Code Design" (1 time), must read if you want to write good code.

2. "Refactoring and Patterns"

5. Methodology/Software Engineering

1. "Agile Software Development"

2. "Test Driven Development" (1 time), you don't necessarily need TDD, but you must learn to do unit testing.

3, "Agile Java", can also be used as a java primer.

4. "Rapid Software Development"

5. "Object-Oriented Analysis and Design", a must-read for OO design.

6. "The Art of Unix Programming" (1 time), open your eyes.

6. Beyond Java

1. "In-depth understanding of computer systems" (0.8 times)

2. "Introduction to Algorithms" reading (0.9 times) basic part reading, other reference reading

3. OS part: "In-depth Linux Kernel Architecture", "Linux Kernel Design and Implementation", "Linux Kernel Analysis and Operating System Design", "Linux/UNIX System Programming Manual"

4. "TCP/IP Detailed Explanation" (0.8 times) (three volumes), "Advanced Programming in UNlX Environment", "Unix Network Programming" (two volumes), must read for learning network programming.

5. The first and second volumes of "C++ Network Programming" introduce ACE, but the introduction to the use of various modes is very worthwhile to read.

6. "Construction and Interpretation of Computer Programs", a must read

7. "Compilation Principles" Dragon Book, the latest version is explained in java, I haven't read it yet, by the way.

8. "Database Concept"

9. "Joel Said Software" programming culture

10. "The Myth of Man-Month", "Human Piece" (read 1 time)

11. "Effective Programmers" (read 1 time), a book that inspired me a lot.

12. "The Way of Programmers' Cultivation" (read 1 time)

Reference: 
My Java Learning Recommended Books http://jm-blog.aliapp.com/?p=522
Java Development Practical Authoritative Book Collection http://www.iteye.com/news/21791/References
for Learning JVM http: //jm-blog.aliapp.com/?p=525

Which book is recommended for Java beginners? http://www.zhihu.com/question/19848946?rf=19752221


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325162297&siteId=291194637