最近在逛知乎看到这样一个问题:大学如何自学计算机科学与技术?
我当年的经历和这有点类似,只不过我是从别的专业被调剂到计算机科学与技术专业,今天就来说说我对这个问题的看法。
我是 11 年高中毕业的,当时高考毕业后,本来我个人想报计算机专业,但是当时家里面觉得计算机这个专业就业没啥前途,让我报机械专业。
所以我高考的第一志愿是机械专业,第二志愿才是计算机,结果当年我们学校的机械分数线特别高(因为这个专业全部排名 TOP 5),最后学校把我调剂到了计算机,我估摸着也是老天觉得我是干程序员的料,刚好也从了我自己原本内心的选择。
既然是被学校调剂到计算机专业,那也说明我本科学校的计算机实力不咋滴。不过我这个人内心还是有点不服输的,既然学校不行,那我就靠我自己的努力,来学习计算机相关的技术。
学习计算机第一点:你肯定要有一台自己的电脑。原因是后面你再学计算机的时候,你需要在电脑上进行大量的编码练习,不断地进行实践、试错、改正、再实践这样一个流程,代码写的多了,犯错多了,你写代码的感觉慢慢的就上来了。
电脑方面的话,我这里推荐你可以买一个既能打游戏(显卡要好),也能很好的运行程序的电脑(内存要大一些),最好是笔记本,主要是你携带方便,无论是去自习室,还是图书馆啥的,背个电脑包就行了,外星人电脑可能是个还不错的选择,可能就是有点贵。
这里我强烈不太推荐 Think Pad,原因是真的玩不了啥游戏,之前大学为了显得自己专业一些,我买了 Think Pad,结果啥游戏都玩不了(低版 LOL 可以),虽然为了学编程,但是还是得劳逸结合。
有了电脑后,接下来需要把计算机科学与技术的基础课要学好,我总结了一下,下面六门课比较重要:
- 谭浩强的 C 语言的课程
- 数据结构的课程(一定要好好学)
- 操作系统(未来从事网络底层、引擎内核类研发需要)
- 计算机组成原理(未来从事网络底层、引擎内核类研发需要)
- 数据库系统概念(对于后端开发、数据库内核开发重要)
- 一些代码类实践的课程(应该有实践作业)
我估计每个学校的课程都差不太多,如果本来就是计算机专业的同学,我建议上面的课你一定要好好听,好好学,别的课也许可以水一下,上面的课未来你在工作中真的会遇到。
如果你不是计算机专业的同学,那么我觉得你可以查出上面这些课程时间,按照自己的时间安排,去旁听一下。不要不好意思,你就当你是这个专业的同学。
上面的课程主要是补充你的计算机相关的理论基础,接下来可以选择一门自己感兴趣的编程语言,比如 Java 、C 。这里我不太推荐 Python 语言,因为这门语言虽然学起来太简单,但实际开发中的语言大多数是 Java、C 这两类,Python 写得再好,实际用不到。机器学习算法类用 Python 倒是挺多,不过你未来如果不搞机器学习算法,那请忽略。
当时我选择的是 Java 语言,原因就是 C 太难了。我在学习 Java 语言的初期,最开始是去图书馆找 Java 编程相关的书籍,然后每天在图书馆泡着,看着看着,我突然发现看书学编程这种效率太低,于是我去网上找了一些学习 Java 的视频,那时候有马士兵、传智播客等 Java 学习视频,网上应该有很多免费的视频教程。
跟着视频来学习编程语言有两个好处:一是有些你不懂的地方,视频里面刚好那块会有人讲解,让你比较好理解,二是每个视频最后其实都有相应的代码实践示例,每看一个视频,自己也都跟着代码学习实操一遍。写的多了,你的代码感就出来了。所以我强烈建议新人可以跟着视频来学习一门新的编程语言。