Re: [心得] CS 自学网站/资源 推荐

楼主: wawi2 (@@)   2017-11-28 09:14:31
这边有些科目清单 供大家参考
程式语言: 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但想转过去,
: 然后在留言的部分,就会看到很多版大建议先去修个基础课。
: 所以这篇文章对于初学者来说,我想或多或少应该会有点帮助。
: 如果有其他版大们有更好的资源及建议,希望也可以分享,谢谢。
作者: bluebluelan (新阴流大目录免许皆传)   2017-11-28 09:25:00
大大一定是kernel guy 做web真心不需要了解这些
作者: mmonkeyboyy (great)   2017-11-28 09:52:00
推~~
作者: ahahahahah (あああああ)   2017-11-28 09:56:00
OS应该有包含计组那些部分~
作者: fishlinghu (令狐瑜)   2017-11-28 10:43:00
我也觉得后面两门没修过超怪 我同意web不需要啦但我总觉得身为工程师起码要懂电脑吧XD只是修过跟专精完全搭不上边 但至少懂电脑基本运作
作者: pups003 (冈本)   2017-11-28 10:48:00
做web有需要念硕士吗@@
作者: bluebluelan (新阴流大目录免许皆传)   2017-11-28 10:51:00
做SWE也不需要phd亚...现在都没年轻人想做底层的呜呜呜
作者: hsnuyi (羊咩咩~)   2017-11-28 13:13:00
学界其实有想要为js优化CPU架构 不过业界兴趣缺缺
作者: cybermeow (我有一只猫)   2017-11-28 14:26:00
Haskell:其实做纯理论例如机器学习比起后面两个我反而比较建议把数学唸好
作者: MAGICMCGRADY (荒剑燕飞)   2017-11-28 14:54:00
做ML也不需要懂后面那两门那些底层的东西在美国根本不红,现在ML,CV正红,把数学学好比懂那两门更容易找
作者: stitchris (史迪奇里斯)   2017-11-28 17:34:00
遇过不懂OS的写multithreading说这compiler有问题怎没照我写的顺序执行... 而且还工作十年了
作者: mmonkeyboyy (great)   2017-11-29 00:38:00
如果是最近SE的话 还蛮多要加问AGILE的东西
作者: keke0421 (zrae)   2017-12-01 15:31:00
..你那四个语言都是static吧 至少选一个dynamic的语言
楼主: wawi2 (@@)   2017-12-02 16:57:00
Python是static programming language?????
作者: acgotaku (otaku)   2017-12-04 06:38:00
我觉得底层语言很重要,至少C++够强,没人会怀疑你其他语言的理解能力,只熟python 面试官一定要你用C解挂白板的机会很高呀

Links booklink

Contact Us: admin [ a t ] ucptt.com