一种编程语言的重要性并不在于语言本身,而在于这种语言所体现出来的编程思维模式。所以说,并不是你用到的书才去读,读书是一种习惯,一种积累。
《c标准库》 英文版 必读
《计算机组成与设计:硬件,软件接口》 原书第3版 必读
《现代操作系统》 原书第3版 必读
新增(2015.06.25) 图形学(计算机三座大山 : 操作系统 & 编译原理 & 计算机图形学)
《3D数学基础:图形与游戏开发》 图形学 数据知识的 入门书籍(简单直观,必读)
《3D游戏编程大师技巧》 软渲染引擎(一步一步教你怎么实现类似 DirectX 与 OpenGL API 是怎么设计的,书籍比较老旧,需要看的是 设计思想还有实践过程 &API设计)
从第二部分读(这本书已经绝版很久了,作为一个想向3D游戏发展的IT业新人,我觉得这本书十分值得一看, 对基础原理介绍还算十分详细, 例如网上基本搜不到关于1/zbuffer在屏幕空间中呈线性的证明, 这本书12章有两种证法,
并且对各种高级渲染技术从算法的角度给读者解释,书中代码量非常多, 第十二章有5万行代码(注释也很多),
综上, 我觉得在有一定的3D数学基础上看WINDOWS游戏编程大师 + 3D游戏编程大师这两本书会让你在这个领域中有一个很好的起步.)
新增:
《redis设计与实现》 4w行的 c代码 基于redis3.0
《Lua源代码剖析》 2w行的c代码 基于Lua5.3.0
《Linux内核设计与实现》2.6内核
《程序员的自我修养》
第一部分综述了操作系统的一些基础知识。比如 CPU + 内存 + IO 的三大核心,比如 程序运行时的内存管理的分页、分段,以及多线程的安全问题等。
第二部分 介绍静态链接。 先对编译器的处理过程(预编译、编译、汇编、链接)做了简明的介绍,之后详细介绍了 我们C编程时,常见的obj目标文件(编译后未链接的文件)的文件结构(ELF),实现机理。阐释了 静态链接的实现方法。链接器的历史是长于编译器的。举例来说,即使是最简单的一个hello world在屏幕上的显示都是要链接到很多文件的。
第三部分 是装载与动态链接的介绍,并介绍了linux的共享库的组织以及windows下的dll机制。C和C++作为linux和windows实现的基础,他们是如何发挥其作用的,这里都有描述。
第四部分 是程序对内存的使用,运行时库的初步介绍,系统调用与API 和 一个简单运行时库 的实现实践。
编程语言
C程序设计语言 (已读)
C语言程序设计_现代方法(第2版) (已读)
C专家编程 (已读)
C陷阱与缺陷 (已读)
-
C++程序设计语言(The C++ Programming Language)这本书不像一本编程教材,更像一本编程语言参考。有很多的迹象表明有人确实读过这本书,否则我们不可能有这么多的C++ 编译器可选择。编程初学者(或者甚至其它语言的专家),如果想学C++,不应该直接去啃C++程序设计语言(The C++ Programming Language)这本书。告诉他们去读《C++ Primer中文版》。
-
Effective C++ (已读)
C++ Primer Plus (已读)
数据结构与算法
算法:C语言实现 (已读)
算法导论 (参考书,推到正面略过)
-
算法导论(Introduction to Algorithms)(CLRS)这本书的名称是所有出版过的计算机书籍中最让人误解一个。它被广泛的使用在很多大学里,通常被当作毕业生必需的算法课程。于是,只要在大学里上过计算机课程的学生几乎都有一本这样的书。然而,除非你拥有计算机硕士学位(而且是算法研究领域的),我怀疑你顶多只读过算法导论(Introduction to Algorithms)里节选的几章内容。这个书名让人误解,是因为”Introduction”这个词让人以为它很适合初级程序员。实际上不是。这本书对算法做尽可能详尽综合的介绍,就像其它一些随处可见的类似的书一样。请不要再把这本书推荐给初学者。
-
-
计算机程序设计艺术(The Art of Computer Programming)(TAOCP)我经常听到人们把这本书描述为“每个程序员必读”的系列计算机书籍。我认为这明显不是实情。在我说出这样大不敬的话、被你们用板砖拍死之前,请让我做解释一下。这不是一本让你一页一页翻着读的书。这是一本参考大全书。把它放在你的书架上看起来会很不错(实际上也它确实很好),但如果想把它通读一遍,你需要几年时间,而且最后什么都没记住。这并不是说手边放这样一本书没有什么价值。它是一本参考书,当我遇到难题,走投无路时,很多次我都在这本书里找到办法。但这本书终究是被我当作参考书。它复杂难懂,很理论,里面的例子都是汇编语言的。好的一面是,如果你想在这本书里寻找针对某一问题的解决方案,如果你找不到,那就说明这个问题无解。它是一本对它所涉及到的领域做了最最详尽介绍的一本书。
-
-
计算机基础
UNIX网络编程 卷1:套接字联网API (已读第2、3、4、5、6、7、8、11、14、15、16、26、30. 重点是了解原理,比如tcp的握手原理、非阻塞等。其次就是跟一些选项啊、函数啊什么的,这些大概知道有哪些能干哪些事情就好了,等用到、看到的时候能够想......)
UNIX网络编程 卷2 (在读)
TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议
编译原理 (在读:只读前端部分)
-
-
编译原理(Compilers: Principles, Techniques, and Tools)(the Dragon Book) .
-
这本恐龙封面的书涵盖了开发一个编译器你所需要的全部的知识。它的内容包括词汇分析,语法分析,类型检查,代码优化,以及其它很多高深的题目。请不要把这本书推荐给初级程序员,他们需要的只是分析简单的包含数学公式或HTML的字符串。除非你真的需要实现一个能够实用的编译器(或解释器),你根本不需要掌握这本“恐龙”书的全部强大威力。把它推荐给一个遇到简单文本分析问题的人,这证明你根本没有读过它。
-
鸟哥的Linux私房菜.基础学习篇(第三版) (参考书 )
深入理解计算机系统 (在读,参考书,有时间就看)
计算机应用领域
应用密码学:协议、算法与C源程序 (已读)
软件工程与程序设计
UNIX编程艺术 (已读)
代码整洁之道 (已读)