如果能重来,大学四年的计算机我这样学

写在前面:大学四年的时光很快就过去了,到如今重新回看过去学到的知识,是否真的成体系了呢?我很庆幸能够在大二转入计算机科学与技术专业学习,同时我也为我自己没有有一个清晰的计划而遗憾。如果能够重回大一,或许有些不一样。

一、拓扑图

  借助网易云课堂的一张图:传送门

  它将大学四年的课程清楚地按前后顺序展现在四年(如果按照上面来学,我觉得这四年课程真的很充足了)。
  进入大学,我觉得最重要的是想清楚自己的未来如何,是继续深造学习还是出去找工作。相信大一的大家肯定是迷茫的,因此我的课程设置大一大二均为极其重要的基础课程。无论你选择哪条路,这两年的课程都会使你受益良多。


大一

大一上

1. C语言程序设计
2. 高等数学上
3. 大学英语上
4. 计算机专业导论

  程序是计算机专业的灵魂,大一必学C语言编程。高等数学和英语也是必学的。计算机专业导论类似于通识讲座吧。

大一下

1. 面向对象编程(JAVA、C++)
2. 高等数学下
3. 大学英语下
4. 线性代数
5. 数字系统与逻辑设计

  面向对象编程思想是伟大的,学习它你能感受到不一样的乐趣,同时学习两门新语言JAVA和C++。高数下和线代没什么好说,必学。数字系统与逻辑,可以说是计算机组成原理的前置课程吧,从与、或、非学起,了解如何用电路逻辑构建计算机系统的逻辑。

大二

大二上

1. 计算机组成原理
2. 数据结构与算法设计上
3. 汇编语言程序设计
4. 离散数学
5. Python语言

  计算机组成原理可以说它详细地介绍了实现一台通用计算机的整个过程,并不是偏向于硬件,更多是理论原理,这是我很喜欢的一门课。很多时候,算法设计实现离不开特定的数据结构,我的学校是将这两门课分开的,这里我合并在一起,并分为上下。可以说,互联网公司面试必有算法题,可见算法的重要性。汇编语言这门课可以说是拓展了见识,之前学的(C、JAVA、C++)都是高级编程语言,类似自然语言,容易被人们理解,而汇编语言更底层一点,它与硬件方面(比如寄存器)联系比较紧密,后续单片机课程会用到。要学好算法,数学必不可少。离散数学介绍了集合论、图论、组合数学、数理逻辑、代数系统等方方面面,没有接触过的同学学得可能会比较吃力(然而对于高中数竞狗来说差不多都会了)。Python语言学了不会吃亏,爬虫数据分析啥的都用得上,推荐自学(懂一门高级编程语言再学另一门真的很容易)。

大二下

1. 数据结构与算法设计下
2. 概率论与数理统计
3. 操作系统原理(Linux)
4. 数据库原理
5. 计算机网络
6. 计算机体系结构
7. 单片机

  算法没啥好说的,一学期学不完。概率论(我觉得其实数学都得学)挺简单的,学了也很有趣。操作系统必学,并且推荐和Linux系统一起学。平常我们接触的都是Windows操作系统,学会Linux你能感受到命令行的魅力。除了打游戏不行,Linux啥都能干。现在的服务端都是Linux系统,说实话,我感觉Windows系统就是做到了普及,做到人人都能用,但是Linux更专业。
数据库原理和计算机网络,数据管理真的太重要啦,面试也会问。网络的重要性也不言而喻。
  计算机体系结构可以说是计算机组成原理一部分吧,计组一学期讲不完。单片机就是小小一块板子,偏硬件。我觉得这两门课可以放选修。


  终于到大三了,前面两年必学的课程真的好多。接下来这一年,无论你要干什么,你必须想清楚!它将决定你接下来的选课策略。
  总的来说,有就业和升学两个方向(创业太难,不作考虑)。从自身和家庭两个方面考虑。首先,通过两年的学习,你可以很明确地知道自己的学习能力、学习意愿如何。如果你自己的学习能力不强,学习意愿不坚定,需要别人监督,那还是不要读研究生受苦了。再还有就是家庭的方面,首先就是支不支持读研了。再次就是家庭经济是否困难,是否需要你就业分担经济压力等等。总的来说有很多因素需要考虑,我还是比较推荐读研的。
  升学的话,有考研和保研两种途经。其实大二的时候就应该去了解这个。大三上结束的那个寒假就应该开始准备考研了。保研生大二跟随导师做一些实验,了解一些学科前沿,积攒科研经历,不然大三结束的夏令营和九推会很难受。
  考虑就业要积攒项目经历,平常的课程设计都要用心参与。大三可以多选一些实践课程。

大三大四

1. 软件工程
2. 专业英语
选修:
- Web开发 
- 软件测试
- 安卓开发
选修2:
- 编译原理
- 机器学习(Python)
- 数值分析
- 密码学与信息安全
- 抽象代数/近世代数
- 计算机图形学(Matlab)

  大三大四的课已经非常少了,主要是选修课程。学完软件工程着门课感受最深的就是做一个课设写一堆文档。工程化的标准坏处就是按部就班,啥都要搞流程。
  编译原理这门课当初看的是龙书,真的又大又厚,难顶。但是静下心来学也是有趣的。计算机只认识0和1,那么它又是怎么认识高级编程语言的呢?编译原理可以教会你将一串编程代码转化为汇编代码。学不学无所谓吧。
  机器学习是现在的研究热点。Python语言也是做机器学习的利器。本科学的机器学习大部分是统计机器学习,推荐看周志华的西瓜书。学完机器学习可以学深度学习。
  数值分析也是有趣的一门课,是计算数学方向的基础课程吧。主要讲如何用计算机作数值计算,比如算定积分,解方程、解微分方程等。所得到的解并不是数学上的精确解,是数值逼近的结果,比如精确到小数点后几位等等。
  密码学与信息安全这门课,还是与数学有关,抽象代数、数论等,比较硬核。
  计算机图形学主要研究图形在计算机上的表示。比如说怎么在计算机上画直线、圆、多边形等。通俗一点,图像建模。
  总的来说计算机科学与技术这个专业学得很多,什么都懂一点、什么都不精是常态。在本科时多学一些我觉得是好的,读研时可以选择感兴趣的方向。但后续可能精力不是那么多,需要专注专研。

个人经验之谈,参考价值方面请君自鉴。

你可能感兴趣的:(其他,经验分享,程序人生,学习)