书是人类智慧的结晶,好的书就像良师益友,读经典书就如同聆听大师谈话,站在巨人的肩膀上思考,汲取营养;
作为计算机专业科班出身的Java/Android程序员,以下是朴人已读的和计划阅读的专业书(待完善),共勉,
###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++;
-Effective C++;
-More Effective 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 Exceptional C++;
-Exceptional C++ Style;
-Advanced C++ Programming Styles and Idioms;
-C++ Programming Style;
-C++ Coding Standards;
-C++ STL;
-Effective STL;
-Generic Programming and The STL;
-C++ Concurrency in Action: Practical Multithreading; Boost;
-Thinking in Java;
-Core Java 2;
-Effective Java;
-Java 与模式;
-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;
-道法自然-面向对象实践指南;
-Fundamentals of Object-Oriented Design in UML;
-The Unified Software Development Porcess;
-The Unified Modeling Language User Guide;
-The Unified 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 Effectively 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 Effective Use Cases;
###framework, middleware, platform, server:
-Embedded Android;
-Pro Android;
-JavaServerPages;
-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;
-Peopleware : Productive Projects and Teams;
-The Mythical Man-Month;
-Introduction to the Personal Software Process;
-Introduction to the Team Software Process;
-Rapid Development;
-The Rational Unified Process:An Introduction;
-The Unified Software Development Process;
-Agile Software Development: Principles, Patterns, and Practices;
-Continuous Integration:Improving Software Quality and Reducing 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内核源代码情景分析;
-Internetworking with TCP/IP; Douglas E. Comer;
-TCP/IP Illustrated; W.Richard Stevens;
-UNIX Network Programming; W. Richard Stevens;
-The Art of UNIX Programming; Eric S. Raymond;
-Advanced Programming in the UNIX Environment; W.Richard Stevens;
-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, Languages, 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; Kenneth H.Rosen
朴人的码农书