观:https://github.com/keithnull/TeachYourselfCS-CN/blob/master/TeachYourselfCS-CN.md 有感
一,程序员需要学习的科目:
1,编程 扎实的编程基础功是必须的 《计算机程序的构造和解释》
2,计算机架构 了解计算机如何工作 《计算机组成与设计》
3,算法与数据结构 应对有难度的问题的必备知识 《算法设计手册》
4,数学重视 可以带来竞争优势,思维模式的转变 《计算机科学中的数学》
5,操作系统 了解代码运行平台的运作原理 《操作系统导论》
6,计算机网络 理解原理,才能对互联网有所造诣 《计算机网络:自顶向下方法》
7,数据库 数据是程序的核心 《Readings in Database Systems》
8,编程语言与编译器 需要懂得编译器是如何工作的 《编译原理》
9,分布式系统 如今多数系统都是分布式的 《分布式系统原理与范型》
二,为什么要学习计算机科学:
深入学习计算机科学的方法,研究其底层的基本原理,才能让自己所做的事情将会越来越有意义且更为高薪,不论是有价值的商业工作、突破性的开源项目、技术上的领导力或者高质量的个人贡献。
三,学习次序:
先学计算机架构再学操作系统或数据库,先学计算机网络和操作系统再学分布式系统。
四,编程语言的学习:
光学习语言易且缺乏价值,应去了解编译器的原理,这样对于学习一门新的语言来说是简单的。