计算机基础是我们计算机生涯的开始,而对大学生来说,基础是一方面,更重要的是应对面试。这样说吧,校招:计算机基础占90%,专业知识占10%,社招:计算机基础占20%,专业知识占80%。而且校招是进入大厂最好的机会,他不需要你专业知识,只需要你把计算机基础学好。对于程序员来说,计算机基础就相当于打地基,而专业知识相当于装修,地基不稳,后面怎么修都是没用的。
先罗列一下我心目中的TOP5:
1、计算机组成原理;
2、计算机操作系统;
3、计算机编译原理;
4、数据结构与算法;
5、计算机网络。
如果你想成为一个基础扎实的CSer,其他课就算不在TOP5里面你还得学,比如数电/模电;编译原理、数据库等。
话不多说,直接上干货。
计算机编译原理
编译原理的学习和实践通常基于对计算机编译过程、计算机基本工作原理,甚至一定的数学知识有一定积累,这些知识分别分布并用在了编译原理的不同阶段,没有这些基本知识的积累,很快就会在某个阶段由于功底不够而无法再继续后面的学习。
推荐课程:《编译原理(哈工大)》,陈鄞老师的PPT做的非常认真,讲的也很通俗易懂,思路清晰,这个是我目前为止觉得讲的最直观简洁的了,全程没有一句废话,认真听会有很大的收获。
编程语言
零基础入门推荐中国大学MOOC的(浙江大学)翁凯老师的《程序设计与C语言入门、进阶》,跟着视频走,视频写一遍代码你写三遍,第二天早中晚复习一遍,学完之后找相应的习题,比如谭浩强的课后习题,自己做,做不出来找答案。
计算机操作系统
无论你学习什么编程语言,都避免不了和操作系统打交道。如果不懂操作系统,你在未来学习编程语言的高级特效,涉及到线程、进程调度、内存分配时都会一头雾水。所以只有学会了操作系统,我们才能够更好的学习其他语言和基础。
推荐课程:1:《2020南京大学:操作系统设级与实现-蒋岩炎》,南大的课,质量真的硬,蒋岩炎老师讲的真的好,每一节视频都比较长,一次当完贼爽,老师把晦涩的东西讲的非常通俗易懂,豁然开朗。:2:操作系统(哈工大李治军老师),整体看了一遍,个人觉得这是很不错的操作系统课程了。这门课的前几讲设及OS启动,之后的内容,如多进程、信号量、内存管理等都讲的很好。
计算机网络
计算机网络的相关知识在工作时使用的频率还是挺多的,毕竟所谓的考工程师总是在处理API相关的业务。
推荐课程:1:《计算机网络微课堂》《阿婆主湖科大学教书匠》,他讲的计算机网络十分通俗易懂,重点的地方讲的十分细致,并且还有一些配套实验。2:韩立刚老师《计算机网络》,韩立刚老师所讲的计算机网络视频内容比较多,但是讲解的通俗易懂,并且老师讲课的经验也十分的丰富。
计算机组成原理
计算机组成原理这门课,很好的向我们阐述了计算机是如何工作的,比如女生咨询你电脑问题的时候,答案就藏在这门课程里面。
推荐书籍:《深入理解计算机系统》,这本书不仅仅包含了计算机硬件的相关知识,同时还包含了包括操作系统、计算机网络等相关知识。
推荐课程:《计算机组成原理-哈工大刘宏伟》。刘宏伟老师主讲,他的课不仅适合考研人,也非常适合初学者,初学者也听得懂。建议1.5倍速使用。
数据结构与算法
相信无论是已经毕业的同学,还是正在学校学习的同学,都或多或少的被数据结构与算法这门课给折磨过。数据结构与算法这门课开篇就讲了一个非常重要的概念,程序=数据结构+算法。对于初学者可能还不能完全的理解这句话,不过对于已经工作两三年的同学,相信对这句话是深信不疑的。
推荐课程:1、《郝斌:数据结构入门》,我个人觉得他讲的非常好,郝斌老师的思路是以初学者的思路来思考的,非常适合小白。2、《数据结构》浙江大学陈越姥姥的课,简单易懂。插树和列表说的多,但是对于图太少,后面概念解释多,程序少,对于新手不友好。