这边有些科目清单 供大家参考
程式语言: C/C++, Java, Python 基本上这4个会了 要学其他语言就不是难事
核心知识: Data structure, Algorithm, Operating System, Computer Organization
核心知识这四门课我觉得是必备
很多人说后两门不一定需要 但我不同意
会觉得只需要前两门的多半是因为近年来美国的面试都考coding而已
没有Operating System 那就搞不懂process/thread/paging/virtual memory
没有Computer Organization 那就搞不懂system hierarchy/caching/cpu
※ 引述《deacon (deacon)》之铭言:
: 各位版大好,
: 有鉴于CS领域越来越热门,
: 想要转领域的人更是不在少数,
: 我想分享一些免费的线上教学网站,
: 里头含有各种程式语言的教学,以及一些CS必修的基础课。
: 分享的动机其实很简单,
: 除了给一些很确定想转CS的人,有更多的学习管道外,
: 也想让那些还不确定想不想转的人,有一点点学习的方向,
: 至少先接触看看一些CS的东西,避开转领域后才发现没兴趣的风险。
: 如果直接零零总总列出一大堆网站,我想可能很多人会不知道从何开始,
: 也许光看到一堆专有名词眼睛就花了。
: 是故,以下我会列出我当初自学时的进度,以及陆陆续续发现的网站,
: 如果有板大们有更好的资源也欢迎提供,谢谢。
: 一、 什么都不会的阶段,例如连C/C++、OOP是什么都不知道
: 在这个阶段,我主要看了以下两个online course:
: (1) Introduction to Computer Science and Programming - MIT Open Course
: https://www.youtube.com/watch?v=k6U-i4gXkLM
: 这个课程算是MIT CS系里的CS 101,
: 里头教的程式语言是目前非常热门的Python,
: 如果按部就班的看完这个课程,会学到非常多的coding技巧.
: (2) CS50 - Havard
: https://www.youtube.com/watch?v=o4SGkB_8fFs&t=3580s
: 我没有看完Havard cs50这个系列,所以不便在这边提出太多的心得。
: 不过对于CS零基础的人来说,这门课也是很多人一开始的选择。
: 个人感想是对于上述的两堂课,二择一即可,
: 当然如果有时间的话,都看过最好。
: (3) Crash Course - Computer Science (给连计概都没修过的人)
: https://www.youtube.com/watch?v=tpIctyqH29Q
: 这是一个在youtube上面的频道,主要是对于CS这个领域作大致的介绍,
: 有一点像计算机概论,非常适合超级新手,
: 看完这个playlist后,应该会对于电脑的原理有种豁然开朗的感觉。
: 目前整个系列有37部影片,而且看来还在陆续新增中。
: 二、 给对于programming这档事有一点头绪的人
: (1) thenewboston - 有各种程式语言的基础教学
: https://thenewboston.com/
: 是的,你没看错,这个网站有近乎各种程式语言的基础教学,
: 举凡 C/C++、C#、Java、Javascript、Swift、Python、HTML5/CSS3 等等,
: 只要你想得到的,叫得出名字的热门程式语言这里面都有。
: 当初我发现这个网站时,真的有种如获至宝的感觉,
: 虽然几乎都是beginner level,但基本的syntax都有cover到,
: 有的时候学程式语言,缺的也就是这个临门一脚而已。
: 听说在印度,印度人都尊称这个网站的老师Bucky一声"sir",
: 你就知道这个网站有多屌了
: (2) Stack Overflow
: https://stackoverflow.com/
: 相信每个会写程式的人,一定都知道这个网站,
: 但这篇的目的是给不会写程式的人嘛,
: 简而言之,如果你在写code的时候遇到了一点困难,
: po上这个网站就对了,九成九会有高手帮你解答
: 三、 CS的一些基础课
: 相信很多人会对于学CS该修什么基础课有疑问,
: 我当初为了该修什么课,也花了不少时间在找这方面的资讯,
: 最后发现大部分的人都会修下列几堂:
: Linear Algebra, Discrete Math, Data Structure & Algorithms
: 总而言之,基础课上面几个是必修的,
: 当然也是会有人坚持Operating Systems等等也要修,
: 那些就见仁见智了,或多或少都会有点争议,
: 毕竟没有一定的准则
: 以下列出我自己看过的线上教学课程,清一色都是MIT Open Course的,
: 如果有其他更适合的资源,也希望版大们可以补充。
: (1) Linear Algebra - MIT Open Course
: https://www.youtube.com/watch?v=ZK3O402wf1c
: (2) Mathematics for CS (Discrete Math) - MIT Open Course
: https://www.youtube.com/watch?v=L3LMbpZIKhQ
: (3) Introduction to Algorithms - MIT Open Course
: https://www.youtube.com/watch?v=HtSuA80QTyo&t=127s
: 以上是我觉得对于自学CS非常有帮助的网站,
: 虽然不确定适不适合po在这边,但我想这些网站都是国外的教学网站,
: 某种程度上应该也算studyabroad了。
: 尤其板上每年都会看到很多文章,开头就是完全没学过CS但想转过去,
: 然后在留言的部分,就会看到很多版大建议先去修个基础课。
: 所以这篇文章对于初学者来说,我想或多或少应该会有点帮助。
: 如果有其他版大们有更好的资源及建议,希望也可以分享,谢谢。