计算机专业的主干,就是如何写代码,以及代码如何在计算机上运行。
这里用南大ICS课袁春风老师的课件来举例,侵删
程序的执行结果不仅取决于算法、程序编写,而且取决于语言处理系统、操作系统、ISA、微体系结构。
因此不同计算机的课程处于不同的层次,必须将各层次关联起来才能解决问题。
其实代价的大学课程就已经明确地指出了学习的方法,下面我来简短地为大家说明:
1、一切都要从C语言开始,在这个阶段你将掌握面向过程的程序设计思路,多数的非工科专业的计算机课程都停留在这个阶段。
大部分脚本语言也都是这样按照顺序把思路写下来,让计算机一步步执行。
2、接下来是理解OOP(面向对象编程),因为现在大多数的大型协同基本都是基于OOP思想设计的,在你掌握继承、多态、封装之后,它会成为你掌握编程和控制系统复杂度的一大利器。
3、算法与数据结构,是你代码提升的一大步,当你逐渐拨开了解数据结构的层层外衣时,对编程的理解会到达一个崭新的阶段,你会知道链表、顺序表、图、树、红黑树等的利用场景和方式。
4、操作系统原理,当你的程序设计到一定阶段,想要提升和优化,就必须深挖程序所在的操作系统了,要明白操作系统的运作机理,只有掌握了这些,才能让你的代码更高效。
5、编译器,深刻理解编程语言是如何转化为机器语言的,在面对复杂场景时,语言之间的转化将如何解决,而这其中涉及的语言学知识,是人类知识的宝库。
6、计算机组成原理,更进一步了解计算机代码与硬件的联系,理解代码是如何在硬件上运行的,了解如何压榨CPU与GPU的潜能。
7、当然除此之外还有其他的分支:计算机网络、分布式系统、并行计算、计算机图形学、密码学、生物信息学、计算机视觉等等等等,而这些令人眼花缭乱的分支,其实不需要全部掌握,只需选择其中一个,学深学精即可。
讲到这里,想必各位已经明白了计算机的正确学习方法啦,如果你想要成为一名合格的程序员,算法与数据结构、操作系统、计算机网络、计算机组成原理四大基础和深入某个子方向才是正确的选择,这一点无论你是否是科班出身,都应该有所收获。
这里推荐大家一些书籍和比较权威的课程,可以在课余时间跟着学习。
数据结构与算法
关于数据结构,我把他排在第一位的原因正是因为他是四大件中最简单,最基础的一个,离开了数据结构与算法,几乎任何的程序都会失效,这里强推中国大学上,由浙江大学所开设的《数据结构》课程,涵盖了常用的数据结构与算法。
教材参考书的话,这里推荐一本《大话数据结构》,是初学者入门的不二之选。
至于刷题方面,LeetCode肯定已经广为人知,但2000多道题,就算每天10题,也要刷上半年,所以我们要找寻最核心最重要的题集即可。
刷完之后,也可以再刷《剑指offer》的题目,进一步提升。
计算机操作系统
视频课程推荐B站清华大学的操作系统课程,简单易懂又风趣,你一定喜欢。
在此基础之上,一本合适的教材也可以助你提升,这里推荐有名的黑皮书:
计算机组成原理
组成原理是所有课程里最难得了,所以把它放在最后,整个课程的核心就是使用数字逻辑电路和触发器搭建一个可以运行汇编指令的机器。
视频的话首推卡内基梅隆大学的《深入理解计算机系统》系列课程,同样,B站就有双语字幕。
配套教材当然就是《深入理解计算机系统》了,该视频也是用的这个教材,之前的文章中我也有分享过。