转眼间已毕业离开学校将近一年的了,期间师弟想让我整理分享一下自己的计算机科学相关学习资料与路线,因此有了本文,希望本文能使大家有更清晰的学习规划并能少走一些弯路,同时本文也是对自己本科时计算机学习历程的追忆。
科普
《编码-隐匿在计算机软硬件背后的语言》 这本书对我理解计算机的原理的帮助很大,它通过浅显易懂的语言讲述计算机是怎样工作的,从十进制、二进制、串联并联电路讲起,继而构造加法器、触发器、存储器,最后讲到操作系统的概念,推荐将这本书作为计算机学习的入门资料,通过这本书可以了解到计算机最本质的东西。
计算机语言
学习语言C语言 推荐《C Primer Plus》 C语言的概念以及语法,多动手编码练习
一本专门讲指针的书 《征服C指针》
入门阶段后可以看的书 《计算机程序的构造和解释》 《七周七语言》
算法与数据结构
掌握语法后学算法与数据结构 《算法笔记》 刷题书 《数据结构与算法分析-C语言描述》
Linux
《鸟哥的Linux私房菜》 可以作为参考资料,主要学习方式还是自己真正安装一个Linux发行版然后使用起来。
计算机网络
《计算机网络-自顶向下方法》 《图解TCP/IP》 《HTTP权威指南》
计算机体系结构
《深入理解计算机系统》 经典必读,对计算机的机制有整体的认知。
可以结合这本书 《程序员的自我修养-链接、装载与库》
操作系统
《现代操作系统》 《Operating Systems: Three Easy Pieces》
一个动手实践的课程,最新的版本是运行在RISC-V架构上的(当时在学校时候是看的x86版本的资料): 《xv6: a simple, Unix-like teaching operating system》
另一个操作系统的实践项目:《x86架构操作系统内核的实现》,在之前可以先看《x86汇编语言-从实模式到保护模式》,了解实模式保护模式这些概念。
其他
学习新的一门编程语言:
数据库:
编译原理:
- 实践:
- 使用Go实现:《Writing An Interpreter In Go》
- 使用C实现:《手把手教你构建 C 语言编译器》
- 理论:《编译原理》
还有Web开发、设计模式、Git、Nosql、Docker、K8s…不过如果你既然已经来到了这,那自己就会知道之后要学什么啦~
结语
这个人很懒,还没有写~