程序是什么?—计算机组成原理。
程序怎么被翻译?—编译原理。
程序怎么执行?—操作系统的范畴
怎么利用别人的成果来实现更好的数据组织?—数据库相关
怎么保证程序更容易维护和可读?—这是设计模式和代码规范
学好数据结构能把性能优化做的很好,学好计组能搞懂汇编和内核,知道CPU/IO的交互过程,CPU运算器工作原理,写出高效的汇编代码,弄清楚内核中中断等等;操作系统以及计算机网络是两门非常重要是支撑学科,信号量为什么是最快的同步方式、线程调度比进程调度快、为什么要做内存缓冲池,这些都是来自”操作系统”。而”计算机网络”主要是讲述TCP/IP的,为什么德问”对于一个具有几百万粉丝的用户,数据如何实时投递到所有用户?”要使用多播的方式解决、”如何计算出C/S单向的延迟?”发送ICMP包测量,这些都是来自它。
涛思数据的创始人说如果有重来的机会,他一定认真学习:1、数据结构,2、算法,3、计算机体系结构,4、操作原理,5、编译原理,6、计算机网络,7、数据库。如果还有兴趣和精力的话还会学好数字信号处理,数据分析课程。
因为这些课程里学到的内容,30年前在用,现在依旧在用。而且用的越熟悉的人,技术水平越高。
例如操作系统这门课,因为操作系统课程讲的都是各种资源的管理和调度,包括CPU、内存、网络、外围设备等等。世界上绝大部分系统都是管理这种或那种资源,抽象的来看,与CPU、内存、外围设备的管理其实没有任何区别。
技术越是上层越是更新快,通用型越广更新越慢。