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