【转】34门课改变人生——牛人自学计算机总结
【轉(zhuǎn)】34門課改變?nèi)松H俗詫W(xué)計算機(jī)總結(jié)
2014-06-06 15:50
轉(zhuǎn)載說明:在人人網(wǎng)上看到一個在美國學(xué)生物的碩士通過MOOC學(xué)習(xí)最終找到IT工程師工作的故事,非常勵志,而且每門課都有很有價值的點(diǎn)評,經(jīng)過作者本人同意轉(zhuǎn)載到MOOC學(xué)院,如果各位有后續(xù)問題可以把他本人拉來答疑。
------轉(zhuǎn)載正文-------
首先這只是我個人的總結(jié),希望能提供大家一些好的建議或者想法,至于具體的可實(shí)施性和可推廣性就不做任何保證了。。。其實(shí)主要是“我上過的與CS有關(guān)的公開課的總結(jié)”,不過為了名字的短小精悍所以。。。
?
只是匯報一下我學(xué)了這些課,而且做一些個人的評價,并不代表著就等同于CS的學(xué)位了。。。額,操作系統(tǒng)編譯等等都沒上過這是必然不能比的。。。我只是上了這些課,而且這些課都屬于CS的范疇而已?,F(xiàn)在也只不過是拿到了offer所以匯報一下,肯定還要繼續(xù)學(xué)的。。。忘了哪位同學(xué)評論的對,這些都是CS Technology,主要面向的其實(shí)是非CS專業(yè)的同學(xué),打一些基礎(chǔ)吧,畢竟現(xiàn)在不會programming什么的基本寸步難行啊。。。
?
如果確實(shí)準(zhǔn)備通過自學(xué)CS來找工作,那么最好先確保有足夠的時間,能力和毅力。大忙人,作業(yè)寫不完天天趕ddl的,數(shù)學(xué)恐懼癥,編程恐懼癥或者重度拖延癥基本可以點(diǎn)叉了。而且請至少留出一年時間來學(xué)習(xí)吧。
?
我的背景本科是藥學(xué)和心理,MS是Columbia的Biostatistics,然后工作拿到了。。。加州某小IT公司(也就是說你們大部分不會知道名字的公司)的offer,package勉強(qiáng)可以跟CS MS comparable這樣。不過鑒于這里面有極大的運(yùn)氣成分所以沒有任何可推廣性和借鑒價值。然后我就進(jìn)入正題說自學(xué)CS了。
?
我的背景算是統(tǒng)計吧,然后這樣的話是要往machine learning的方向轉(zhuǎn),完全沒必要我也不愿意做純碼農(nóng)or Software Engineer,我投的基本上還是比較交叉的Data Scientist或Modeling Scientist這樣。需要一定的programming能力但是要求并不深。除此之外可能會一些database或者machine learning會有幫助。。。我學(xué)其他的基本是個人愛好。其他專業(yè)的同學(xué)請看看就好了。。。而且申請OPT什么的時候還要考慮工作和學(xué)位的匹配程度。
?
首先一點(diǎn),一定要是免費(fèi)!或者基本免費(fèi)。。。為什么不旁聽的原因是我在醫(yī)學(xué)部的校區(qū)離計算機(jī)系的主校區(qū)還是有相當(dāng)距離的,所以我懶得去。。。不過現(xiàn)在網(wǎng)絡(luò)上有極其豐富的教學(xué)資源,尤其是在計算機(jī)這方面更是非常豐富。這里我用的主要是三個平臺:
?
1, Coursera,由Stanford的吳恩達(dá)(什么沒聽說過?英文名應(yīng)該更熟叫Andrew Ng)和Daphne Koller教授創(chuàng)建,現(xiàn)在有200多面課程,基本上有100多所大學(xué)吧,其中CS的課應(yīng)該就有50+。他們的特點(diǎn)是每門課都有一定的開放時間,而且有deadline,如果沒有趕上開放時間就要等半年或者更長時間才能趕上下次開放。。。所以要上的話建議提前半年到一年看好所上課程的下次開課時間。(如果是某門課的first run那么很可能會推遲開課。。。)最后一般會給certificate,但是不會有人看那玩意的。。。編程作業(yè)會有,不過一般不會限定語言。課程跟大學(xué)內(nèi)教授的相似,會更偏理論。課時基本上是5-8周,然后每門課的用時不定,2-4小時吧,如果有programming assignment會更多。
?
說一下PA(Programming Assignment),PA這個東西我覺得是非常好也非常有用的。有實(shí)驗表明學(xué)習(xí)的最好方式之一就是通過教別人,而PA,我的理解就是把你的概念教給計算機(jī)的一個過程,所以真的是非常有用的,不做PA基本等于白學(xué)雖然有些夸張但是收獲少了80%應(yīng)該是會有的。
?
2, Udacity,cofounder是google一個教授,另一個也是stanford的。。。課非常flexible。只要材料全部post了那么什么時間上都可以,什么時間完成作業(yè)也都沒要求,適合填充碎片時間(比如coursera的課很少的時候安排看Udacity),會更加注重應(yīng)用,會有autodesk,nvidia的人去講。并且我認(rèn)為很適合學(xué)編程。用的Python較多,如果沒注明的話默認(rèn)就是python了,最近也有需要C/javascipt/HTML的課。缺點(diǎn)是他的視頻是upload到Y(jié)2B上面的(雖然現(xiàn)在基本都開放下載了),所以需要FQ。技術(shù)好的請F(tuán)Q的,技術(shù)不好的請搞一個V*P*N,一個月也沒多少錢,跟你學(xué)到的知識相比絕對物超所值。課基本是7周,6周的正課,最后一周一般是叫點(diǎn)牛人然后來個展望這樣。。。每周時間也要看programming的比重,不會很多。
?
3, 其他,主要是iTunes U或者翻譯過來的網(wǎng)易公開課,相比而言視頻的質(zhì)量會非常差。。。沒了。不是特別推薦。優(yōu)點(diǎn)是網(wǎng)易公開課的話是有中文翻譯的。這個一般相比,看視頻的時間需要的較多。
?
然后我第一次上Coursera的時間是4.23,第一次上Udacity的時間是4.18,也就是說到現(xiàn)在也沒有一年。這之前我的編程經(jīng)驗是:R,基本可以熟練運(yùn)用。。。如果統(tǒng)計的同學(xué)R或者M(jìn)atlab應(yīng)該是肯定會一個的吧。。。然后后面我會按照我上的課的時間順序給出評價?;旧?星是必選,4星是machine learning必選,3星是推薦,2星是一般,1星是不推薦。
?
0, MIT計算機(jī)科學(xué)導(dǎo)論,5星。請到網(wǎng)易公開課找,或者iTunes U等找英文資源。我上課的時間是大四。講的內(nèi)容基本是以python編程為主,并且會涉及到一定的OOC(面向?qū)ο?#xff09;的內(nèi)容,鑒于后面的課都跟OOC沒什么關(guān)系所以這個課也還是挺好的。講的也不錯,相比之下harvard的CS101我就很不喜歡。。。
?
1, Udacity CS101 Intro to CS: 2.5星,作為入門課是很可以的,講的也很適合美國人(對我的意思是他們比較笨),不過如果有了MIT的做基礎(chǔ)這個基本就跟玩似的。。。有時間上了就好也不花什么精力?;蛘咧苯幼鳛閜ython入門也是不錯的。內(nèi)容基本是build a toy search engine。還算有趣。
?
2, Udacity CS262 Programming Language:5星,通過build一個javascript和html的interpreter可以對計算機(jī)語言的運(yùn)行方式有一個更深層次的理解。尤其是對于各種syntax error之類的。而且他的成品基本上是Udacity所有課里面最exciting的,老師的聲音也很好聽。難度適中。有前兩個的基礎(chǔ)應(yīng)該問題不大
?
3, Udacity CS212 Design of Computer Program: 5星,Google的Peter Norvig講,基本講完之后的感覺就是所有編程都沒問題了。。。不過也很難,我當(dāng)時每周的課都。。。比較困難。因為當(dāng)時我是101,212,262還有machine learning同時上的,外加還要抽出一點(diǎn)點(diǎn)時間復(fù)習(xí)期末考試。。。每周基本上都能有一定的成果,第一周是poker,然后后面還有word game,game solver,grammar等等非常有趣的內(nèi)容,極力極力推薦。難度,挺難的,不過收獲也非常大。順便這老師我特喜歡,也是Udacity的cofounder。
?
4, Coursera Machine Learning:4星,ML必須課需要說什么么。。。不過比較偏應(yīng)用,會介紹Neural Network,但是對SVM基本上一帶而過。還有recommendation system和別的一些較應(yīng)用的內(nèi)容。沒有reinforcement learning的部分,unsupervised也比較淺。有PA,沒有期末考試,一般人這課都能拿滿分吧因為沒有限制嘗試的次數(shù)。。。用的語言是Octave/Matlab,難度一般。順便Andrew Ng的奇怪的中國口音實(shí)在是聽起來好爽。以及老師也是Coursera的cofounder,還經(jīng)常來中國玩。
?
5, Coursera Software Engineer for SaaS: 1星,看情況應(yīng)該是不再開了,隨便說幾句。課的視頻直接就是上課錄得,質(zhì)量很差非常沒有誠意,而且感覺就是一直在賣自己的教材的樣子。課。。。因為上的太早了我完全沒概念所以也基本沒聽懂。勉強(qiáng)做了前面幾個PA實(shí)在忍不了了最后這個課我就基本沒上。。。用的是Ruby on Rails。
?
6, Coursera Human-Computer Interaction: 2星,一般。沒什么特別的意思。。。有些需要自己設(shè)計界面什么的對那種基本不感冒。而且后面居然開始講統(tǒng)計和實(shí)驗心理學(xué)一類的東西了我有些接受不了。。。
?
7, Udacity CS253 Web Application: 3星,挺不錯的課,就是最后用GAP搭建一個非常簡單的blog以及wiki。能夠提供一些關(guān)于網(wǎng)頁應(yīng)用的insight(當(dāng)然非常淺),做的東西也算是非常有意思的,另外用的平臺是Google的GAP,國內(nèi)的同學(xué)請準(zhǔn)備FQ。難度適中。而且最后一單元會談到很多很實(shí)用的問題比如scale什么的。而且能給一些關(guān)于software engineering的idea。
?
8, Coursera Algorithms: Design and Analysis Part 1: 5星,這個是Stanford開的那版,不是Princeton的,后者我沒上過不過據(jù)說更淺一些。老師很有激情語速也比較快,寫字也很難看。。。不過看多了就習(xí)慣了。算法對CS是非常重要的,也是面試常考的。這個介紹的是基本概念big-O,還有sort和search。每周都有PA,基本是給input然后求output這樣,不限定語言,不過python有時候會非!常!慢!難度適中
?
9, Coursera Cryptography I: 3星,Stanford的密碼學(xué),講得很詳細(xì),而且也非常難。。。畢竟都是最最聰明的人在搞這些玩意。有很多非常奇妙的trick。不過難的同時同樣的也很有挑戰(zhàn)性。這個比較偏理論。有三星的自虐指數(shù),難度是真的很難。
?
10, Udacity CS373 AI: Robotics: 3星,是Udacity另一位cofounder講的,也很不錯介紹了particle filter和A*什么的。缺點(diǎn)是一開始重復(fù)了兩周的非常基礎(chǔ)的probability的內(nèi)容,不然的話還是可以考慮給4星的。。。難度適中。
?
11, Udacity CS387 Applied Cryptography: 也是密碼學(xué),一視同仁給3星。這個就很應(yīng)用,理論的部分不多,而且cover的比Coursera的多(Coursera的畢竟只是part I, part II還遙遙無期。。)每單元最后都有challenge題目,是真的很變態(tài)。。。尤其是final的最后一題,設(shè)計得非常巧,有大概四五個環(huán)節(jié)要把很多學(xué)到的東西都用上。做的感覺就跟拿著藏寶圖尋寶,然后一個一個解開線索一樣。。。因為是密碼學(xué),所以必須的自虐指數(shù)三星,難度也真的很難。另外上這課有時候也需要FQ。
?
12, Udacity CS215 Algorithms:3星吧,鑒于有上面的algo了這個也不是很難。。。算是鞏固好了。介紹的重點(diǎn)是關(guān)于graph的,dijkstra什么的。。。老師很有趣,見過一面。難度適中。
?
13, Udacity CS258 Software Testing: 1星,我上過的Udacity最差勁的課,課內(nèi)容非常少,而且總之這個現(xiàn)在也用不到。我反正是有時間就上了。唯一的收獲是中間寫了一個數(shù)獨(dú)的solver,然后我自我感覺寫得很不錯。。。導(dǎo)致后面我對數(shù)獨(dú)完全失去興趣了。。。
?
14, Coursera Quantum Mechanics and Quantum Computation:2星。量子。。。啊這些其實(shí)沒什么關(guān)系上純是興趣因為密碼說過量子計算機(jī)可以破RSA。。。然后非常難,非常虐。所以就不推薦了。。。我現(xiàn)在也只能記住最基本的qubit的共軛。。。
?
15 Stanford Machine Learning: 4星。是iTunes U上面的,Andrew Ng在斯坦福的講課視頻,相比前面coursera的就更理論,雖然沒有NN的內(nèi)容,但是svm講得很細(xì),還有ica和reinforcement的部分。總之算是鞏固基礎(chǔ),然后相輔相成。同樣我還是很喜歡吳恩達(dá)老師的口音!
?
16, Coursera Web Intelligence and Big Data: 1星。大部分很淺,不喜歡。而且考試非常無厘頭。不過基本上介紹得很全面,包括file system也涉及到了。PA。。。比較傻逼。不過也不是很花時間,所以還好。
?
17, Udacity CS222 Differential Equation:3星,在學(xué)校基本算是沒學(xué)過微分方程所以挺遺憾的。。。這個課也有涉及很多實(shí)際問題所以算是有趣。畫的圖也很好看。。??傊詈蟮母杏X就是世界真和諧,世界真奇妙,世界真美好。而且用matplotlib,需要的同學(xué)可以借鑒一下。
?
18, Coursera Introduction to Computational Finance and Financial Econometrics:2星,本科難度的課,基本上很傻逼。。。前面70%都是在復(fù)習(xí)什么矩陣啊概率啊之類的。。。用的是R。會有一些time series的東西。。。還有一點(diǎn)關(guān)于股票的,不然根本就是白上了。。。
?
19, Coursera Probabilistic Graphical Models: 3.5星,和Machine Learning的關(guān)系也沒有那么大,還不算一定必選。老師是Coursera的另一位cofounder,內(nèi)容是研究生級別的,很難,PA也很難。我現(xiàn)在有些概念也沒完全理解透。。。而且內(nèi)容很多。借用weibo上老師木的評價:“別的都是講的術(shù),圖模型講的是道”。自虐指數(shù)三星。我當(dāng)時經(jīng)常周六下午做這個PA做的死去活來。。。
?
20, Coursera Neural Networks for Machine Learning: 4星?,F(xiàn)在Deep Learning的領(lǐng)軍人大牛hinton親自講授。內(nèi)容有點(diǎn)。。?;逎?#xff0c;但是理解之后概念還是不錯的。PA什么的難度也適中。不算特別變態(tài)。
?
21, Udacity CS313 Theoretical Computing:2.5星,主要講關(guān)于NP的,這個topic還是蠻有趣的。Programming的比重也不大,應(yīng)該可以輕松上完。。。因為確實(shí)跟CS,主要是找工作的話關(guān)系沒那么大所以到不了3星,何況NP后面還有5星課程會cover到。。。
?
22, Udacity CS259 Software Debugging: 2星。主要是Coursera的課都上完了沒事就上了。內(nèi)容如題。。。其實(shí)也可以,但是我肯定不是這么debug的。。。
?
23, Udacity CS271 Intro to Artificial Intelligence: 4星。Udacity當(dāng)年的第一門課。兩個cofounder講。對于ML,NLP,CV,機(jī)器人,game theory等都有所涉及。看完了我突然覺得。。。尼瑪原來我感興趣的這些全都是AI啊。。。不難,沒有PA,花點(diǎn)時間就好了。
?
24, Coursera Algorithms: Design and Analysis Part 2: 5星。必須的五星,之前的part 2,內(nèi)容是greedy algorithm,dynamic programming和NP。涉及的東西很多,PA也變態(tài)了很多python真的特別慢。在此力薦pypy。沒什么可說的算法是必須看的。而且這倆part加起來本科畢業(yè)生的水平至少就有了。。。
?
25, Coursera Interctive programming in Python:2.5星,用他們自己建的一個GUI去遍圖形界面,也算是python入門課。很簡單,不過如果是machine learning的話用處不大。。。(這門課當(dāng)是因為沒時間只是看了視頻,也沒有做作業(yè),沒拿certificate)
?
26, Coursera: Intro to Database: 3星 現(xiàn)在搬到Class2Go上面去了貌似。介紹數(shù)據(jù)庫,包括一些xml啊json什么的還有nosql的部分。當(dāng)然大頭是SQL,因為考SAS證的時候?qū)W過了,所以也就看看。不過數(shù)據(jù)庫對于big data什么的還是很重要的(準(zhǔn)確地說nosql數(shù)據(jù)庫還有DFS什么的很重要。。。),所以應(yīng)該還是看看比較好。
?
27, Coursera Computing for Data Analysis: ?星,簡單的但是比較系統(tǒng)的介紹R語言??锤魑坏男枰恕r間只有4周,感覺老師講的還不錯。
?
28, Coursera Game Theory: 2星,感覺。。。好奇怪的,感覺什么都沒說就上完了,最后就記得一個詞叫納什均衡了。。。而且很淺,尤其是rational的假設(shè)令我感到很不安。。。當(dāng)然我會說我選這課的時候根本不知道Game Thoery是博弈論。。。我還以為是什么游戲之類的呢。。。
?
29, Coursera Image and video processing:3星,介紹基本的關(guān)于image processing的東西,挺好的。有時候挺好奇PS里那些效果是怎么辦到的,就看這個就好了。。。當(dāng)然那部分貌似跟PDE有關(guān)所以其實(shí)我基本沒看懂。。。
?
30, Udacity CS344 Parallel Computing:2.5星,用的是build on C的CUDA。因為主要是為了提高運(yùn)算速度所以用C還是可以理解的。因為不熟悉C。。。所以上成了一個傻逼啊!不過有些概念學(xué)一下還是很有助于開闊眼界的?,F(xiàn)在Program GPU也很是流行的樣子。。。而且我覺得挺難,主要是C完全不熟。這門課的唯一宗旨就是提高Performance,是非常practical的一門課,雖然其實(shí)Udacity很多課都很practical。。。
?
31, Coursera Linear and Discrete Optimization:2星,有很弱智的PA,基本就是填空題。然后就是線性規(guī)劃嘛。。。主要cover了simplex算法等。也不是很花時間。后面還有一些很有趣的應(yīng)用比如在graph上面的。越上越覺得真的是很奇妙。
?
32, Coursera Natural Langauge Processing:一開始是想看在是鄙校的份上違心給個3.5星的,上完之后覺得還是可以給4星的。。。這個課主要是先期準(zhǔn)備不足所以一開始很亂套導(dǎo)致扣了很多印象分。講的算是清楚明白,只是不知道到底cover了多少,PA難度也還可以。不過那些東西感覺都太經(jīng)典了。。。是不是有點(diǎn)過時了啊。。。NLP基本也和ML關(guān)系很緊密,所以個3.5也不算很過分。。。最后又給了一個optional的PA導(dǎo)致我很感動,外加是鄙校的緣故果斷4分。
?
33, Coursera Social Netwrok Analysis: 3星,社交網(wǎng)絡(luò)誒很火的,雖然講的似乎也比較淺,而且老師沒有照片上那么好看。。。上完了,感覺講的確實(shí)比較淺。有同學(xué)推薦Stanford的network,看上去這個Umich全部8周的內(nèi)容在那里也就3-4周。。。不過反正每周也就1個多小時的時間,不能要求太多了。。。
?
34, Udacity CS255 HTML5 Game Development: 可以給1.5星么,真的不是很喜歡這門課,雖然講課的是Google的,但是quiz什么的設(shè)計的特別粗糙,意思就是一般而言solution的答案直接提交都是會有錯的。。。也不像一般的課有獨(dú)立的pset或者final,這門課所有的內(nèi)容就是圍繞一個game展開的。不過如果真的有興趣做這方面的話,收獲還是挺大的。而且非常適合作為OOC的教材。不過總體而言由于quiz太爛的問題打下2分。而且似乎有一個單元必須用chrome才可以。
?
35, Udacity CS291 Interactive 3D Graphics:2.5星。用Three.js吧,build on javascript。恩,想想這是魔獸會用到的技術(shù)我就覺得很有動力。。。內(nèi)容非常具體也非常多,涵蓋面非常廣,可能是Udacity內(nèi)容相對而言較多的一門課,不過由于前后隔的時間比較長。。。我覺得很多概念都記不太清了,所以學(xué)的效果不能算好,但是其實(shí)很有趣的。
?
以下課程是我在上的還沒上完。。。
?
36, Coursera Computational Neuroscience: 2.5星。用一點(diǎn)Octave,恩,老師感覺挺有趣的,才剛3周,不過感覺內(nèi)容不會太差??傊甤omputation的東西和Neuroscience我都學(xué)過所以這個應(yīng)該比較無壓力吧哈哈哈
?
37, Intro to Data Science: 4星,最近發(fā)現(xiàn)UW的課出其不意的很靠譜啊。。。這個課只上了第一周但是感覺來說是非??孔V的,實(shí)用性很強(qiáng),雖然相比CS感覺會更適合統(tǒng)計的同學(xué)。。。不過目前的感覺就是如果有志于做Data Scientist請一定要上這門課。會使用Python,SQL,R,基本上這些Data Scientist也是必須的。
?
38, High Performance Scientific Computing: 4星,同樣UW。這門課同樣是非常statistic friendly,因為是在applied math系下面的,對于一些commend line的東西會手把手的教。而且練習(xí)目測也很靠譜。唯一一點(diǎn)就是沒有certificate,不過學(xué)到東西是最重要的吧。同樣實(shí)用性非常強(qiáng)(意思就是一般面試也不會考,但是日常絕對很常用)。根據(jù)Syllabus看,會教部分Python,Fortran 90,OpenMP,推薦所有真的打算從事這個行業(yè)的非CS的同學(xué)學(xué)習(xí)。上第一周的時候還只是3.5分現(xiàn)在想想覺得4分一點(diǎn)也不虧,可能還會給到4.5。。。(太偏實(shí)用不太好給5分)
?
下面這個課我沒上過:
?
??: Coursera Complier,所以也沒法打分,用的應(yīng)該是C,目測比較難但是上過的同學(xué)感覺收獲還是很大的。。。不過因為python不用compile所以我也沒什么概念。。。
?
總結(jié):必上:MIT的導(dǎo)論,Udacity 262, 212,Coursera上斯坦福的算法。還有Andrew在Coursera和Stanford上面的兩版Machine Learning。
?
最后的廢話:感謝Andrew Ng,Peter Norvig等人的努力,沒有他們就不會有這么多這么好的免費(fèi)資源給我們。我的偶像是Steve Jobs和Walt Disney,他們不僅改變了我,也改變了世界。Andrew他們還不算,因為雖然這些公開課改變了我,但是還沒看到他們改變世界,不過他們都還活著。。。所以我覺得肯定會看到那一天的。另外感謝他們給這么好的機(jī)會和資源,我覺得如果可能的話我會貫徹終身學(xué)習(xí),堅持一直學(xué)習(xí)下去的。。。
總結(jié)
以上是生活随笔為你收集整理的【转】34门课改变人生——牛人自学计算机总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百变工程之机器人
- 下一篇: 智慧警务——大数据时代的警务模式