1、编程。
别做那些连“递归”是什么都搞不懂的程序员
计算机程序的构造和解释 原书第2版 典藏版
2、计算机体系结构。如果你基础薄弱,不知道计算机是如何运行的,那些你学会的所谓“高层”技能不过是空中楼阁。
计算机组成与设计:硬件/软件接口(原书第5版)
3、算法和数据结构。如果你不能很好的使用随处可见的数据结构(例如栈、队列、树和图),你是无法解决复杂问题的。
算法设计与应用
4、计算机数学。计算机科学实际上是应用数学的一个分支,学好数学让你更具竞争力。
计算机数学:算法基础 线性代数与图论
5、操作系统。你编写的大部分代码是通过操作系统运行的,所以你需要知道它们是如何交互的。
现代操作系统
6、计算机网络。互联网是个了不起的发明,只有理解它的原理,才能发挥它的威力。
世界著名计算机教材精选:计算机网络(第4版)(中文版)
7、数据库。对于很多程序来说,数据是其核心,但是很少有人真正理解数据库系统是如何运行的。
数据库系统:数据库与数据仓库导论
8、编程语言和编译器。如果你理解语言和编译器是如何运行的,你就能编写更好的代码并轻松学会新的语言。
国外著名高等院校信息科学与技术优秀教材:编译原理技术与工具(第2版)
9、分布式系统。近年来,大部分系统已经发展成为分布式系统。
分布式系统概念与设计