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