《C程序设计语言》(The C programming language) 是 Brian W.Kernighan(布莱恩·克尼汉)和 Dennis M.Ritchie(丹尼斯·里奇)编写得传世之作,作者是为了重写UNIX操作系统而发明得C语言,这本书十分简练,却颇让人启发。可以拿来当作C语言的说明书了。
《C和指针》(Pointers on C) 是 Kenneth·Reek (里科)编写的一本关于指针的书籍,是C语言进阶之路的必读之作。本书详细介绍了指针在C语言的具体应用以及各种奇技淫巧。
《C专家编程》 (Expert C Programming: Deep C Secrets)是LinDen P.V.D(林登)编写的一本关于C语言指针方面的书籍。也是C语言学习的经典之作。本书比C和指针稍微难一点,不过对于C语言的内存编程以及计算机的一些底层知识讲解非常透彻。
《C++程序设计语言》 (The C++ programming language)是Bjarne Stroustrup(本贾尼斯 · 特劳斯特鲁普)大佬编写的C++开山之作。本书深入系统地讨论了C++的设计思想,以及最新的C++编程技巧,对读者可能有一定的要求,初学者可能更喜欢更具体的 《C++ Primer》 ,但是本书确实资深C++从业者的必备书籍。本书的作者是贝尔实验室的大佬,同时也是C++的发明者,因此本书是学习C++的必读之作。
《Effective C++:改善程序与设计的55个具体做法》 (Effective C++: 55 Specific Ways to Improve Your Programs and Designs)是Scott Meyers(斯科特 · 梅耶)总结的C++编程技巧,非常具有实用性和代表性。据说是C++学习的必读之作。
《More Effective C++:35个改善编程与设计的有效方法》 (More Effective C++: 35 New Ways to Improve Your Programs and Designs)是Scott Meyers(斯科特 · 梅耶)编写的C++编程技巧,比之前一本 《Effective C++》 更深入一些,但是确实大家编程中遇到的一些问题总结。
《算法导论》(Introduction to Algorithms)是MIT的四位大师(omas H.Cormen / Charles E.Leiserson / Ronald L.Rivest / Clifford Stein )为本科生编写的算法的导论教材。本书虽然叫导论,但是确非常深厚。全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,本书也是一本案头必备的参考书或工程实践手册。
这本书值得大家花上一年的时间仔细琢磨。
《具体数学》 (Concrete Mathematics)是Stanford老教授Donald E. Knuth 编写的一本关于计算机方面的数学书籍。本书的内容也是比较深厚,但确实另外一套书籍 TAOCP 的background。不过确实非常值得一看的。
《计算机程序设计艺术》 (The Art of Computer Programming)又称 TAOCP,是Stanford老教授Donald E. Knuth编写的一系列计算机程序设计的经典书籍。全书共有7卷,目前已经完成四卷。这套书是计算机历史上的巅峰之作,也被评为20世纪人类历史的十大杰作(书籍),说这套书为艺术是不为过的,作者为写好这套书,发明了Latex编译系统。本套书涵盖了算法的各个方面,是计算机方面的集大成者。非常值得拜读。
相对而言,算法导论就真的成为导论了。
《深入理解计算机系统》(Computer Systems: A Programmer’s Perspective)是CMU老系主任(Randal E.Bryant)为本科生编写的计算机体系结构教材。本书不是关于操作系统的书籍,而是计算机组成原理的经典书籍。本书会告诉你硬件是怎么工作的,以及如何系统地优化你的程序。强烈建议花个半年时间阅读,肯定会收获很多。
《计算机体系结构:量化研究方法》(omputer Architecture:A Quantitative Approach)是计算机体系结构两位专家John L. Hennessy(Stanford前校长)和 David A. Patterson (Berkeley计算机系主任)编写的计算机体系结构经典书籍。本书以MIPS为基础,从硬件的角度介绍计算机体系结构的设计,非常值得拜读。
《计算机组成与设计:硬件/软件接口》(Computer Organization and Design: The Hardware/Software Interface)是计算机体系结构两位专家John L. Hennessy(Stanford前校长)和 David A. Patterson (Berkeley计算机系主任)编写的另外一本计算机体系结构经典书籍。本书以MIPS为基础,从软件的角度介绍计算机体系结构的设计。
《设计模式:可复用面向对象软件的基础》(Design Patterns: Elements of Reusable Object-Oriented Software)是 Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides 等人编写的软件体系结构设计的开山之作。经典毋庸置疑,对于大型软件开发设计的人员来说,非常值得学习。
《Linux程序设计》(Beginning Linux Programming)是Neil Matthew / Richard Stones编写的Linux程序设计的入门读物,以前刚开始学编程的时候,看不太懂,不过现在看一边却觉得非常的基础了。
本书对于学习Linux程序设计的人来说,确实非常经典的读物。
《UNIX环境高级编程》(Advanced Programming in the UNIX Environment)是由W.Richard Stevens编写的一本关于Linux环境下的编程书籍。本书是被誉为UNIX编程 圣经。
可惜作者英年早逝,不然会给我留下更多的经典。
《TCP/IP详解》(TCP/IP ILLustrated :Volume 1:The Protocols,Volume 2:The Implementation,Volumes 3:TCP for Transactions, Additional TCP Applications, The Unix Domain Protocols)是由已故计算机科学家W·Richard Stevens编写的TCP/IP协议指南。本书是以UNIX环境编写的书籍,全书介绍了一个简单的TCP/IP协议栈的实现,是学习计算机网络的必读之作。
《UNIX网络编程》(Unix Network Programming)是由已故UNIX网络专家W. Richard Stevens编写的UNIX网络编程经典读物,本书不同于 TCP/IP详解,是从用户程序的角度出发,设计和实现高效的网络编程技巧。
《现代操作系统》(Modern Operating Systems)是 Andrew S·Tanenbaum 编写的操作系统经典读物,本书侧重于原理方面介绍操作系统的设计与考量。
《操作系统设计与实现》(Operating Systems:Design and Implementation)是 Andrew S·Tanenbaum 编写的另一套操作系统经典读物,本书介绍MNIX的设计与实现细节。MNIX最开始是为了给本科生教学设计的操作系统,也是启发Linus设计Linux的原型系统。
《Orange S:一个操作系统的实现》 是于渊编写的一本国产操作系统实践读物,作者从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本身,同时关注完成这些代码的思路和过程。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。读者可以根据路线图逐步完成各部分的功能,从而避免了一开始就面对整个操作系统数万行代码时的迷茫和挫败感。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。
本书是为数不多的计算机领域国人编写的书籍,值得拜读。
《编译原理,技术和工具》 (Compilers:Principle,Techniques and Tools)是Alfred V.Aho,Monica S.Lam,Ravi Sethi 等 人编写的编译原理方面的经典书籍,别称为龙书。
《现代编译原理:C语言描述》(Modern Compiler Implementation in C)是Andrew W.Appel 和 Jens Palsberg 编写的一本编译原理方面的书籍,重视实践,本书以C语言的一个子集为研究对象,实现了一个简单的编译工具。别称为虎书
《高级编译器设计与实现》(Advanced Compiler Design and Implementation)是Steven S.Muchnick等人编写一本编译方面的高级教材。别称为鲸书
《程序员的自我修养:链接、装载与库》 是潘爱民,俞甲子,石凡编写的一本Linux平台的编译与链接方面的书籍,这也是为数不多的国人写的经典书籍。