操作系统

书籍

extra

  • 《自己动手写操作系统》:不光会带着你详细分析操作系统原理的基础,还会用丰富的实例代码,一步一步地指导你用 C 语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。
  • 《现代操作系统》:内容很不错,不过,翻译的一般。如果你是精读本书的话,建议把课后习题都做了。
  • 《操作系统真象还原》:这本书的作者毕业于北京大学,前百度运维高级工程师。因为在大学期间曾重修操作系统这一科,后对操作系统进行深入研究,著下此书。
  • 《深度探索 Linux 操作系统》:跟着这本书的内容走,可以让你对如何制作一套完善的 GNU/Linux 系统有了清晰的认识。
  • 《操作系统设计与实现》:操作系统的权威教学教材。
  • 《Orange’S:一个操作系统的实现》:从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。配合《操作系统设计与实现》一起食用更佳!

视频

  • 《操作系统》:慕课平台,主讲是哈工大李治军老师;主要讲了一个基本操作系统中的六个基本模块:CPU 管理、内存管理、外设管理、磁盘管理与文件系统、用户接口和启动模块 。课程难度较大。

  • 《深入理解计算机系统 》:国外课程,B站大学

计算机网络

书籍

计算机网络的 OSI 七层模型或 TCP/IP 五层模型,即应用层(应用层、表示层、会话层)、传输层、网络层、数据链路层、物理层。

osi七层模型

机械工业出版社的《计算机网络——自顶向下方法》。该书目录清晰,按照 TCP/IP 五层模型逐层讲解,对每层涉及的技术都展开了详细讨论。

比较枯燥的话,搭配下面这两本非常有趣的网络相关的书籍:

  • 《图解 HTTP》:讲漫画一样的讲 HTTP,很有意思,不会觉得枯燥,大概也涵盖也 HTTP 常见的知识点。因为篇幅问题,内容可能不太全面。不过,如果不是专门做网络方向研究的小伙伴想研究 HTTP 相关知识的话,读这本书的话应该来说就差不多了。
  • 《网络是怎样连接的》:从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。

补充实践

视频

哈工大的计算机网络课程:国家精品课程

算法

书籍

  1. 《我的第一本算法书》:配图以及讲解优秀,没有代码示例
  2. 《算法图解》
  3. 《啊哈!算法》
  4. 《算法》:内容非常清晰易懂,适合数据结构和算法小白阅读

经典神书:

下面这些书籍都是经典中的经典,但是阅读起来难度也比较大 仅仅准备算法面试的话,不建议阅读

面试书籍

视频

程序设计与算法(二)算法基础:把七种基本的通用算法(枚举、二分、递归、分治、动态规划、搜索、贪心)都介绍到了。各种复杂算法问题的解决,都可能用到这些基本的思想。并且,这个课程的一部分的例题和 ACM 国际大学生程序设计竞赛中的中等题相当,如果你能够解决这些问题,那你的算法能力将超过绝大部分的高校计算机专业本科毕业生。

数据结构

书籍

视频

《数据结构》 :浙江大学的国家精品课程;有难度

计算机专业基础课

数学

微积分(高等数学)

微积分对于计算机专业学生的重要性,主要体现在计算机图形学中的函数变换,机器学习中的梯度算法,信号处理等领域。

书籍

《普林斯顿微积分读本》:这本书详细讲解了微积分基础、极限、连续、微分、导数的应用、积分、无穷级数、泰勒级数与幂级数等内容。

线性代数(高等代数)

线性代数的思维模式就更加复杂了一些,它定义了一个全新的数学世界,所有的符号、定理都是全新的,唯一能尝试的去理解的方式,大概就是用几何的方式去理解线性代数了。由于线性代数和几何学有着密不可分的关系,比如空间变换的理论支撑就是线性代数,因此,网上有着各种“可视化学习线性代数”的学习资源,帮助理解线性代数的意义,有助于公式的记忆。

书籍

《线性代数学习指导》 :中科大李尚志老师

概率论与数理统计

对于计算机专业的小伙伴来说,这门课可能是概率论更有用一点,而非数理统计。概率论的学习路线和微积分相似,就是一个个公式辅以实例,不像线性代数那么抽象,比较贴近生活。这门课程是数据分析的重要前置课程,概率论在机器学习中的重要性不言而喻。

书籍

《概率论与数理统计教程》 :这本书共八章,前四章为概率论部分,主要叙述各种概率分布及其性质,后四章为数理统计部分,主要叙述各种参数估计与假设检验。

离散数学(集合论、图论、近世代数等)

离散数学是计算机专业的专属数学,但实际上对于本科毕业找工作的小伙伴来说,离散数学还并没有发挥它的巨大作用。离散数学的作用主要在在图研究等领域,理论性极强,需要读研深造的小伙伴尽可能地扎实掌握。

英语

对于计算机专业的小伙伴来说,英语能力还是比较重要的,虽然应聘的时候不会因为没有雅思托福成绩卡人,但是你起码要能够:

  • 熟练使用英文界面的软件、系统等
  • 对于外网的一些博客、bug 解决方案等,阅读无压力
  • 熟练阅读英文文献
  • 具备一定的英文论文的撰写能力 毕竟计算机语言就是字符语言,听说读写中最起码要满足读写这两项

编译原理

编译原理相比于前面介绍的专业课,地位显得不那么重要了。编译原理的重要性主要体现在:

  • 底层语言、引擎或高级语言的开发,如 MySQL,Java 等
  • 操作系统或嵌入式系统的开发
  • 词法、语法、语义的思想,以及自动机思想 编译原理的重要前置课程就是形式语言与自动机,自动机的思想在词法分析当中有着重要应用,学习了这门课后,应该就会发现许多场景下,自动机算法的妙用了。

书籍

《编译原理》 :辅助自己学不懂的地方(大家口中的龙书,想要啃下来还是有一定难度的)。

extra

视频

哈工大的编译原理视频课程:国家精品课程,美女老师主讲