有句话怎么说来着:只会写代码的是码农;学好数据库,基本能混口饭吃;在此基础上再学好**操作系统和计算机网络**,就能当一个不错的程序员。

如果能再把组成原理、数据结构/算法、编译原理学通透,再加上丰富的实践经验,就能算是一个优秀的程序员工程师了。

所以如果你想学好计算机基础,成为一名优秀的程序员,你至少还需要学:数据库、操作系统、计算机网络、组成原理、数据结构与算法、编译原理等知识。

下面按照这个顺序,依次给大家推荐一些比较经典的学习书籍和视频课程!

1、数据库

作为一个写代码的程序员,最终都是要处理数据,因此数据库算是必备的技能之一,如果是初学者的话,推荐《MySQL必知必会》这本书,更深入一点的话可以去看MySQL技术内幕——InnoDB存储引擎》。这两本书的下载链接如下:

2、操作系统

学习操作系统,推荐看现代操作系统这本书,国内很多高校的操作系统课都是采用的这根本书当教材,这本书最大的特点就是挑战了传统操作系统教材的权威,果断地删掉了和 “现代” 操作系统关系比较小的部分,真正把 “现代” 两个字体现得淋漓尽致。

image-20211211125130596

此外,可以结合哈工大李治军老师的操作系统课程一起看:

B站连接:https://www.bilibili.com/video/BV1d4411v7u7

image-20211211125505763

3、计算机网络原理

计算机网络和计算机操作系统这两个“兄弟”是所有开发岗位都需要的,不管你是 Java、C++还是测试。对于后端开发的同学来说,计算机网络的重要性不亚于语言基础,毕竟平时开发经常会和网络打交道,这里推荐计算机网络自顶向下方法这本书去学习!

image-20211211125547621

4、组成原理

无论是处于哪个阶段的同学,都需要了结程序是什么、计算机的组成原理,推荐的书籍:深入理解计算机系统》,学习这本书,你就会对计算机底层世界有一个宏观的认知,搞清楚计算机底层的工作原理,为什么它可以完成如此复杂的工作?为什么一个小小的cpu却又如此强大?最简单的“hello,word”程序是怎么运行的?当然,因为这本书包含很多概念,专业术语,读起来可能比较晦涩,大家也不必一口气读完,可以在学习整个计算机过程中慢慢去读,慢慢理解。

image-20211211125613507

5、数据结构与算法

学会编程语言只能说明你会用这个语言,但是想要用这门语言去处理具体的事情,那就需要学好算法,因为不管你是Java编程爱好者、还是python的忠实粉丝,亦或觉得PHP才是这个世界最好的编程语言,都绕不过去算法这个门槛。企业招聘的时候也特别重视程序员的算法能力,这里推荐两本算法书供大家学习:算法图解《算法导论》,第一本适合入门,第二本适合进阶深入学习。

下载链接:

6、编译原理

计算机是只认识二进制的,但是我们平常开发中根本不会使用二进制进行开发,我们使用的都是 Java、C 、python这类的高级语言,每种语言都会经过一系列的转换才能被计算机识别,那么计算机到底是怎么做这项工作呢?推荐看Compilers: Principles, Techniques, and Tools》。也就是编译器的原则、技术和工具。中文版的名字就叫编译原理

希望以上内容对你有帮助!