计算机专业值得推荐的书单

1,859 阅读7分钟

本文来自个人博客,欢迎访问计算机必读书籍,对于计算机相关学习可以看看计算机学习路线

前言

记录一下大学四年对自己帮助最大的一些书单

大一第一门课程是 C 语言,当时我对编程一窍不通,只觉得是高深无比的东西,而身边有些同学在高中 NOIP的奖牌就拿到手软。

当时链表、二分这种基础的代码都写不好,后来也在学长的建议下,开始自学看视频 + 看书。随着写的代码越来越多,看的技术书籍也越来越多,慢慢的,我发现似乎找到了编程的感觉,对编程也逐渐变得热爱起来。

在这期间,我买了很多书,也看了很多技术书,发现书不在于多,而在于经典。

你想想,那些前辈、大佬将自己十几年的经验都写进一本书里,我们通过几天就可以学习到,这不是血赚吗!

读经典的书是站在巨人的肩膀上。

所以我在这里列出我认为经典的书,尽量保持少,精简。

推荐大家看书的时候保持 看书、实践、看书.... 这样不断的循环迭代,不要只看书也不要只写代码。理论结合实践才能进步最快!

这是我大学买过看过的一些书。。。毕业的时候大部分都卖了,因为实在是太重了,现在我看书大部分也都是在网上找 PDF,这样一方面是携带方便,我一个电脑就可以随便存几百本书,另一方面是可以方便我快速筛选一些书,如果确实有特别好的书就会去购买纸质版的。

在这里也只推荐我觉得比较好的书,宁缺毋滥。

书单推荐

一、计算机思维

  • 《数学之美》

    • **推荐理由: ** 吴军博士文笔流畅、干货满满,同时切合实际应用,可以作为计算机科学(尤其是AI领域)的入门读物

  • 《程序员的数学》系列

    • 推荐理由: 程序员需要一定的数学知识,但不是像高数那样,这个系列一共三本,比课本有趣,通俗易懂,而且切合实际应用,良心推荐。第1部讲数学思维,2是概率统计,3是线性代数。

  • 《编码》

    • 推荐理由: 隐匿在计算机背后的语言,这本书不应该叫编码,它更应该叫“Petzold教你造计算机”——作者Charles Petzold创造性的以编码为主题,从电报机和手电筒讲到数字电路,然后利用数字电路中的逻辑门构造出加法器触发器,最后构造出一个完整的存储程序计算机。不要被这些电路概念吓到——编码使用大量形象贴切的类比简化了这些概念,使其成为最精彩最通俗易懂的计算机入门读物。

二、计算机基础

2.1 操作系统

  • 《现代操作系统》

    • 推荐理由: 本书虽然是理论的书,但是里面的一些操作系统算法介绍都挺非常的详细,有关操作系统的各种理论也是非常详实。

  • 《深入理解计算机系统》

    • 推荐理由: 这本书是涵盖了计算机组成、操作系统、网络等各大课的大杂烩,兼具深度和广度,值得一看,具体阅读方法可以看看如何阅读深入理解计算机系统

  • 《自己动手写操作系统》

    • **推荐理由:**这本书从零开始实现一个 mini 操作系统内核,一步步指导读者用汇编和C语言实现一个可运行的操作系统内核。看完之后可以对操作系统最基本的原理有比较好的理解。

  • 《操作系统真象还原》

    • 推荐理由: 这本书正如其名,带着你从 0 开始实现(还原)一个操作系统,最可贵的是,这本书会将需要的前置知识提前安排章节做讲解,比如汇编、内联汇编,你完全不用担心不会汇编、C语言,在这本书里作者讲的非常的详细,只要跟着做,自己就能写出一个 mini os内核,如果想实现操作系统内核的一定不要错过。

2.2 计算机网络

  • 《网络是怎么连接的》

    • **推荐理由:**这本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。可以帮助你理解一个数据包是如何从一台电脑发送到另外一台的。看完这本书你就不会再被面试题 **”浏览器输入一个 url,到显示出来中间经过了哪些“**所难倒。

  • 《计算机网络-自顶向下方法》

    • **推荐理由:**这本书首创采用自顶向下的方法讲解计算机网络的原理和协议,将网络分层逐一拆解讲解,自顶向下循序渐进,能够帮助读者快速的理解整个网络世界,也经常被各大高校作为计算机网络的教材而使用。

  • 《图解HTTP》

    • **推荐理由:**这本书对互联网的基石——HTTP协议进行了全面系统的介绍,详细地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。无论前端还是后端的开发人员都应该掌握HTTP,推荐。

2.3 编译原理

  • 《编译器设计-第二版》
    • 推荐理由:这本书深入剖析现代编译器运用的算法和技术,强调代码优化和代码生成。书中深入分析现代编译器后端所用的算法和技术,重点讨论代码优化和代码生成,详细介绍了用几个编程语言编写的示例等。这本书不像龙书那么偏理论,这本是理论结合实践讲解。

  • 《编译原理》

    • **推荐理由:**本书深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,每章都提供了大量的练习和参考文献。被誉为”龙书“

2.4 算法与数据结构

  • 《算法-第四版》

    • 推荐理由: 一直以来,说到算法,大家便推荐《算法导论》,但是真正能看下来的人却比较少。而这本书比算法导论友好得多 ,非常适合初学者,同样内容也是非常详实,涉及到了算法和数据结构的绝大部分知识,强烈推荐。

  • 《算法导论》

    • 推荐理由: 如果推荐算法书不推荐这本的话似乎显得不太专业,原因就不说了,懂得自然懂,这本书偏向理论一点,书中证明比较多,大家可以量力而行,看得下去就看。看不下去就看上面那本👆。

三、编程语言学习

C/C++:

  • 《C程序设计语言》

    • **推荐理由:**这是一本穿越二十年风雨的经典C语言书籍,它用清晰的语言和简练的代码描述了C语言全貌,是C语言入门和提高的必备案头书~

  • 《C++ primer》

    • 推荐理由: 这是学习C++的必备之书,最新版包含了C++ 11、14、17标准各个方面,是久负盛名的 C++经典教程,这本书包含了C++的方方面面,无论是初学者入门,或是中、高级程序员提升,这本书均为不容置疑的首选。

  • 《C和指针》

    • 推荐理由: 是这本书拯救了我的指针,如果你对指针和动态内存有任何疑惑,看它!就完事了

  • 《C++ primer》

  • 《STL源码解析》

  • 《Effective C++》

  • 《深度探索C++对象模型》

  • 看完上面👆四本,C++算入门了,接下来靠你自己去进阶~

  • 网络编程:

    • 《Unix网络编程》

    • 《Linux高性能服务器编程》

    • 《Linux多线程服务端编程》

  • Java系:

    • Java 核心技术
    • 《effective java》
    • 《深入理解Java虚拟机》
    • 《Java并发编程实战》

持续更新中。。。