计算机经典教材(计算机牛人的必由之路)

 

目录

1 前言

2 Mathematics (数学)

3 Data Structures & Algorithms (数据结构、算法)

4 Compiler (编译原理)

5 Operating System (操作系统)

6 Database (数据库)

7 C (C 语言)

8 C++ (C++ 语言)

9 Object-Oriented (面向对象)

10 Software Engineering (软件工程)

11 UNIX Programming (UNIX编程)

12 UNIX Administration (UNIX系统管理)

13 Networks (网络)

14 Windows Programming (Windows 编程)

15 Other (其它)

 

前言

 

推荐原则:

宁缺勿滥,决不混进糟粕 (好书不一定对所有人都合适,但对于它的目标读者群来说,一定是好书)

 

选书原则:

有国外的,不看国产的

有原版的,不看翻译的 【不过看翻译的效率会高点,前提是翻译得要不错】

看大师的作品

 

看书原则:

不要看CC++、java……今天听说C好,就跑去学C。明天听说java好,就跑去学java,最后你什么也学不到。因为不管什么语言,永远不要忘记语言的本质。语言只是一种工具,它的作用就是完成你的工作。不管把 C 的语法学得如何透彻,也不管把 C

 

trick用的如何精妙,这都不能表示你会编程。要学会如何分析问题,如何设计程序,如何用一种具体的语言来实现。如果你只会做最后一步,你只是一个编码者(coder),还不是一个程序员(programmer)。做一个programmer,不要做coder。总之,不要为了学语言而去学语言(除非你是个语言学家)

不要放弃对基础知识的学习。所谓基础知识,一般都有一个特点,那就是:它们可能看起来没用,但如果你忽视它们的话,总有一天你会后悔莫及。所以,如果不想以后再后悔的话,就在今天多花点时间。

不管学什么东西,学之前先弄明白自己要学的是什么东西,它有什么用,在你已经学和以后的发展方向中,它处于什么位置。如果这些都不明白,就好比在茫茫的丛林里面四处乱撞,就算能出去,也一定会走很多弯路

对于软件工程之类的东西,不象 C 语言有着严格的标准,最好的办法就是兼收并蓄,能看的都看,然后(最重要的)在此之上形成自己的思想(不然就什么都白看)

尽信书不如无书。书里写的只不过是写书的人认为正确的观点而已。学习前人的知识和经验,在此基础上形成自己的知识结构、观点和思维方式,才是学习的真正目的。

 

一。Mathematics (数学)

 

书名(英文):Discrete Mathematics and Its Applications (Fifth Edition)

书名(中文):离散数学及其应用 (第五版)

原作者:Kenneth H.Rosen 

【注】离散数学方面的经典教材。很系统也很全面,习题太多,上班的人应该是不可能做太多题。以前本科的时候没有学过离散数学,这本书很适合自学入门。第四版有了,有机会去把第五版买回来。不过估计暂时也没时间看完。

 

书名(英文):Concrete Mathematics : A Foundation for Computer Science (Second Edition)

书名(中文):具体数学:计算机科学基础 (2)

原作者:Ronald L. Graham / Donald E. Knuth / Oren Patashnik 

【注】第二版可惜没有中文版,而且字太小了。看了前面几章,难的不是在每章前面所讲的内容,而是在于对内容的通用性的推理。当然习题也很不错。一直希望有时间能静下来认真读下。

 

二。Data Structures & Algorithms (数据结构、算法)

 

书名(英文):Data Structures and Algorithm Analysis in C, Second Edition

书名(中文):数据结构与算法分析--C语言描述 (第二版)

原作者:Mark Allen Weiss

大凡国外的数据结构教科书,都有一个共同的特点,就是他们的第一章都不是讲的数据结构,而是软件工程的基本原则。我个人认为这是十分必要的,特别是对于大多数没有接触过程序设计的同学来说,在数据结构这个可以说是第一次接触程序设计的课程中能学习到 基本的软件工程原则,对于以后的学习是十分有好处的。写一个乱七八糟的程序出来还不如什么都不写。在我看来,这本书有两个优点:一:将软件工程的基本原则贯穿全书,二:简单,容易理解。对于初学者,这本书无疑是非常合适的。

【注】这本书粗略地翻过,虽然不厚,但是内容并不算简单。建议学过一点数据结构再来看,效果会比较好。

 

书名(英文):Data Structures & Program Design In C (Second Edition)

书名(中文):数据结构与程序设计 C 语言描述 (第二版)

原作者:Robert Kruse / C.L. Tondo / Bruce Leung 

 

 

书名(英文):Data Structures with C++ Using STL (Second Edition)

书名(中文):数据结构C++语言描述描述—应用标准模版库 (第二版)

原作者:William Ford, William Topp 

 

书名(英文):Introduction to Algorithms (Second Edition)

书名(中文):算法导论 (第二版)

原作者:Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein 

【注】对于我来说,这本目前暂时是最实用的。内容全面,写作的方式也比较好懂。而且伪语言描述算法真的比什么MIX看起清晰多了,而且省很多时间。唯一的缺点还是习题没有答案。真的比较郁闷。据说第三版官方整理了部分答案。希望早日引进第三版。

 

 

书名(英文):The Art of Computer Programming, Volume 1 : Fundamental Algorithms (Third Edition)

书名(中文):计算机程序设计艺术 1 基本算法 (3)

原作者:Donald E. Knuth 

 

 

书名(英文):The Art of Computer Programming, Volume 2 : Seminumerical Algorithms (Third Edition)

书名(中文):计算机程序设计艺术 2 半数值算法 (3)

原作者:Donald E. Knuth 

 

书名(英文):The Art of Computer Programming, Volume 3 : Sorting and Searching (Second Edition)

书名(中文):计算机程序设计艺术 3 排序和查找 (2)

原作者:Donald E. Knuth 

【注】能把这一套都看懂的人,注定数得清。作者说只要具有高中数学知识的人就看得懂这套书,这也是本书中最大的谎言。

 

三。Compiler (编译原理)

书名(英文):Compilers: Principles, Techniques, and Tools

书名(中文):编译原理、技术与工具

原作者:Alfred V. Aho / Ravi Sethi / Jeffrey D. Ullman 

 

书名(英文):Advanced Compiler Design and Implementation

书名(中文):高级编译器设计与实现

原作者:Steven S. Muchnic 

 

书名(英文):Modern Compiler Implementation in C

书名(中文):现代编译原理--C语言描述

原作者:Andrew W.Appel / Maia Ginsburg 

【注】三本书就翻过C语言描述这本,不搞编译器,就当补下基础吧。

 

四。Operating System (操作系统)

书名(英文):Operating System Concepts (Sixth Edition)

书名(中文):操作系统概念 (第六版)

原作者:Abraham Silberschatz / Peter Baer Galvin / Greg Gagne 

【注】理论性方面的经典,国产的操作系统还不就是东抄一点西抄一点。真奇怪大学为什么不用这本书作为操作系统课的教材。已阅。

 

书名(英文):Operating Systems : Design and Implementation (Second Edition)

书名(中文):操作系统:设计及实现 (第二版)

原作者:Andrew S. Tanenbaum / Albert S. Woodhull

翻译者:王鹏、尤晋元、朱鹏、敖青云 

【注】第三版了吧,这套书我很喜欢。虽然minix没有多少先进的设计,但是这套书最大的好处是让人可以对整个操作系统的实现有一个了解。不再会觉得操作系统内部有好可怕。

 

书名(英文):The Design and Implementation of the 4.4BSD Operating System

书名(中文):4.4BSD操作系统设计与实现

原作者:Marshall Kirk McKusick / Keith Bostic / Michael J. Karels / John S.Quarterman 

 

书名(英文):The Design and Implementation of the FreeBSD Operating System

书名(中文):FreeBSD操作系统设计与实现

原作者:Marshall Kirk McKusick / George V. Neville-Neil

翻译者:张辉 

 

书名(英文):The Design of The UNIX Operating System

书名(中文):UNIX操作系统设计

原作者:Maurice J.Bach 

【注】基础性的操作系统书籍,讲理论与算法。入门必读。

 

书名(英文):UNIX Internals : The New Frontiers

书名(中文):UNIX系统内幕

原作者:Uresh Vahalia 

【注】这本书没有找到。期望今年早点引进第二版。据说很值得看。

 

 

书名(英文):UNIX Systems for Modern Architectures

书名(中文):现代体系结构上的UNIX系统--内核程序员的SMPCaching技术

原作者:Curt Schimmel

翻译者:张辉 

【注】有难度的一本书,还没看。

 

书名(英文):Lions' Commentary on UNIX 6th Edition with Source Code

书名(中文):莱昂氏UNIX源代码分析

原作者:John Lions 

【注】虽然评价是如此地高,但是现在看这本书,还是有点过时了。不再是必须的了。

 

 

书名(英文):Distributed Systems : Principles and Paradigms

书名(中文):分布式系统:原理与范例

原作者:Andrew S.Tanenbaum / Maarten van Steen 

 

.Database (数据库)

 

书名(英文):An Introduction to Database Systems, Eighth Edition

书名(中文):数据库系统导论 (第八版)

原作者:C. J.Date 

 

书名(英文):Database System Concepts, Fourth Edition

书名(中文):数据库系统概念 (第四版)

原作者:Abraham Silberschat / Henry F.Korth / S.Sudarshan 

【注】好象以前做过教材。理论性比较强。适合设计数据库的人。

 

六。C (C 语言)

书名(英文):The C Programming Language, Second Edition

书名(中文):C程序设计语言,第二版

原作者:Brian W. Kernighan / Dennis Ritchie  

【注】这本书没什么说的。学C的都得看。但是不要作为第一本书来看。

 

书名(英文):The Art and Science of C : A Library-Based Introduction to Computer Science

书名(中文):C语言的科学和艺术

原作者:Eric S.Roberts 

【注】这本书更加适合作为入门来看。深浅都设计到一些,而且比较侧重思想方法。

 

书名(英文):Programming Abstractions in C : A Second Course in Computer Science

书名(中文):C程序设计的抽象思维

原作者:Eric S.Roberts 

 

书名(英文):Expert C Programming

书名(中文):C专家编程

原作者:Andrew Koenig 

【注】深入C语言必看的书。虽然个别内容过时了一点。

 

书名(英文):C Traps and Pitfalls

书名(中文):C陷阱与缺陷

原作者:Andrew Koenig  

【注】很多笔试题都要从这里面找内容。所以还是必看。

 

七。C++ (C++ 语言)

书名(英文):C++ Primer, Third Edition & Forth Edition

书名(中文):C++ Primer (第三版、第四版)

原作者:Stanley B.Lippman / Josée LaJoie / Barbara E.Moo

翻译者:李师贤、蒋爱军、梅晓勇、林瑛

平心而论,这本书的第三版并不适合入门,但是第四版适合。所以第四版的出现并不意味着第三版就失去了其价值。在我看来最好的办法就是买一本第四版的中文版和一本第三版的英文版。中文版用来入门,英文版用来作参考手册。 

【注】第四版确实容易了一些。不过还是没有看完。

 

书名(英文):The C++ Programming Language, Special Edition

书名(中文):C++ 程序设计语言 (特别版)

原作者:Bjarne Stroustrup 

【注】这本作为提高和参考好了。

 

书名(英文):Inside the C++ Object Model

书名(中文):深度探索 C++ 对象模型

原作者:Stanley B. Lippman 

 

书名(英文):Effective C++, Thrid Edition

书名(中文):Effective C++ (第三版)

原作者:Scott Meyers 

【注】看了20多个条款了。

 

书名(英文):More Effective C++

书名(中文):More Effective C++

原作者:Scott Meyers

翻译者:侯捷 

 

书名(英文):Thinking in C++, Second Edition

书名(中文):C++编程思想 (第二版)

原作者:Bruce Eckel 

 

书名(英文):Thinking in C++, Volume 2 : Practical Programming

书名(中文):C++编程思想 2卷:实用编程技术

原作者:Bruce Eckel / Chuck Alison 

 

书名(英文):Ruminations on C++ : A Decade of Programming Insight and Experience

书名(中文):C++沉思录

原作者:Andrew Koenig / Barbara Moo 

八。Object-Oriented (面向对象)

书名(英文):Object-Oriented Analysis and Design with Applications, Second Edition

书名(中文):面向对象分析与设计 (第二版)

原作者:Grady Booch 

 

书名(英文):Object-Oriented Modeling and Design with UMLSecond Edition

书名(中文):UML面向对象建模与设计 (第二版)

原作者:Michael Blaha / James Rumbaugh

翻译者:车皓阳、杨眉 

 

书名(英文):Object-Oriented Software Construction (Second Edition)

书名(中文):面向对象软件构造 (第二版)

原作者:Bertrand Meyer 

 

 

书名(英文):Design Patterns : Elements of Reusable Object-Oriented Software

书名(中文):设计模式:可复用面向对象软件的基础

原作者:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides 

 

九。Software Engineering (软件工程)

书名(英文):Software Engineering (7th Edition)

书名(中文):软件工程 (第七版)

原作者:Ian Sommerville 

 

书名(英文):Software Engineering : A Practitioner's Approach (Fifth Edition)

书名(中文):软件工程:实践者之路 (5)

原作者:Roger S. Pressman 

 

书名(英文):Software Engineering : Theory and Practice (Second Edition)

书名(中文):软件工程:理论与实践 (第二版)

原作者:Shari Lawrence Pfleeger 

 

书名(英文):The Mythical Man-Month

书名(中文):人月神话

原作者:Frederick Phillips Brooks 

【注】这本书不错,而且都是例子都是实际经验。不过要理解这本书,也需要自身有经验,以后时常抽空查阅。

 

书名(英文):Software Architecture : Perspectives On an Emerging Emerging Discipline

书名(中文):软件体系结构:一门初露端倪学科的展望

原作者:Mary Shaw / David Garlan 

 

十。UNIX Programming (UNIX编程)

书名(英文):Advanced Programming in the UNIX Environment, Second Edition

书名(中文):UNIX 环境高级编程 (第二版)

原作者:W.Richard Stevens / Stephen A.Rago

翻译者:尤晋元、张亚英、戚正伟 

【注】全面,很适合做参考书。但是从头开始学这本书需要耐性。

 

 

书名(英文):The UNIX Programming Environment

书名(中文):UNIX 编程环境

原作者:Brianw. Kernighan 

【注】老是老了点,还可以看看。

 

 

书名(英文):UNIX Network Programming, Volume 1 : The Sockets Networking API (Third Edition)

书名(中文):UNIX 网络编程 1:套接字联网API (第三版)

原作者:W. Richard Stevens / Bill Fenner / Andrew M. Rudoff 

【注】大全和权威。不过没看完。

 

书名(英文):UNIX Network Programming Volume 2 : Interprocess Communications (Second Edition)

书名(中文):UNIX 网络编程 2:进程间通信 (2)

原作者:W. Richard Stevens 

【注】没看完。

 

书名(英文):The Art of UNIX Programming

书名(中文):UNIX 程序设计艺术

原作者:Eric Raymond 

【注】值得一看。技术方面的东西看久了,看看这种书,可能会对思维有帮助

 

 

UNIX  Administration (UNIX系统管理)

书名(英文):UNIX System Administration Handbook (Third Edition)

书名(中文):UNIX系统管理技术手册 (第三版)

原作者:Evi Nemeth / Garth Snyder 

 

 

书名(英文):Linux Administration Handbook

书名(中文):Linux系统管理技术手册

原作者:Evi Nemeth / Garth Snyder / Trent R.Hein 

 

书名(英文):UNIX Unleashed (Fourth Edition)

书名(中文):UNIX 技术内幕 (第四版)

原作者:Robin Anderson / Andy Johnston 

 

书名(英文):UNIX:The Textbook

书名(中文):UNIX操作系统教程

原作者:Syed Mansoor Sarwar / Robert Koretsky / Syed Aqeel Sarwar 

 

书名(英文):Unix Backup & Recovery

书名(中文):UNIX 备份与恢复

原作者:W.Curtis Preston 

【注】其实很多系统管理的知识好像都是网上看来的,还有鸟哥的那本私房菜。

 

 

十一。Networks (网络)

书名(英文):Computer Networks (Fourth Edition)

书名(中文):计算机网络 (4)

原作者:Andrew S. Tanenbaum 

 

书名(英文):TCP/IP Illustrated, Volume 1 : The Protocols

书名(中文):TCP/IP 详解 1:协议

原作者:W. Richard Stevens 

 

书名(英文):TCP/IP Illustrated, Volume 2 : The Implementation

书名(中文):TCP/IP详解 2:实现

原作者:Gary R. Wright / W. Richard Stevens 

 

书名(英文):TCP/IP Illstrated, Volume 3 : TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols

书名(中文):TCP/IP详解 3TCP事务协议、HTTPNNTPUNIX域协议

原作者:W. Richard Stevens 

【注】这三卷,第一卷必看。第二卷讲网络栈的实现,专门研究网络的值得看。

 

书名(英文):Internetworking with TCP/IP Vol I : Principles, Protocols, and Architecture (Third Edition)

书名(中文):TCP/IP 网络互连技术 1:原理、协议和体系结构 (3)

原作者:Douglas E. Comer 

 

 

书名(英文):Internetworking with TCP/IP Vol II : Design, Implementation, and Internals (Second Edition)

书名(中文):TCP/IP 网络互连技术 2:设计与实现 (2)

原作者:Douglas E. Comer / David L. Stevens 

 

 

书名(英文):Internetworking with TCP/IP Vol III : Client-Server Programming and Applications, BSD Socket Version (Second Edition)

书名(中文):TCP/IP 网络互连技术 3:客户服务器编程和应用BSD套接字版 (2)

原作者:Douglas E. Comer / David L. Stevens 

【注】好象看过这一套,记不太清了。

 

书名(英文):Internetworking with TCP/IP Vol III : Client-Server Programming and Applications, Windows Sockets Version

书名(中文):TCP/IP 网络互连技术 3:客户服务器编程和应用Windows套接字版

原作者:Douglas E. Comer / David L. Stevens 

 

 

十二。Windows Programming (Windows 编程)

书名(英文):Inside Microsoft Windows 2000 (Third Edition)

书名(中文):Microsoft Windows 2000 技术内幕 (3)

原作者:David A.solomon Mark E.Russinovich 

 

书名(英文):Programming Windows (Fifth Edition)

书名(中文):Windows 编程 (5)

原作者:Charles Petzold 

【注】比较啰嗦的经典入门。

 

书名(英文):Programming Applications for Microsoft Windows

书名(中文):Microsoft Windows 应用程序设计

原作者:Jeffrey Richter 

 

书名(英文):Programming with Microsoft Visual C++ .NET (Sixth Edition)

书名(中文):Visual C++.NET 技术内幕 (6)

原作者:George Shepherd / David Kruglinski 

 

书名(英文):Dissecting MFC

书名(中文):深入浅出MFC

原作者:侯捷 

【注】虽然我对这些不了解,但是我知道windows核心编程其实是最值得读的书之一,居然没有被加进来。

 

 

十三。Other (其它)

书名(英文):Computer Systems : A programmer' s Perspective

书名(中文):计算机系统

原作者:Randal E. Bryant / David R. O'Hallaron 

 

书名(英文):Pattern Classification (Second Edition)

书名(中文):模式分类 (2)

原作者:Richard O. Duda / Peter E. Hart / David G. Stork 

 

书名(英文):Code Complete 2

书名(中文):代码大全第2

原作者: Steve McConnell 

 

书名(英文):Programming Pearls (2nd Edition)

书名(中文):编程珠玑2

原作者: Jon Bentley

你可能感兴趣的:(计算机)