<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          后悔大學(xué)沒看到這個(gè) Github 倉庫!

          共 3247字,需瀏覽 7分鐘

           ·

          2021-12-18 05:14

          e823aeea427d172c3ab55918c2a4175d.webp

          經(jīng)常有大一的同學(xué)或者非科班轉(zhuǎn)碼的同學(xué)在后臺問我,計(jì)算機(jī)都要學(xué)哪些課程,有什么先后順序。

          有類似疑問的小伙伴,可以參考Github上「清華大學(xué)計(jì)算機(jī)系課程攻略

          c74912e5264ecbf4fc8c444a2cf6e6b0.webpimg

          里面包含了清華CS專業(yè),大一到大四的課程以及推薦書籍資源等,鏈接如下:

          https://github.com/PKUanonym/REKCARC-TSC-UHTgithub.com

          截取一些課程目錄:

          大一上:

          269cd02a0d031d6c1dc212226afda209.webp

          大一下:

          84ce5942a72f9482b1bc7ce7798584a0.webp

          大二上:

          ee7b30e90523af5841bd9ef828ce98ca.webp

          大二下:

          b032744c4e560effad4f9bdcb4e29ef2.webp

          大三,專業(yè)課明顯多起來了:

          66c70a77aa0a1226dce0921818fff16c.webp9ae9b5dbb8a74ba82e7c3031fe0f24f6.webp

          大四主要是實(shí)踐、實(shí)習(xí)、畢設(shè),課不多:

          56cba071d633478167b5f54dc2973b4f.webp

          不過說實(shí)話,這份攻略對于我們大部分同學(xué)來說都只能參考,課程量有點(diǎn)大,時(shí)間不充足的話,很難完全跟下來。

          但是我覺得這里面大三下的課程非常棒:

          • 操作系統(tǒng)
          • 計(jì)算機(jī)系統(tǒng)
          • 數(shù)值分析
          • 數(shù)字圖像
          • 存儲技術(shù)
          • 搜索引擎技術(shù)
          • 模式識別
          • 機(jī)器學(xué)習(xí)

          可以說大三下的這些課程鋪墊非常不錯(cuò),不管以后走分布式存儲、搜索引擎等基礎(chǔ)架構(gòu)方向還是機(jī)器學(xué)習(xí)等算法方向,亦或是游戲引擎、圖形處理等方向,都算是入門了。

          但是說實(shí)話,清華這份攻略好是好,就是太多了,對于時(shí)間沒有那么充裕的同學(xué),想要一個(gè)更加精簡的 List,可以參考網(wǎng)易云課堂上的計(jì)算機(jī)課程圖:

          a639c1308e3474abfaf458ea541bfd4a.webp

          我把幾門我覺得基本必學(xué)的課程用紅線框起來了,大家可以作為參考。

          另外,學(xué)習(xí)這些課程的時(shí)候,一定要多寫代碼、做一些Lab,建議把操作系統(tǒng)、計(jì)網(wǎng)、csapp這些課程 lab做完(國內(nèi)有些學(xué)校可能沒有),可以去國外找計(jì)算機(jī)四大名校的Lab。

          部分學(xué)校最大的問題就是 OS、網(wǎng)絡(luò)、數(shù)據(jù)庫等 CS 核心課程上成了文科!

          缺乏一些動手實(shí)踐 Lab,大部分都是寫實(shí)驗(yàn)報(bào)告,就是不寫代碼。

          為什么美帝在數(shù)據(jù)庫、操作系統(tǒng)、各種工業(yè)軟件工程能力如此強(qiáng)悍?

          **我覺得和他們 CS 強(qiáng)校的教育模式有關(guān),**國外,尤其是美國,很多高校 CS 教育極其注重實(shí)踐,國內(nèi)也就少數(shù)不錯(cuò)的高校有實(shí)踐教學(xué),其它都是念 PPT,課后作業(yè)就是做 Word 項(xiàng)目。。。。

          就拿 MIT 來說,6.830 Database Systems: 這是一門數(shù)據(jù)庫系統(tǒng)的一門核心課程。前半部分比較基礎(chǔ)的數(shù)據(jù)庫的知識,后半段主要在講Distributed Databases 的東西

          它們的實(shí)驗(yàn)是什么?

          是寫個(gè)小型關(guān)系型數(shù)據(jù)庫,比如 lab1實(shí)現(xiàn)數(shù)據(jù)庫基本的存儲邏輯結(jié)構(gòu),具體包括:Tuple,TupleDesc,HeapPage,HeapFile,SeqScan,BufferPool等。

          我們數(shù)據(jù)庫教什么?

          教 SQL 怎么寫,教數(shù)據(jù)庫原理(這個(gè)還算好的)

          大多數(shù)高校實(shí)驗(yàn)是什么?

          用 Java 使用 JDBC 連接 MySQL 寫個(gè)應(yīng)用。。。

          國外是如何教計(jì)算機(jī)網(wǎng)絡(luò)的?

          實(shí)現(xiàn) ?TCP 協(xié)議棧~

          比如斯坦福 CS 144,CS144 Lab Assignments - 手寫TCP - LAB4

          cb397a4b2ab91794b70eaec3e40c503a.webp

          我們是怎么學(xué)習(xí)的?

          記住 TCP 三次握手、四次揮手、記住 DNS 使用 UDP 協(xié)議....

          我們大作業(yè)是什么?

          有些是 Word 寫作業(yè)。。。有些是讓你用一下 socket api 寫個(gè)網(wǎng)絡(luò)程序。。。這是計(jì)算機(jī)網(wǎng)絡(luò)原理嗎?

          操作系統(tǒng)比較典型的是 MIT 6.828,現(xiàn)在改名了。

          直接讓你基于一個(gè) xv6 去實(shí)現(xiàn)一些模塊,比如文件系統(tǒng)、多線程。

          我們呢?

          記住進(jìn)程和線程區(qū)別、記住虛擬內(nèi)存的各種組關(guān)聯(lián)....

          當(dāng)然也有一些學(xué)校會有實(shí)驗(yàn),比如清華 ucore、哈工大 linux0.11。

          這就是為什么美國高校有很強(qiáng)的編碼能力、造輪子的能力,因?yàn)樗麄兊?CS 學(xué)生成長環(huán)境就是這樣的。

          CS 專業(yè)區(qū)別于其它專業(yè)一個(gè)很大特點(diǎn)就是:

          • 工作后的內(nèi)容是和專業(yè)所學(xué)的內(nèi)容強(qiáng)相關(guān)的。

          比如你學(xué)了數(shù)據(jù)結(jié)構(gòu)、編譯原理、操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò),如果你從事的是研發(fā)崗,那一定離不開這些知識。

          • 主要靠自學(xué)

          不管是科班還是非科班,想要快速持續(xù)的提高技術(shù)水平,就得靠自己去鉆,尤其離不開自學(xué)。

          知乎上其實(shí)很多問科班和非科班的差別在哪,其實(shí)我一直想說,你給自己充足時(shí)間去把科班的內(nèi)容學(xué)習(xí)一遍,到底還能差在哪呢?

          可能唯一差別就是少了一個(gè) 計(jì)算機(jī)學(xué)士學(xué)位。

          也有人把這種自學(xué)出家的叫做民科,當(dāng)然沒有任何的諷刺意思哈。

          那么計(jì)算機(jī)專業(yè)同學(xué)該如何自學(xué)呢?

          其實(shí)看著很多,概況起來就是(下面只涉及CS專業(yè)課):

          1. 計(jì)算機(jī)導(dǎo)論 + 一門編程入門語言
          2. 算法與數(shù)據(jù)結(jié)構(gòu)
          3. 操作系統(tǒng)
          4. 計(jì)算機(jī)網(wǎng)絡(luò)
          5. 數(shù)據(jù)庫系統(tǒng)
          6. 特定領(lǐng)域知識,如:計(jì)算機(jī)圖形學(xué)、信息安全、System方向、分布式

          學(xué)習(xí)的途徑就是:

          多看國內(nèi)外 CS 名校的一些開放課程 + 看經(jīng)典的書 + 多寫代碼!?。?/p>

          畢竟現(xiàn)在MOOC、Udemy、B站上學(xué)習(xí)的資源都是很豐富的。

          比如:[CS經(jīng)典課程][https://mp.weixin.qq.com/s/bkLpjLxqQHaBTwCiz3VwBA]

          簡單列舉幾個(gè)學(xué)科:

          一、計(jì)算機(jī)導(dǎo)論

          首先建議從計(jì)算機(jī)導(dǎo)論課程開始,推薦下面這些課程:

          • Harvard的CS50 ?CS50: Introduction to Computer Science
          • Berkeley的CS61A ?CS 61A: Structure and Interpretation of Computer Programs
          • MIT的6.001 ?mit-6.001

          二、C 語言

          隨后建議學(xué)習(xí)一門語言,可以是 C、Java、或 Python,我推薦 C語言(當(dāng)然,也可以是Python!這不是重點(diǎn),重點(diǎn)是要多去寫,入門時(shí)提高對編程的興趣),提到C語言,我這里推薦國內(nèi)浙大翁凱老師的課,看過的都說好~

          分為兩門,第一門是面向高考結(jié)束想提前自學(xué)一點(diǎn)編程的,叫大學(xué)先修課:

          • C語言程序設(shè)計(jì)CAP-大學(xué)先修課

          雖然叫先修課,但是覆蓋了C語言的主要知識點(diǎn),也適合大一新生~

          第二門是

          • C語言程序設(shè)計(jì)進(jìn)階

          會帶你用C語言完成一些有趣的項(xiàng)目,比如一些圖形界面小游戲,先修課學(xué)習(xí) C 語言語法基礎(chǔ),進(jìn)階課帶你項(xiàng)目實(shí)操,搭配使用,你就是同學(xué)中的大神!

          有了語言基礎(chǔ)之后建議學(xué)數(shù)據(jù)結(jié)構(gòu)與算法:

          三、數(shù)據(jù)結(jié)構(gòu)推薦:

          • Stanford CS106系列
          • CS106A: Programming Methodologies

          四、算法推薦:

          • 6.046(進(jìn)階) ?Design and Analysis of Algorithms - MIT
          • MIT的6.006 ?Introduction to Algorithms
          • Coursera上的Princeton課程
          • Berkeley的CS61A 和 CS61B

          五、操作系統(tǒng)推薦:

          • CMU的15-213
          • Berkeley的CS162,

          這兩個(gè)都是有視頻有l(wèi)ab的好課

          還有一個(gè)非常經(jīng)典的 MIT 6.828,附帶一個(gè)xv6 lab

          課程:6.828: Operating System Engineering

          六、 組成原理、體系結(jié)構(gòu):

          1. MIT的6.004,
          2. CMU的15-213
          3. Berkeley的CS61C

          七、計(jì)算機(jī)網(wǎng)絡(luò):

          • Stanford的CS144,lab 很有意思

          新手快速自學(xué)的方法

          一個(gè)原則,來自翁凱老師:

          學(xué)計(jì)算機(jī)一定要有一個(gè)非常強(qiáng)大的心理狀態(tài),計(jì)算機(jī)的所有東西都是人做出來的,別人能想的出來,我也一定能想得出來,在計(jì)算機(jī)的世界里沒有任何的黑魔法,所有的東西只不過是我現(xiàn)在不知道而已,總有一天我會把所有的細(xì)節(jié)、所有的內(nèi)部的東西全搞明白的

          這里,也有一個(gè)問題,確實(shí)大部分的東西,只要你一直深挖下去,可能都能搞明白。

          但是要注意時(shí)間成本,軟件行業(yè)已經(jīng)不是一般的復(fù)雜和巨大,任何一個(gè)領(lǐng)域的知識的復(fù)雜性都足夠耗費(fèi)掉我們一生的時(shí)間,所以一定要抓住主線,對于技術(shù)和知識,要學(xué)通用的、流行的,可以嘗試面向面試學(xué)習(xí)。

          “打破砂鍋問到底”式的學(xué)習(xí)雖然精神可敬,但效率并不劃算。

          要在適當(dāng)?shù)膶哟紊铣橄蟪鲆粚樱⑶艺J(rèn)可這一層提供的接口,不去深究內(nèi)部實(shí)現(xiàn),了解原理即可,不必深究內(nèi)部實(shí)現(xiàn)。

          比如學(xué)習(xí) HTTP,那么就先認(rèn)可 TCP 提供的穩(wěn)定可靠傳輸,而不繼續(xù)深挖 TCP 的內(nèi)容。

          新手,一定不要一直看書,保持看書的時(shí)間不超過 50%。

          1. 看書學(xué)習(xí)基本的理論
          2. 編程練習(xí)
          3. 有了新領(lǐng)悟,繼續(xù)看書

          反復(fù)的循環(huán)。

          瀏覽 59
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费1级片骚逼 | 黄色免费高清视频 | 久久精品国产亚洲AV麻豆 | 日本AAAA片毛片免费观蜜桃 | 亚洲日本Ⅴa中文字幕无码 |