- Computer Foundamental
-
The Art of Computer Programming 作者: Donald E. Knuth
这个不用多说什么了. -
Introduction to Algorithms 作者: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
传说中的MIT教材. 传说中的CLRS. -
Computer Systems: A Programmer's Perspective 作者: Randal E. Bryant and David R. O'Hallaron
想从一个初级程序员晋升为高级程序员吗? 请看这本书. -
Programming Pearls 作者: Jon Bentley
编程猪与鸡, :) -
Hacker's Delight 作者: Henry S. Warren
我看到的第一本Amazon五星书籍, 涉及很多位运算. Amazon上有人戏称这本书是"The Art of Computer Programming, Volume 0: Bit Manipulation". - Introduction to the Theory of Computation 作者: Michael Sipser
- Mathematics
- What Is Mathematics? An Elementary Approach to Ideas and Methods 作者: the late Richard Courant, Herbert Robbins, and Ian Stewart
- Discrete Mathematics and Its Applications 作者: Kenneth Rosen
- Probability and Statistics 作者: Morris H. DeGroot and Mark J. Schervish
- Concrete Mathematics: A Foundation for Computer Science 作者: Ronald L. Graham, Donald E. Knuth, and Oren Patashnik
- Operating System
- Operating Systems: Internals and Design Principles 作者: William Stallings
- UNIX/Linux
-
Advanced Programming in the UNIX Environment 作者: W. Richard Stevens and Stephen A. Rago
UNIX的圣经. -
The Art of Unix Programming 作者: Eric Steven Raymond
讲述UNIX哲学. - UNIX Network Programming, Volume 1: The Sockets Networking API 作者: W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff
- Understanding the Linux Kernel 作者: Daniel P. Bovet and Marco Cesati Ph.D.
- Network
-
计算机网络 编著者: 谢希仁
这是我推荐的为数不多的国内出版的书籍, 推荐的理由很简单, 适合初学者, 文字清晰易懂, 能让你在最短的时间内了解计算机网络的全貌, 为以后更深入的学习做好铺垫. -
Computer Networks 作者: Andrew S. Tanenbaum
这是一本巨细无遗的书籍, 可以让你从里到外, 非常透彻地了解计算机网络, 很适合于那些已经具有计算机网络基础的人用来深入学习. - TCP/IP Illustrated, Volume 1: The Protocols 作者: W. Richard Stevens
- TCP/IP Illustrated, Volume 2: The Implementation 作者: Gary R. Wright and W. Richard Stevens
- Database
- Fundamentals of Database Systems 作者: Ramez Elmasri and Shamkant B. Navathe
- Compiler
-
Compilers: Principles, Techniques, and Tools 作者: Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
传说中的龙书. - Software Engineering
- The Mythical Man-Month: Essays on Software Engineering 作者: Frederick P. Brooks
- Code Complete: A Practical Handbook of Software Construction 作者: Steve McConnell
- The Pragmatic Programmer: From Journeyman to Master 作者: Andrew Hunt
- Design Patterns: Elements of Reusable Object-Oriented Software 作者: Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides
- Assembly
- 80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing 作者: Muhammad Ali Mazidi and Janice Gillispie-Mazidi
- C
-
The C Programming Language 作者: Brian W. Kernighan and Dennis M. Ritchie
传说中的K&R. - C Traps and Pitfalls 作者: Andrew Koenig
- C++
-
The C++ Programming Language 作者: Bjarne Stroustrup
C++之父大作. 这本书不是很适合初学者, 如果你不了解C++, 那么你在看这本书的前几节时会感到异常难懂, 甚至会因为缺乏耐心而放弃. 不过这绝对是C++的圣经. -
C++ Primer 作者: Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo
适合初学者, 浅显, 讲解透彻, 入门好教材. - C++ Templates: The Complete Guide 作者: David Vandevoorde
- C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 作者: Herb Sutter
- Effective C++: 55 Specific Ways to Improve Your Programs and Designs 作者: Scott Meyers
- Exceptional C++: 47 Engineering Puzzles, Programming Problems, and Solutions 作者: Herb Sutter
- Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library 作者: Scott Meyers
- Programming: Principles and Practice Using C++ 作者: Bjarne Stroustrup
- Java
- Core Java 作者: Cay S. Horstmann and Gary Cornell
- Thinking in Java 作者: Bruce Eckel
- JavaScript
-
JavaScript: The Definitive Guide 作者: David Flanagan
一本全面介绍JavaScript的书, 你可以从中学到很多基础, 同时这本书也可以作为一本reference. - Shell Script
- Advanced Bash-Scripting Guide 作者: Mendel Cooper
- sed & awk 作者: Dale Dougherty and Arnold Robbins
- Version Control
在操作系统原理领域有两本书被公认为经典, 一本是Tanenbaum的《Modern Operating Systems》, 另一本是Abraham Silberschatz, Peter B. Galvin以及Greg Gagne的《Operating System Concepts》. 这里之所以提出来, 是因为我最初学习操作系统时在选书上走了一点"弯路". 后一本我没看过, 不便评论, 但Tanenbaum的那本我想应该提醒一下各位. 首先, 如果你是一个操作系统的初学者, 那我极不推荐你看第一本. 纵观操作系统的书籍, 那些最典型, 同时也是最基础的知识, 比如process, memory, I/O, file system, 是肯定会包含的. Tanenbaum的那本也不例外, 但在某些概念上的阐述就不是很清晰了, 会让初学者感到没有解释清楚, 也许是大牛觉得那些都是很简单的东西, 不用说的太详细. 此外书中的一些术语也不同于国内以及其它国外教材, 比如process control block, 在这本书中却叫做process table. 恐怕《Modern Operating Systems》书中的最大亮点是占了全书近1/3篇幅的关于Linux, Windows Vista以及Symbian (这里是以第三版为例, 其它版本可能不同) 的分析与介绍, 但在我看来这有点鸡肋, 毕竟关于上述三种操作系统的分析都有很不错的对应的书籍, 区区100来页怎能很好地理解一个完整的操作系统呢? 不过, 最后一章中作者讲述的作为一个操作系统设计者应该注意的地方还是值得一读的. 所以没有必要拘泥于权威, 我推荐初学者看下面这本书, 至少在我看来也是很不错的, Amazon上虽然褒贬不一, 但只有真正看了才能知晓其中的好坏.
No comments:
Post a Comment