良心推薦:一份20周學習計算機科學的經驗貼(附資源)
這里是,油管Artificial Intelligence Education專欄,原作者Siraj Raval,原標題?Computer Science Curriculum。
這是一份五個月(20個星期)學習計算機科學的經驗貼,希望幫助你跟我一樣從入門到精通。
傳統的大學開設 ACS 專業,主要是引導學生從毫無任何編程經驗,到對計算機科學領域的一些相關學科有一個較為寬泛的認識。
WEEK 1-2 Python
在最開始,我們要學的是 Python 這種編程語言。
什么是Python?
Python是一種解釋執行的具有動態語義的面向對象的高級編程語言。
啊什么鬼啦,定義中這么多專業術語,看不下去怎么辦?
別著急,我給大家介紹一個學習資源,這個資源不要求你了解計算機科學領域的相關術語也能看懂。
在網絡上有一本極好的免費的書,叫做Automate The Boring Stuff With Python。這本書對編程小白來說相當實用,書中展示了如何完成一些基本的任務,例如:使用 Python 語言發送提醒郵件,移動文件夾以及格式化數據等。
我建議你第一周的時間來讀這本書,總共有18章,如果每天完成三到四個章節周末就能完成。這本書中里面有許多練習,你可以在你使用的任何操作系統的終端上去完成這些練習。如果你在自己的機器上安裝Python時遇到了問題,可以到Python 的官網上查查詳細的相關信息。
在學習 Python 的第二周,我推薦參加CodeAcademy的Python課程。在課程中,你的網頁上就會有交互式的控制臺,你可以馬上得到反饋,知道自己的代碼是否編譯正確。這些年,這個平臺的這個課程一直很受初學者的歡迎。
總共兩個周的時間,差不多足夠你對 Python 語言有一個基本的了解了。當然,前兩周你寫的程序還不足以改變世界,但是,理解這門語言的語法、關鍵詞、使用的頻率以及為什么使用,這些都是至關重要的。它們能夠幫助你在下一階段中構建以及理解一些數據結構。
Automate the Boring Stuff with Python:https://automatetheboringstuff.com/
Codecademy的Python教程:https://www.codecademy.com/learn/learn-python
WEEK 3-4 數據結構
我還記得:當我還是哥倫比亞的一個計算機科學的大一新生時,每個人都會告訴我,在你的專業里面,你將要上的最重要的兩門課是數據結構與算法。
在那個時候,這聽起來很滑稽。怎么能說數據結構與算法比學習令人激動的機器人學和計算機視覺還要重要呢?
結果我被啪啪打臉了,他們是對的。
在計算機科學領域,如果你要創造出無窮無盡超級棒的應用,你就必須理解如何正確地存儲數據,以及對數據進行處理,以便完成任務。
有一個 UC SanDiego開設的數據結構課程,這門課程會展示給你各種各樣的數據結構——從二叉樹到鏈表,以及在 Python 中如何實現這些數據結構。
UC SanDiego的Data Structures Fundamentals:?https://www.edx.org/course/data-structures-fundamentals-uc-san-diegox-algs201x
WEEK 5-6 算法
之后,你也許會想了解一些算法方面的東西,使用Python作為基礎語言的最好的一門課程是MIT的算法介紹課程。在他們的網站上,你可以看到所有的課程和相關的筆記以及問題集。
你會注意到:當談到數據結構和算法,一旦你開始構建并且能夠理解其中的一些東西,一切都會開始變得有用起來。當涉及到數據的正確存儲時,你會開始理解,你必須要做的一些折衷處理;當你開始考慮應用的時候,你將能夠知道,為了完成任務,你需要什么類型的數據結構以及算法。
MIT 6.006: Introduction to Algorithms?:https://courses.csail.mit.edu/6.006/fall11/notes.shtml
WEEK 7 數據庫
接下來,無論你是構建一個web應用、移動應用或者是僅僅進行數據處理,了解數據庫如何運作都是十分重要的。
SQL是最普遍的標準的數據庫語言,Coursera上有一門課程,課程名字叫做Using databases with Python,這門課程能夠幫助你容易地理解數據庫。
你可以跳過這門課程的第一周,繼續往后學,因為我們已經了解了Python學習部分的內容。
密歇根大學 Using Databases with Python:?https://www.coursera.org/learn/python-databases
WEEK 8 網絡
在接下來的一周,我們將在Python上稍微停一下,轉而把注意力放在網絡上。
在你構建一個需要使用互聯網的應用時,你必須要弄明白:互聯網這個人類設計的復雜的系統,是如何允許我們在一瞬間與全球各地的人進行交流的。
Coursera上有一門課程,這門課程是Google開設的,叫the bits and bytes of computer networking。你會學到互聯網協議是如何工作的,你會弄明白,當你向網頁中輸入網頁鏈接并且點擊回車鍵時,在搜索引擎之下發生了什么。
The Bits and Bytes of Computer Networking:?https://www.coursera.org/learn/computer-networking
WEEK 9-10 網頁開發
在你完成這一部分的學習之后,你就能開始進行網頁以及移動應用的編程開發了。我是哈佛大學計算機科學教授David Malan的忠實粉絲,他個人充滿熱情,極富感染力,能夠讓你一直沉浸在課堂中。
網絡方面最好的課程是哈佛的cs50 web編程課程,課程使用的是Python和JavaScipt,我們目前只了解了 Python 的相關知識,但是很有必要去了解一下JavaScipt這門web語言。
Git – Lecture 0 – CS50’s Web Programming with Python and JavaScript:?https://www.youtube.com/watch?v=1u2qu-EmIRc
Github參考:https://github.com/melanierichards/just-build-websites
WEEK 11-12 移動端
接下來,你需要花兩周的時間,構建一個讓你激動的應用。你可能會灰心,不過沒有關系,你有兩個選擇——IOS和安卓。
可以在第一個周構建一個IOS應用,第二個周構建一個安卓應用。這樣你就能看到兩者之間的差別,并且能夠意識到自己更喜歡哪一個編程環境。
蘋果端:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
安卓端:https://developer.android.com/training/basics/firstapp/
WEEK 13-14 數據科學
數據科學是從數據中尋找結論的一門學科,通常這會用到機器學習和統計分析部分的知識。
EDX上有一門UCSD開設的一門課程,名字叫做Python for data science。通過這門課來進入這個領域是一個很好的方法,課程略長,因此這門課需要一到兩周的時間。
這門課會讓你直接使用到你的Python知識,你會接觸到一些常用的數據科學方面的Python庫,如:pandas numpy。學完這門課之后,你會對機器學習有一點了解。
Python for Data Science:https://www.edx.org/course/python-for-data-science
WEEK 15-16 計算機視覺
Udacity上有計算機視覺方面特別好的課程,當然也推薦斯坦福的CS231n。
https://www.udacity.com/course/introduction-to-computer-vision–ud810
斯坦福CS231n:http://www.mooc.ai/course/268
WEEK 17-18自然語言處理
我推薦Coursera的這門課:
Applied Text Mining in Python :https://www.coursera.org/learn/python-text-mining
WEEK 19 軟件編程實踐
僅僅知道如何編程還是不夠的,你還需要知道在一個團隊中如何進行編程。這就是為什么,你需要在接下來這個周學習軟件開發實踐。
Coursera上有一門課程,名字叫做軟件開發過程與方法論。在這門課程中,涵蓋了許多和其他人一些協同編碼開發的團隊技巧。如果你想在一家公司工作,比如:Google者一些很小的初創公司,了解這些東西至關重要。
Software Development Processes and Methodologies:https://www.coursera.org/learn/software-processes
WEEK 20 區塊鏈
最后一個周,你需要,對加密貨幣、區塊鏈等技術有一個大致的認識,因為這些技術現在很火。在Youtube上我已經準備好了一個加密貨幣的播放列表,你可以打開看看。
翻譯 | 王飛? ? ?整理 | 凡江
作者:雷鋒字幕組
來源:https://www.leiphone.com/news/201805/qFtW0h1tJagXpJV9.html
本文來源于人人都是產品經理合作媒體@雷鋒網,作者@雷鋒字幕組
題圖來自StockSnap.io,基于 CC0 協議
這些應該也要學好久好久了,數據結構…………加油加油
趕腳堅持學了之后代碼會不會我不知道,但英文一定能有提高。。。
然而,并沒什么卵用
??
然鵝,現實并不是這樣簡單。