各位版大好,
有鑒於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但想轉過去,
然後在留言的部分,就會看到很多版大建議先去修個基礎課。
所以這篇文章對於初學者來說,我想或多或少應該會有點幫助。
如果有其他版大們有更好的資源及建議,希望也可以分享,謝謝。