如何自學(xué)計算機專業(yè)課程

前言

昨晚聽了一期知乎live:如何自學(xué)計算機專業(yè)課程。

學(xué)習(xí)后發(fā)現(xiàn),里面的內(nèi)容更適合計算機專業(yè)的在校生以及計算機基礎(chǔ)較弱的小白。此外,作者推薦的一些教材倒是不錯,在此分享。

image

Test Post Data From PC to see whether it is auto refreshed in Mobile App.

image
image
image

完全可以。計算機專業(yè)是人類歷史上第一個可以通過互聯(lián)網(wǎng)學(xué)習(xí)到幾乎所有專業(yè)知識的這么一個專業(yè)。

image

計算機專業(yè)的自學(xué)路線圖

美國計算機學(xué)會ACM發(fā)布了《計算機科學(xué)課程體系》的報告,當(dāng)前最新版是2013年的。計算機科學(xué)被劃分為18個知識領(lǐng)域。如下:

image
image
image

知識的掌握程度劃分為三級:

image

雖然計算機科學(xué)被劃分為18個領(lǐng)域,但是這18個領(lǐng)域有著緊密的聯(lián)系,構(gòu)成了知識之網(wǎng)。這是我們的核心任務(wù)。

image

學(xué)計算機的目的:

  • 掌握上層應(yīng)用的開發(fā),為了能夠在IT公司找一份工作。是以就業(yè)為目的的自學(xué)。

  • 以考試為目的的自學(xué)

  • 為了解決工作中遇到的特定問題,提升專業(yè)技能,升職加薪。以個人的職業(yè)發(fā)展為目的。

對于小白而言,首先要對計算機科學(xué)和計算機產(chǎn)業(yè)形成整體的認(rèn)識。這方面可以讀導(dǎo)論或者科普讀物。建議先讀吳軍博士的《浪潮之巔》。這本書講IT產(chǎn)業(yè)非常精彩。

緊接著,要做兩件事:(1)掌握一門編程語言;(2)學(xué)好數(shù)學(xué)。這兩者是并行的。

(1)掌握一門編程語言:

  • 第一種:C是一種結(jié)構(gòu)化的編程語言。如果不會C,后面的課程根本學(xué)不下去。

  • 第二種:Java是一種典型的面向?qū)ο蟮恼Z言。Java有活躍的社區(qū)和數(shù)之不盡的開源項目。

  • 第三種:JavaScript 或者Python。這兩個語言都是屬于動態(tài)編程語言的范疇,應(yīng)用極為廣泛。JavaScript是全世界使用人數(shù)最多的一種語言,并且JS的各種框架層出不窮,進步飛快,業(yè)界的工作機會眾多,對找工作是非常有幫助的。但實話實說,JS在計算機專業(yè)課程中用的并不多。Python卻不同,它被國內(nèi)外的很多大學(xué)選為新生的第一門語言。尤其是在這個大數(shù)據(jù)時代,Python真是火爆。

上面這四種語言,是學(xué)軟件開發(fā)必須要掌握的,從任何一個語言開始學(xué)起都可以。

(2)對于數(shù)學(xué),我們必須掌握四門課程:

  • 高等數(shù)學(xué)
  • 離散數(shù)學(xué)
  • 線性代數(shù)
  • 概率論與數(shù)理統(tǒng)計

在掌握了編程語言,用編程語言寫了一些應(yīng)用程序之后,又學(xué)習(xí)了一些數(shù)學(xué)之后,你就可以進入計算機專業(yè)基礎(chǔ)課程的學(xué)習(xí)。這些課程構(gòu)成了計算機的核心課程群,我們通常把它稱為「專業(yè)基礎(chǔ)課」。專業(yè)基礎(chǔ)課有十多門,其中最重要的是四門如下(這四個課程也是考研科目):

  • 數(shù)據(jù)結(jié)構(gòu)與算法
  • 計算機組成原理
  • 操作系統(tǒng)
  • 計算機網(wǎng)絡(luò)

除此之外,計算機基礎(chǔ)課還包括:

  • 編譯原理
  • 面向?qū)ο蟮姆椒?/li>
  • 關(guān)系數(shù)據(jù)庫的理論
  • 軟件工程等等

這次我們就只針對那四個考研科目進行介紹。

這里我要強調(diào)的是:計算機專業(yè)基礎(chǔ)課程的學(xué)習(xí),和我們在工作中實用技術(shù)的學(xué)習(xí),這兩者不是相互矛盾的,而是相互促進的。比如計算機網(wǎng)絡(luò)課程,對web開發(fā)框架有幫助;反過來,如果寫了web框架,就能更深刻的理解計算機網(wǎng)絡(luò)這門課程。

在完成專業(yè)基礎(chǔ)課和實用技術(shù)的學(xué)習(xí)之后,就進入了一個新的自學(xué)階段。這個階段可以針對你感興趣的特定領(lǐng)域深入鉆研了。比如你對人工智能感興趣,那可以學(xué)一下機器學(xué)習(xí)、spark等等。這個時候的學(xué)習(xí)目的非常明確,即:培養(yǎng)特定領(lǐng)域的專業(yè)技能,讓你成為特定領(lǐng)域的專家。

image
image

自學(xué)效果的好壞高度依賴于個人的學(xué)習(xí)動機,以及自學(xué)過程中采用的方式、方法、策略。要想取得好的學(xué)習(xí)效果,了解一些學(xué)習(xí)理論是非常重要的,這里推薦一本書叫《學(xué)習(xí)之道》。書中介紹了很多學(xué)習(xí)有關(guān)的新成果。

image
image

選書和看書的基本原則

當(dāng)某人告訴你,某書是某領(lǐng)域最好的書籍,不要盲目相信,要經(jīng)過自己親自試驗再下結(jié)論。通常情況下,一本別人眼中的好書,可能的確質(zhì)量很高,但如果閱讀它超過了你的能力,那對于你而言,它就不是一本好書,因為你不具備所需要的背景知識,和相關(guān)的技術(shù)經(jīng)驗。

第二個原則是,選擇那些你已經(jīng)具備讀懂前提的書。

image

閱讀科普書籍的最主要目的是:了解特定領(lǐng)域的背景知識、明了這個領(lǐng)域的基本數(shù)據(jù)和概念,建立全局觀。

image

讀者:多讀幾遍真的很重要,我在看js的時候,把廖雪峰的教程看了好多遍,敲了好多遍。

image

上圖是計算機網(wǎng)絡(luò)的經(jīng)典教材。我們拿著兩本書來舉例。
比如《計算機網(wǎng)絡(luò):系統(tǒng)方法》這本書,作者在前言中就很明確地說明,它是針對網(wǎng)絡(luò)設(shè)計者寫的。注意是網(wǎng)絡(luò)設(shè)計者,不是網(wǎng)絡(luò)應(yīng)用開發(fā)者。這本書講的是計算機網(wǎng)絡(luò)的基本原理。介紹的是最初的設(shè)計者遇到了什么問題。

讀第一遍時,第一章一定要認(rèn)真閱讀,包含了很多的術(shù)語。

讀第二遍時,每章的開頭很重要。

比如《計算機網(wǎng)絡(luò):系統(tǒng)方法》這本書,里面講到的網(wǎng)絡(luò)安全這一章,如果你當(dāng)前還沒有涉及到這一塊兒,這一遍就可以跳過。但是有關(guān)PCP協(xié)議的內(nèi)容,在實際開發(fā)中用的很多,就很重要,這些內(nèi)容分布于書中的各個章節(jié),這就需要你把它們抽取出來。

image

比如上面的這本《離散數(shù)學(xué)》,一頁紙就要啃兩個小時。

image

與書籍相比,視頻的優(yōu)點是很獨特的,特別適合展示動的過程,比如程序的調(diào)試過程、算法的運行步驟等。

image

有很多編程工作屬于工程領(lǐng)域,按部就班,有很多現(xiàn)成的套路,創(chuàng)造性并不強,數(shù)學(xué)在這些項目中并非成敗的關(guān)鍵因素。項目中,確實有算法在底層做支撐,但這算法往往都有現(xiàn)成的底層庫。你只需要知道如何調(diào)用就行,并不需要理解算法的細(xì)節(jié),并需要具備多深的數(shù)學(xué)功底。對于初級程序員來說,主要干的是搬磚的活兒,特別是CRUD類的代碼。

image
image

同濟的《高等數(shù)學(xué)》教材還是不錯的,但是國內(nèi)數(shù)學(xué)教材有個最大的問題就是:往往只講法則、定理、證明、習(xí)題,不講數(shù)學(xué)的發(fā)展歷史、具體應(yīng)用、也不強調(diào)解決特定問題的思路,不適合自學(xué)。

image

普林斯頓的《微積分讀本》,最大的特點是,講的很細(xì),采用內(nèi)心獨白的方式介紹微積分,有高中基礎(chǔ)即可。內(nèi)容雖然沒有同濟的多和深,但學(xué)習(xí)計算機來說,也基本夠用了。

讀者:這里也給大家推薦本冷門數(shù)學(xué)書,名字叫考研數(shù)學(xué)三部曲,銷量很少。因為這本書優(yōu)點是由淺入深,缺點是又臭又長,適合文科生看。

image
image

《計算機科學(xué)概論》起到的是建立全局觀的作用。

image

讀者:想從Python 入門的同學(xué),也推薦Headfirst Python。整個headfirst 系列都推薦。

讀者:headfirst真的很不錯,同推薦,特別設(shè)計模式。

image
image

《深入理解計算機系統(tǒng)》這本書,對于形成計算機系統(tǒng)的全局觀非常有用。這本書簡稱為CSAPP,很有名。這本是最大的特點是從使用者,而不是從設(shè)計者的角度來組織材料的,難度適中,文字流暢。但這本書不適合零基礎(chǔ)入門,你至少應(yīng)該首先學(xué)過計算機導(dǎo)論,并且有一定的C語言開發(fā)經(jīng)驗,會用Linux。

讀者:CSAPP看的時候要動C語言并且要看計算機專業(yè)導(dǎo)論,不然看不懂的。

考研的四門課

下面介紹計算機專業(yè)的幾門骨干和和核心課程。同時也是考研的四門課程:數(shù)據(jù)結(jié)構(gòu)與算法、計算機網(wǎng)絡(luò)、操作系統(tǒng)、計算機組成原理。

(1)數(shù)據(jù)結(jié)構(gòu):

image

上圖中,數(shù)據(jù)結(jié)構(gòu)與算法包括了兩部分內(nèi)容。

現(xiàn)在的大數(shù)據(jù)和人工智能,完全就是算法。

image

上圖中,第一本書有兩個版本:java版本和C語言版本,難度適中。后兩本書,較難。

image
image

對于多數(shù)人來說,掌握算法,只需要知道算法的思想、應(yīng)用場景和優(yōu)缺點就可以。實際開發(fā)中,你要設(shè)計新算法的機會并不多,并且那些應(yīng)用很廣的算法,都已經(jīng)在框架里提供了現(xiàn)成的組件。這些組建內(nèi)部已經(jīng)實現(xiàn)了算法,你只需要知道是怎么回事,會調(diào)用就可以了。比如說加密和解密的算法。

考研和大公司面試,也不會考到復(fù)雜的算法,準(zhǔn)備前多刷幾遍即可。

(2)計算機組成原理:

image
image

計算機組成原理主要是介紹計算機由哪些部件組成的,這些部件是如何互相協(xié)作、完成處理功能、同時用來滿足各種成本和功耗指標(biāo)的。

學(xué)習(xí)這門課程之前,通常需要學(xué)習(xí)數(shù)字電路基礎(chǔ)。

學(xué)完計算機組成原理之后,再去學(xué)操作系統(tǒng)和編譯原理。

image

學(xué)習(xí)計算機組成原理之前,建議大家先看《編碼》這本書。

(3)操作系統(tǒng):

image
image

上圖中,操作系統(tǒng)的書分為兩類:教材和專著。

image

操作系統(tǒng)的教材里,數(shù)學(xué)公式不多,但它并不是說操作系統(tǒng)者這門課就很容易學(xué),學(xué)好操作系統(tǒng)的關(guān)鍵是一定要把它和軟件開發(fā)、動手實踐結(jié)合起來。

很多操作系統(tǒng)都是用C語言寫的,建議大家在學(xué)習(xí)操作系統(tǒng)之前,先學(xué)習(xí)C語言。

學(xué)習(xí)操作系統(tǒng),最重要的是明白操作系統(tǒng)的內(nèi)部機理。推薦大家實用C語言在Linux下學(xué)習(xí)。

進程和線程也是屬于操作系統(tǒng)的范疇。

讀者:補一個金老師的網(wǎng)易云課堂:http://mooc.study.163.com/u/8050019871#/c

(4)計算機網(wǎng)絡(luò)

image
image

我推薦大家實用C、java、Phthon這三種語言去編寫網(wǎng)絡(luò)應(yīng)用程序。

另外必須要學(xué)會操作系統(tǒng)。網(wǎng)路協(xié)議棧通常都是由操作系統(tǒng)來負(fù)責(zé)實現(xiàn)的,網(wǎng)絡(luò)應(yīng)用基本都是多線程的。

上圖中這里介紹了三本經(jīng)典書籍。計算機網(wǎng)絡(luò)中一個重要的特點是分層。我們會發(fā)現(xiàn)這三個經(jīng)典教材是三個視角。

  • 第一本:從上層協(xié)議介紹到下層協(xié)議。
  • 第二本:從頂向上介紹。
  • 第三本:橫切的方式,針對特定的問題(比如安全問題、性能問題)來展開介紹。
image

學(xué)習(xí)計算機網(wǎng)絡(luò)的關(guān)鍵,是明白上面這三個問題。

一旦了解了計算機網(wǎng)絡(luò)的這些基本原理,你就會發(fā)現(xiàn),理解實際開發(fā)中的各種通信協(xié)議和各種網(wǎng)絡(luò)庫,就會比較容易。

掌握好相應(yīng)的網(wǎng)路協(xié)議,是掌握上層應(yīng)用軟件開發(fā)技術(shù)的關(guān)鍵。比如,如果連http協(xié)議都沒掌握,就去寫web應(yīng)用, 好比在沙灘上蓋樓。

image
image

讀者:對于很多朋友,你提的問題,其實更多的需要從自己自身出發(fā),沒有一個完全標(biāo)準(zhǔn)的答案,再你問問題之前,自己先思考一分鐘。

其他

本次Live介紹的是如何自學(xué)計算機科學(xué)理論知識,第二場Live——“如何自學(xué)編程”:https://www.zhihu.com/lives/860490807847841792

第二場live介紹了如何訓(xùn)練編程技能。

第三場Live——“如何自學(xué)Java:入門與編程技能訓(xùn)練”:https://www.zhihu.com/lives/889495940065538048

第三場live是第二場Live所介紹之自學(xué)編程基本原則與方法的踐行篇,同時也展示了計算機科學(xué)理論學(xué)習(xí)是如何與具體的編程技術(shù)(以Java技術(shù)領(lǐng)域為例)學(xué)習(xí)以及軟件開發(fā)實踐相輔相成的。

https://www.zhihu.com/lives/860490807847841792

https://www.zhihu.com/lives/889495940065538048

2017年12月21日舉辦Live,如何高效地掌握Android開發(fā)技術(shù):https://www.zhihu.com/lives/916265051361529856

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,578評論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,701評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,691評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,974評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,694評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 56,026評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,015評論 3 450
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,193評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,719評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,442評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,668評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,151評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,846評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,255評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,592評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,394評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內(nèi)容

  • 經(jīng)常聽到有老師問以下問題:為什么學(xué)完高級語言程序設(shè)計后有些學(xué)生就不喜歡計算機專業(yè)了?為什么越來越多的學(xué)生越學(xué)越不喜...
    開點工作室閱讀 4,189評論 3 28
  • 之前看到曉曉小姐特別推薦長灘島,對這個地方不由好奇起來,好奇心使然,去百度立馬搜索,百度里的圖片美極了,有淺綠...
    Liuyunyun閱讀 366評論 0 0
  • 回老家一個多禮拜,以后這樣的機會怕是不多,還是應(yīng)該稍稍總結(jié)一下。 一 回老家在叔叔家玩了一天,看了他娶的第二個老婆...
    水田夏木閱讀 205評論 0 0
  • 當(dāng)節(jié)氣“忙種”過后,炎夏算真的來臨了。緊接著高考也來了?;ㄩ_花落,月圓月缺,荏苒間,又是一個輪回。時光如流沙,你越...
    Harvest收獲閱讀 417評論 5 14
  • 我穿著潔白的紗裙,站在臺階上,我的右手交疊在你左手掌心之上,你微笑著看向我,陪著我一步一步踏著臺階往上走。我...
    鯨魚兒閱讀 336評論 0 0