作者wawi2 (@@)
看板studyabroad
标题Re: [心得] CS 自学网站/资源 推荐
时间Tue Nov 28 09:14:31 2017
这边有些科目清单 供大家参考
程式语言: 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但想转过去,
: 然後在留言的部分,就会看到很多版大建议先去修个基础课。
: 所以这篇文章对於初学者来说,我想或多或少应该会有点帮助。
: 如果有其他版大们有更好的资源及建议,希望也可以分享,谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 100.35.220.180
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/studyabroad/M.1511831672.A.2E7.html
1F:推 bluebluelan: 大大一定是kernel guy 做web真心不需要了解这些 11/28 09:25
2F:推 mmonkeyboyy: 推~~ 11/28 09:52
3F:推 ahahahahah: OS应该有包含计组那些部分~ 11/28 09:56
4F:推 fishlinghu: 我也觉得後面两门没修过超怪 我同意web不需要啦 11/28 10:43
5F:→ fishlinghu: 但我总觉得身为工程师起码要懂电脑吧XD 11/28 10:44
6F:→ fishlinghu: 只是修过跟专精完全搭不上边 但至少懂电脑基本运作 11/28 10:45
7F:→ pups003: 做web有需要念硕士吗@@ 11/28 10:48
8F:推 bluebluelan: 做SWE也不需要phd亚... 11/28 10:51
9F:→ bluebluelan: 现在都没年轻人想做底层的呜呜呜 11/28 10:52
10F:→ hsnuyi: 学界其实有想要为js优化CPU架构 不过业界兴趣缺缺 11/28 13:13
11F:推 cybermeow: Haskell: 11/28 14:26
12F:→ cybermeow: 其实做纯理论例如机器学习比起後面两个我反而比较建议 11/28 14:27
13F:→ cybermeow: 把数学念好 11/28 14:27
14F:推 MAGICMCGRADY: 做ML也不需要懂後面那两门 11/28 14:54
15F:→ MAGICMCGRADY: 那些底层的东西在美国根本不红,现在ML,CV 11/28 14:55
16F:→ MAGICMCGRADY: 正红,把数学学好比懂那两门更容易找 11/28 14:55
17F:推 stitchris: 遇过不懂OS的写multithreading说这compiler有问题 11/28 17:34
18F:→ stitchris: 怎没照我写的顺序执行... 而且还工作十年了 11/28 17:34
19F:推 mmonkeyboyy: 如果是最近SE的话 还蛮多要加问AGILE的东西 11/29 00:38
20F:→ keke0421: ..你那四个语言都是static吧 至少选一个dynamic的语言 12/01 15:31
21F:→ wawi2: Python是static programming language????? 12/02 16:57
22F:→ acgotaku: 我觉得底层语言很重要,至少C++够强,没人会怀疑你其他 12/04 06:38
23F:→ acgotaku: 语言的理解能力,只熟python 面试官一定要你用C解 12/04 06:40
24F:→ acgotaku: 挂白板的机会很高呀 12/04 06:40