本人并非计算机专业学生,所在专业与cs是八竿子打不着的关系。学习计算机科学,是为了转行,短期来讲有跨考的需求,长期来讲有将来从事计算机专业工作的需求。因此我的学习并不仅仅是囿于速成或是做题,更多的可能是打好基础,在基础上面继续建筑,以达到我最终的需求。

做好学习初步规划

学习计算机科学之前,一定要搞清楚的一点就是,这真的是一门非常庞大的学科,大到计算机组成原理到计算机网络、操作系统、数据结构与算法这些大类,小到从一门编程语言入手,然后去学习如何应用。

如何有一个系统的了解呢,我的回答是:看科普视频。看科普视频不需要做过多的笔记,就把它当速成课过一遍,记一些自己难以理解的内容,或者是学习到的令人震惊的新知识(比如笔者刚开始了解到删除文件其实只是把文件的存在从目录中抹去,并不是真正地删除了文件的数据就非常震惊)。

在这里推荐一些科普向视频,不用一天看完,那样吸纳的知识太多太杂,不利于吸收,一天了解一个方面为宜。

【计算机科学速成课】[40集全/精校] - Crash Course Computer Science_哔哩哔哩_bilibili

//计算机科学速成课

【传思翻译组·中英字幕】CS50 哈佛大学 计算机科学导论 名校公开课【合集·完结】_哔哩哔哩_bilibili

//哈佛的计算机导论,可能要比前者更硬核

学习一门基础编程语言

我的建议是从c语言入手,因为很多本参考资料都是用c语言写的代码,这其中就包括了数据结构。弄懂了c语言之后,再学习其他的面向对象的编程语言会舒服很多

学习c语言首推的是浙大翁恺老师的课:C语言程序设计_浙江大学_中国大学MOOC(慕课) (icourse163)

翁恺老师讲的真的非常好,也很细节很细节,非常适合零基础的人学习

学习的同时最好搭配:题目集列表 (pintia)

这是PTA习题集,可以慢慢让自己编程的能力得到提升,也慢慢掌握这一门编程语言,每天做一些习题是非常有必要的

分岔路口:下一门语言或是下一门CS基础学科

c语言入门之后,需要考虑的事情就是要继续去学习面向对象的编程语言:c++、python、java或是去学习别的CS基础学科,当然建议是数据结构与算法,很多人应该都有这样一个疑惑,学完一门编程语言之后不知道怎么样去用,那么这就是数据结构教给我们的东西。并且算法这个东西,不管将来从事后端开发的什么工作,都绝对是绕不开的,优化算法也是一件很美的事情。

当然,不管选择是什么,计算机基础学科一定是绕不开的,就算是从事前端开发也是一样。现在互联网大厂对于计算机的基础知识的考察也越来越多,如果只是会用一门编程语言,即使用得很精通,我依然觉得不能被称之为是计算机人才,只能说是精通计算机语言的人才而已。

目前笔者也正到这个位置而已,写这一篇文章并不是说要做什么指南或者教程,笔者深知自己远不到那个能力与层次。笔者写这篇文章只是想记录一下自己这段时间的学习历程,其实每天学着自己不感兴趣的学科,然后又下苦功夫去看去学习自己喜欢的学科知识,是一件很累又很有意义的事情,自己坚持了一个多月,也算是不太容易把,与各位转码人才共勉!

科班大佬的话其实可以直接看看这个网站:CS自学指南

个人觉得太晦涩,并且对英文要求有一些高,可能我还要磨练一段时间才能参考这个来学习吧

更多推荐

学习计算机科学一月有余的总结与规划