非專業的學生如何系統地學習一些計算機方面的知識?
直接送你無敵教程:https://github.com/ossu/computer-science
想要自學成才,打造計算機科學堅實的基礎?這是從核心知識到進階應用所必須的課程,它們都是頂級高校在 Coursera 等平臺上開放的課程,所以放心大膽地學起來吧。
計算機科學一直是近年來高考報考的熱門專業,是一門研究計算機相關規律的學科。近年來,隨著開源社區的蓬勃發展,以及人工智能對各行各業的影響,很多人希望能夠通過系統全面地學習計算機科學領域的知識。最近,在 Github 上有一個自學計算機科學的教程,總結了從零開始成為計算機大牛的學習之路。
項目地址:https://github.com/ossu/computer-science
這是什么樣的計算機科學課程
這個計算機科學課程是來自一個名為 OSSU 組織整理的課程,所有的內容都是網絡課程,基本上是免費的。課程面向的是大學本科生(計算機專業或計算機輔修),或從大學非計算機科學專業畢業的人們。當然,學習者只需要有高中數學基礎即可開始。
考慮到計算機科學本身的難度,項目作者提到,參與學習的人需要每周拿出 18 到 22 小時的時間,花大約兩年完成這項課程。
當然,有一些課程因為需要為作業項目打分而收取費用(基本上是后期高級課程),項目作者也強調說學習者可以通過申請補助或選擇性跳過的方式來自主決定。
本項目的課程主要分為兩部分,即 CS 核心知識與 CS 進階知識。CS 核心知識需要我們具備高中水平的理科知識,包括幾何、代數、簡要微積分等等。當然,如果我們還記得大學學過的高數,那么背景知識就已經非常充足了。對于 CS 進階知識,我們應該首先掌握整個 CS 的核心知識體系,從而進一步選擇想要進修的子領域。
當然,在進入核心知識體系前,我們可以通過一個課程先看看計算機科學與編程到底是什么。
CS 核心知識
掌握 CS 核心知識需要學習以下所有課程。
核心編程
核心數學
核心系統
核心理論
核心應用
CS 進階
完成 CS 各種必修課后,我們應該從進階課程中選擇一些。雖然并不是每個子領域的課程都需要學習,但我們應該特別關注某個子領域的所有課程。進階課程最終應該以某個特定領域的高級應用為結束,我們最終需要通過一個 Final Project 來實戰所學到的知識。
進階編程
進階數學
進階系統
進階理論
進階應用
這些專業課程最終要落實到機器人、數據挖掘、大數據、物聯網、云計算、全棧 web 開發、數據科學和 Scala 函數式編程等實際應用中,并且有的需要提前掌握線性代數、編程、機器學習、數據庫等相關預備課程。
完成上面這些課程,差不多我們就有最堅實的 CS 本科知識了。最后,該項目還提供了一些關于 Final Project、專項課程和社區的建議與資源,它們可以幫助我們快速融入 CS 這個大家庭,并持續提升相關知識水平。