计算机类书籍有很多,关于编程的应该占了绝大部分。但是真正的了解计算机不止只会一些编程就可以的,需要了解一些基础知识,有了这些知识的加持,你才能更好的提升自己。所以很多编程的高手经常看恰恰是这类基础知识。
计算机是利用信息获取、表示、存储、处理、控制等的理论、原则、方法和技术来用于实践中的学科。
基础方面:首先推荐一本算法导论。
比较适合有编程语言基础的读者,它把数据结构中的算法从基础到非常深入全部都包括了,个人建议你先把C语言用熟悉了,然后再去看算法导论,如果有决心看完,数据结构都不用看,因为你看完算法导论,就等于学会了非常高级的数据结构。原书很厚,对于时间不多的人,看完很难。大多数人都拿它当做一本字典,不会了就去上面找,有空就看看。
基础类之:数据库系统概念
该书全面介绍数据库系统的各种知识,透彻阐释数据库管理的基本概念。本书内容丰富,不仅讨论了关系数据模型和关系语言、数据库设计过程、关系数据库理论、数据库应用设计和开发、数据存储结构、数据存取技术、查询优化方法、事务处理系统和并发控制、故障恢复技术、数据仓库和数据挖掘,而且对性能调整、性能评测标准、数据库应用测试和标准化、空间和地理数据、时间数据、多媒体数据、移动和个人数据库管理以及事务处理监控器、事务工作流、电子商务、高性能事务系统、实时事务系统和持续长时间的事务等高级应用主题进行了广泛讨论。
基础类型:现代操作系统
该书的作者Andrew S. Tanenbaum当年为了教授操作系统课程发明了MINIX,而MINIX就是最早的Linux原型。Tanenbaum的书写得都非常好,操作系统的知识娓娓道来,由浅入深慢慢深入到操作系统的内部。该书相比作者的另一本描述操作系统实现的书,增加了现代操作系统中的新特性,比如多处理机系统,虚拟化,分布式系统等内容。同时该书还有配有案例研究,对于几种流行的操作系统进行了分析,使你能对知识有更深刻的了解。当然这本书的内容是非常经典的,线程,锁的概念几乎是每个程序员的必备知识,它是你进行多线程编程时的基础;文件系统,I/O原理可以说是嵌入式的基础。最后说下该书的翻译,总体来说我觉得不错,行文流畅,把原作者的意思也表达得比较清楚,毕竟译者从第一版翻译到了第三版。