?姓名:樊松松
?學(xué)號:17021211234
?轉(zhuǎn)載自https://www.leiphone.com/news/201805/qFtW0h1tJagXpJV9.html,有刪節(jié)
【嵌牛導(dǎo)讀】:不就學(xué)個計算機嘛,給你20周巫员,行不行
【嵌牛鼻子】: 計算機
【嵌牛提問】:20周真的可以嗎验夯?
【嵌牛正文】:
這是一份五個月(20個星期)學(xué)習(xí)計算機科學(xué)的經(jīng)驗貼贩猎,希望幫助你跟我一樣從入門到精通。
傳統(tǒng)的大學(xué)開設(shè) ACS 專業(yè)锈候,主要是引導(dǎo)學(xué)生從毫無任何編程經(jīng)驗理茎,到對計算機科學(xué)領(lǐng)域的一些相關(guān)學(xué)科有一個較為寬泛的認識。在這條視頻中劳澄,我將給大家介紹一下,我個人是如何安排自己的學(xué)習(xí)規(guī)劃蜈七,在短短的五個月內(nèi)秒拔,掌握計算機科學(xué)這門領(lǐng)域的知識。
我列在這里的資源飒硅,在互聯(lián)網(wǎng)上都能找到溯警,并且都是免費的。在我開始之前狡相,請大家記住,你可以根據(jù)自己的情況加快學(xué)習(xí)進度比如視頻加速觀看食磕,每天學(xué)習(xí)兩到三個小時尽棕,每門課在周末只做一個項目等等。在學(xué)習(xí)的時候彬伦,手寫筆記以便記住所學(xué)的內(nèi)容滔悉,在你學(xué)習(xí)列表中的內(nèi)容時,記住關(guān)注一些計算機行業(yè)的大牛单绑,這樣就能及時了解到相關(guān)領(lǐng)域的最新動態(tài)了回官。
WEEK 1-2 Python
在最開始,我們要學(xué)的是 Python 這種編程語言搂橙。什么是Python歉提?Python是一種解釋執(zhí)行的具有動態(tài)語義的面向?qū)ο蟮母呒壘幊陶Z言。啊什么鬼啦,定義中這么多專業(yè)術(shù)語苔巨,看不下去怎么辦版扩?別著急,我給大家介紹一個學(xué)習(xí)資源侄泽,這個資源不要求你了解計算機科學(xué)領(lǐng)域的相關(guān)術(shù)語也能看懂礁芦。
在網(wǎng)絡(luò)上有一本極好的免費的書,叫做Automate The Boring Stuff With Python悼尾。這本書對編程小白來說相當實用柿扣,書中展示了如何完成一些基本的任務(wù),例如使用 Python 語言發(fā)送提醒郵件闺魏,移動文件夾以及格式化數(shù)據(jù)等未状。
我建議你第一周的時間來讀這本書,總共有18章舷胜,如果每天完成三到四個章節(jié)周末就能完成娩践。這本書中里面有許多練習(xí),你可以在你使用的任何操作系統(tǒng)的終端上去完成這些練習(xí)烹骨。如果你在自己的機器上安裝Python時遇到了問題翻伺,可以到Python 的官網(wǎng)上查查詳細的相關(guān)信息。
在學(xué)習(xí) Python 的第二周沮焕,我推薦參加CodeAcademy的Python課程吨岭。在課程中,你的網(wǎng)頁上就會有交互式的控制臺峦树,你可以馬上得到反饋辣辫,知道自己的代碼是否編譯正確。這些年魁巩,這個平臺的這個課程一直很受初學(xué)者的歡迎急灭。
總共兩個周的時間,差不多足夠你對 Python 語言有一個基本的了解了谷遂。當然葬馋,前兩周你寫的程序還不足以改變世界,但是肾扰,理解這門語言的語法畴嘶、關(guān)鍵詞、使用的頻率以及為什么使用集晚,這些都是至關(guān)重要的窗悯。它們能夠幫助你在下一階段中構(gòu)建以及理解一些數(shù)據(jù)結(jié)構(gòu)。
Automate the Boring Stuff with Python:?https://automatetheboringstuff.com/
Codecademy的Python教程:https://www.codecademy.com/learn/learn-python
WEEK 3-4 數(shù)據(jù)結(jié)構(gòu)
我還記得偷拔,當我還是哥倫比亞的一個計算機科學(xué)的大一新生時蒋院,每個人都會告訴我亏钩,在你的專業(yè)里面,你將要上的最重要的兩門課是數(shù)據(jù)結(jié)構(gòu)與算法悦污。在那個時候铸屉,這聽起來很滑稽。怎么能說數(shù)據(jù)結(jié)構(gòu)與算法比 學(xué)習(xí)令人激動的機器人學(xué)和計算機視覺還要重要呢切端?結(jié)果我被啪啪打臉了彻坛,他們是對的。
在計算機科學(xué)領(lǐng)域踏枣,如果你要創(chuàng)造出無窮無盡超級棒的應(yīng)用昌屉,你就必須理解如何正確地存儲數(shù)據(jù),以及對數(shù)據(jù)進行處理茵瀑,以便完成任務(wù)间驮。
有一個 UC SanDiego開設(shè)的數(shù)據(jù)結(jié)構(gòu)課程,這門課程會展示給你各種各樣的數(shù)據(jù)結(jié)構(gòu)——從二叉樹到鏈表马昨,以及在 Python 中如何實現(xiàn)這些數(shù)據(jù)結(jié)構(gòu)竞帽。
UC SanDiego的Data Structures Fundamentals:?https://www.edx.org/course/data-structures-fundamentals-uc-san-diegox-algs201x
WEEK 5-6 算法
之后,你也許會想了解一些算法方面的東西鸿捧。使用Python作為基礎(chǔ)語言的最好的一門課程是MIT的算法介紹課程屹篓。在他們的網(wǎng)站上,你可以看到所有的課程和相關(guān)的筆記以及問題集匙奴。你會注意到堆巧,當談到數(shù)據(jù)結(jié)構(gòu)和算法,一旦你開始構(gòu)建并且能夠理解其中的一些東西泼菌,一切都會開始變得有用起來谍肤、當涉及到數(shù)據(jù)的正確存儲時,你會開始理解哗伯,你必須要做的一些折衷處理荒揣,當你開始考慮應(yīng)用的時候,你將能夠知道焊刹,為了完成任務(wù)乳附,你需要什么類型的數(shù)據(jù)結(jié)構(gòu)以及算法。?
MIT 6.006: Introduction to Algorithms?https://courses.csail.mit.edu/6.006/fall11/notes.shtml
WEEK 7 數(shù)據(jù)庫
接下來伴澄,無論你是構(gòu)建一個web應(yīng)用、移動應(yīng)用或者是僅僅進行數(shù)據(jù)處理阱缓,了解數(shù)據(jù)庫如何運作都是十分重要的非凌。SQL是最普遍的標準的數(shù)據(jù)庫語言,Coursera上有一門課程荆针,課程名字叫做Using databases with Python敞嗡,這門課程能夠幫助你容易地理解數(shù)據(jù)庫颁糟。
你可以跳過這門課程的第一周,繼續(xù)往后學(xué)喉悴,因為我們已經(jīng)了解了Python學(xué)習(xí)部分的內(nèi)容棱貌。
密歇根大學(xué) Using Databases with Python?https://www.coursera.org/learn/python-databases
WEEK 8 網(wǎng)絡(luò)
在接下來的一周,我們將在Python上稍微停一下箕肃,轉(zhuǎn)而把注意力放在網(wǎng)絡(luò)上婚脱。在你構(gòu)建一個需要使用互聯(lián)網(wǎng)的應(yīng)用時,你必須要弄明白勺像,互聯(lián)網(wǎng)這個人類設(shè)計的復(fù)雜的系統(tǒng)障贸,是如何允許我們在一瞬間與全球各地的人進行交流的。
Coursera上有一門課程吟宦,這門課程是Google開設(shè)的篮洁,叫the bits and bytes of computer networking。你會學(xué)到互聯(lián)網(wǎng)協(xié)議是如何工作的殃姓,你會弄明白袁波,當你向網(wǎng)頁中輸入網(wǎng)頁鏈接并且點擊回車鍵時,在搜索引擎之下發(fā)生了什么蜗侈。
The Bits and Bytes of Computer Networking?https://www.coursera.org/learn/computer-networking
WEEK 9-10 網(wǎng)頁開發(fā)
在你完成這一部分的學(xué)習(xí)之后篷牌,你就能開始進行網(wǎng)頁以及移動應(yīng)用的編程開發(fā)了。我是哈佛大學(xué)計算機科學(xué)教授David Malan的忠實粉絲宛篇,他個人充滿熱情娃磺,極富感染力,能夠讓你一直沉浸在課堂中叫倍。
網(wǎng)絡(luò)方面最好的課程是哈佛的cs50 web編程課程偷卧,課程使用的是Python和JavaScipt,我們目前只了解了 Python 的相關(guān)知識吆倦,但是很有必要去了解一下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 移動端
接下來,你需要花兩周的時間蚕泽,構(gòu)建一個讓你激動的應(yīng)用晌梨。你可能會灰心,不過沒有關(guān)系须妻,你有兩個選擇仔蝌,IOS和安卓』睦簦可以在第一個周構(gòu)建一個IOS應(yīng)用敛惊,第二個周構(gòu)建一個安卓應(yīng)用,這樣你就能看到兩者之間的差別绰更,并且能夠意識到自己更喜歡哪一個編程環(huán)境瞧挤。
蘋果端:https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/
安卓端:https://developer.android.com/training/basics/firstapp/
WEEK 13-14 數(shù)據(jù)科學(xué)
數(shù)據(jù)科學(xué)是從數(shù)據(jù)中尋找結(jié)論的一門學(xué)科锡宋,通常這會用到機器學(xué)習(xí)和統(tǒng)計分析部分的知識。
EDX上有一門UCSD開設(shè)的一門課程特恬,名字叫做Python for data science执俩。通過這門課來進入這個領(lǐng)域是一個很好的方法,課程略長癌刽,因此這門課需要一到兩周的時間役首。這門課會讓你直接使用到你的Python知識,你會接觸到一些常用的數(shù)據(jù)科學(xué)方面的Python庫妒穴,如pandas numpy宋税。學(xué)完這門課之后,你會對機器學(xué)習(xí)有一點了解讼油。
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
斯坦福CS231nhttp://www.mooc.ai/course/268
WEEK 17-18自然語言處理
我推薦Coursera的這門課:
Applied Text Mining in Python?https://www.coursera.org/learn/python-text-mining
WEEK 19 軟件編程實踐
僅僅知道如何編程還是不夠的矮台,你還需要知道在一個團隊中如何進行編程乏屯。這就是為什么,你需要在接下來這個周學(xué)習(xí)軟件開發(fā)實踐瘦赫。
Coursera上有一門課程辰晕,名字叫做軟件開發(fā)過程與方法論,在這門課程中确虱,涵蓋了許多和其他人一些協(xié)同編碼開發(fā)的團隊技巧含友。如果你想在一家公司工作,比如Google者一些很小的初創(chuàng)公司校辩,了解這些東西至關(guān)重要窘问。
Software Development Processes and Methodologies:https://www.coursera.org/learn/software-processes
WEEK 20 區(qū)塊鏈
最后一個周,你需要宜咒,對加密貨幣惠赫、區(qū)塊鏈等技術(shù)有一個大致的認識,因為這些技術(shù)現(xiàn)在很火故黑。在Youtube上我已經(jīng)準備好了一個加密貨幣的播放列表儿咱,你可以打開看看。