Books are the crystallization of human wisdom. Good books are like good teachers and friends. Reading classic books is like listening to the talk of masters, standing on the shoulders of giants to think about and learn nutrition;
As a Java/Android programmer from a computer science class, the following are some of the professional books that park has read and planned to read (to be improved,
### Programming language, paradigm:
-The C programming language;
-Expert C programming;
-Pointers on C;
-C traps and pitfalls;
-The C ++ programming language;
-The design and evolution of C ++;
-Inside the C ++ object model;
-C ++ primer;
-Thinking in C ++;
-Valid tive C ++;
-More Effective tive C ++;
-Essential C ++;
-C ++ templates: the complete guide;
-Accelerated C ++: practical programming by example;
-C ++ gotchas: Avoiding common problems in coding and design;
-Modern C ++ design: Generic programming and design patterns applied;
-Efficient C ++: Performance programming techniques;
-Exceptional C ++;
-More than tional C ++;
-Exceptional C ++ style;
-Advanced C ++ programming styles and idioms;
-C ++ programming style;
-C ++ coding standards;
-C ++ STL;
-Valid STL;
-Generic programming and the STL;
-C ++ concurrency in Action: Practical multithreading; boost;
-Thinking in Java;
-Core Java 2;
-Valid Java;
-Java and Mode;
-The Java programming language;
-The javatm virtual machine specification;
-The Java language specification;
-Concurrent programming in Java: design principles and patterns;
-Inside Java virtual machine;
-Java Network programming;
-Java puzzles: traps, pitfalls and corner cases;
-Dive into Python;
-Objects unencapsulated: Java, Eiffel and C ++;
-Structured programming; edsger W. Dijkstra;
### Requirement, analysis, design, modeling, construction, architecture, testing:
-The psychology of computer programming;
-An Introduction to systems thinking;
-General Principles of systems design;
-Quality software management: systems thinking;
-General Principles of systems design;
-Systems analysis and design;
-Bringing Design to software;
-Design patterns: Elements of reusable object-oriented software;
-Design Patterns explained;
-Core J2EE patterns: Best Practices and design strategies;
-Patterns of enterprise application architecture;
-Pattern-oriented software architecture;
-Applying UML and patterns: An Introduction to object-oriented analysis and design and the Unified Process;
-Analysis Patterns: Reusable object models;
-More process patterns: delivering large-scale systems using object technology;
-Refactoring to patterns;
-Refactoring: improving the design of existing code;
-Structure and interpretation of computer programs;
-Object-oriented software construction;
-Object-oriented analysis and design with applications;
-Nature-object-oriented Practice Guide;
-Fundamentals of object-oriented design in UML;
-The uniied software development Porcess;
-The uniied modeling language user guide;
-The uniied Modeling Language Reference Manual;
-UML Distilled: a brief guide to the standard Object Modeling Language;
-Software craftsmanship;
-Design by contract by example;
-Software Architecture in practice;
-The science and art of software development;
-The practice of programming;
-Code reading: The Open Source perspective;
-Working implements tively with legacy code;
-The pragmatic programmer;
-The pragmatic programmer: From journeyman to master;
-Programming pearls;
-Code complete;
-Writing Secure Code;
-Writing clean code;
-Clean code;
-Test-driven development: by example;
-Pragmatic unit testing: in Java with JUnit;
-Writing valid tive use cases;
### Framework, middleware, platform, server:
-Embedded android;
-Pro android;
-Assumerverpages;
-Java Servlet programming;
-Enterprise JavaBeans;
-Mastering EJB;
-Database programming with JDBC and Java;
-Expert one-on-one J2EE design and development;
-Expert one-on-one J2EE development without EJB;
-Expert spring MVC and Web flow;
-Pro spring;
-Spring live;
-Spring in action;
-Webwork in action;
-Struts in action;
-Hibernate in action;
-Mybatis in action;
-Jquery in action;
-JUnit in action;
-Javascript: The definition guide;
-JavaScript design patterns;
-Foundations of Ajax;
-Ajax design patterns;
-Ajax in action;
-Mastering regalr expressions;
### Compiler, assembly, linker, virtual machine:
-Compilers: Principles, techniques and tools;
-Modern compiler implementation in C;
-Advanced compiler design and implementation;
-Compiler Construction: Principles and Practice;
### Software engineering, process, method:
-Software Engineering: a practitioner's approach;
-Software Engineering: theory and practice;
-Software Engineering;
-Waltzing with bears: Managing Risk on software projects;
-Leleware: productive projects and teams;
-The Mythical man-month;
-Introduction to the personal software process;
-Introduction to the Team Software Process;
-Rapid Development;
-The rational uniied process: an introduction;
-The uniied software development process;
-Agile Software Development: Principles, patterns, and practices;
-Continuous integration: Improving Software Quality and switching risk;
-Lean software development: an agile toolkit;
-Agile Software Development: The cooperative game;
-User stories applied: for Agile Software Development;
-Extreme Programming explained: Embrace change;
-Practices of an agile developer: working in the real world;
-Adaptive software development: a collaborative approach to managing complex systems;
-Domain-driven design: tacking complexity in the heart of software;
### Datastructure, algorithms, patterns:
-The art of computer programming; Donald. E. knuth;
-Introduction to algorithms; Thomas H. cormen;
-Data Structure and algorithm analysis in C; Mark Allen Weiss;
-Fundamental of computer algorithms; Sartaj Sahni;
-Fundamental of Data Structure; Sartaj Sahni;
-Data structures, algorithms, and applications in C ++; Sartaj Sahni;
-Computer algorithms;
-Distributed algorithms;
-The timeless way of building;
-A Pattern Language: towns, buildings, construction;
### Multimedia, encoder, decoder:
-Computer Graphics;
-Computer Graphics: C version;
-Computer Graphics with OpenGL;
### Storage, database, SQL:
-An Introduction to database systems;
-Database System concepts;
-Data Mining: concepts and techniques;
### Communication, network, protocal:
-Data and computer communicatios;
-Data communications and networking;
-Computer networks;
-Computer Networking: a top-down approach;
### Security, privacy, PERSONALIZATION:
-Computer Security;
-Computer Security: Principles and Practice;
-Computer Security art and science;
-Information Security principles and practice;
-Network security principles and practices;
-Cryptography and network security: Principles and Practice;
-Cryptography theory and practice;
-Building secure software: how to avoid security problems the right way;
-Network Security Essentials: Applications and standards;
-Applied cryptography: protocols, algorthms, and source code in C;
-Writing Secure Code;
### Operating system, principle, kernel, Shell, API:
-Modern Operating Systems; Andrew S. Tanenbaum;
-Operating Systems: internals and design principles; William Stallings;
-Operating Systems: design and implementation;
-Operating System concepts; Abraham silberschatz;
-Understanding_the_linux_kernel; Daniel P. bovet;
-Linux device drivers; jonahan Corbet;
-Linux kernel development; Robert love;
-Linux system programming; Robert love;
-Linux kernel source code Scenario Analysis;
-Internetworking with TCP/IP; Douglas E. Comer;
-TCP/IP was strated; W. Richard Steven S;
-UNIX network programming; W. Richard Steven S;
-The art of Unix programming; Eric S. Raymond;
-Advanced Programming in the Unix environment; W. Richard Steven S;
-Advanced bash-scripting guide; Mendel Cooper;
-The Linux Command Line; William E. shotts, Jr.
-Linux Command Line and shell scripting Bible; Richard Blum;
-Mastering Unix shell scripting; Randal K. Michael;
-Distributed systems: Principles and paradigms;
### Computer system, theory, architecture:
-Computer Systems: A programmer's perspective; Randal E. Bryant;
-Computer architecture: a quantitative approach;
-Structured computer organization;
-Computer organization and design the hardware/software interface;
-Introduction to automata theory, ages, and computation;
-The annotated Turing; Charles Petzold;
-Code: The hidden language of computer hardware and software;
### Mathematics:
-Concrete mathematics a foundation for computer science; Donald. E. knuth
-Discrete mathematics and its applications; kenth H. Rosen