如果準備自學計算機科學與技術該怎麼開始 ?
謝邀,直接上乾貨。
如果是需要系統學習CS的話,牆裂推薦一個自學計算機科學的神~~~奇寶藏——OSSU。
而且關鍵是免費!免費!免費!(土豪忽略)
OSSU——Open Source Society(開源社會大學)的簡稱。
https://github.com/ossu/computer-science#intro-cs
OSSU課程提供免費的線上計算機科學(Computer Science)教育。它不僅可以用於對計算機感興趣的在職人員進行職業培訓,也適用於計算機專業的小夥伴進行深入系統的學習。
這裡面的課程來自哈佛大學,普林斯頓大學,麻省理工學院等等,可以稱得上是「世界上最好的課程」。下面,我們來看一看,這個寶藏大禮包里有哪些內容。
全套課程可以劃分成四個部分,包括
- 入門簡介
- 核心課程
- 進階課程
- 項目呈現。
具體而言:
- 入門簡介部分幫助我們開啟計算機科學的大門,可以在這個階段邊學邊看這個學科是否適合自己。
- 核心課程類似於計算機科學課程的前三年必修課
- 進階課程大概對應於計算機科學課程的最後一年的選修課
- 項目呈現部分是供學生驗證、鞏固和展示其所學知識的機會,同時製作好的項目還可以選擇供世界各地的同行進行評估。
下面,小管家給大家介紹一下全套課程的具體內容,其中包括:編程概論、計算機科學概論、核心程式設計、核心數學、核心系統、核心理論、核心應用、核心安全、計算機科學進階、高級編程、先進的系統、高級理論、進階應用和最終的項目呈現。
編程概論
這個部分專門為零基礎小白設計,如果你從來沒有編寫過for循環,或者不知道編程中的字元串是什麼,可以從這裡開始。
這裡有兩個課程,適用於所有人的Python(alt) 和計算基礎,任選其一皆可。
適用於所有人的Python(alt)(時長:58小時)是從介紹Python開始,並使用Web API和資料庫進行實際的編程任務。
計算基礎(時長:138小時)也是先介紹Python,然後繼續介紹計算機科學的理論知識,例如排序和遞歸。
適用於所有人的Python(alt)
https://www.coursera.org/specializations/python
計算基礎
https://www.coursera.org/specializations/computer-fundamentals
計算機科學概論這個部分是介紹計算機科學領域。這個課程的學習需要提前掌握高中代數的知識。
使用Python的計算機科學和編程簡介(alt)
https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-10
如何編碼課程以《如何設計程序》教科書為基礎。
核心程式設計
如何編碼-簡單數據
https://www.edx.org/course/how-code-simple-data-ubcx-htc1x
如何編碼-複雜數據
https://www.edx.org/course/how-code-complex-data-ubcx-htc2x
編程語言,A部分
https://www.coursera.org/learn/programming-languages
編程語言,B部分
https://www.coursera.org/learn/programming-languages-part-b
編程語言,C部分
https://www.coursera.org/learn/programming-languages-part-c
數學選修課
包括:微積分,線性代數,邏輯或概率。
微積分
微積分1A:微分https://www.edx.org/course/calculus-1a-differentiation
微積分1B:集成https://www.edx.org/course/calculus-1b-integration
微積分1C:坐標系和無限級數https://www.edx.org/course/calculus-1c-coordinate-systems-infinite-series
線性代數
線性代數的本質
https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab
線性代數-邊疆的基礎(alt)
https://www.edx.org/course/linear-algebra-foundations-to-frontiers-0
邏輯學
邏輯概論https://www.coursera.org/learn/logic-introduction
概率學
概率概論-不確定性科學
https://www.edx.org/course/introduction-probability-science-mitx-6-041x-2
核心數學
除了數學選修課外,在核心數學板塊還有離散數學相關的課程。
計算機科學數學
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015/index.htm
核心系統
計算機科學概論-CS50(alt)https://www.edx.org/course/introduction-computer-science-harvardx-cs50x#!
從第一原理構建現代計算機:從Nand到Tetris(alt)https://www.coursera.org/learn/build-a-computer
計算機網路導論
https://www.youtube.com/playlist?list=PLEAYkSg4uSQ2dr0XO_Nwa5OcdEcaaELSG
破解內核
https://www.ops-class.org/
核心理論
分而治之,排序和搜索以及隨機演算法https://www.coursera.org/learn/algorithms-divide-conquer
圖搜索,最短路徑和數據結構
https://www.coursera.org/learn/algorithms-graphs-data-structures
貪婪演算法,最小生成樹和動態規劃https://www.coursera.org/learn/algorithms-greedy
再談最短路徑,NP完全問題及其處理方法https://www.coursera.org/learn/algorithms-npcomplete
核心安全
信息安全:上下文和簡介https://www.coursera.org/learn/information-security-data
安全編碼原理
https://www.coursera.org/learn/secure-coding-principles
識別安全漏洞
https://www.coursera.org/learn/identifying-security-vulnerabilities
識別C / C ++編程中的安全漏洞https://www.coursera.org/learn/identifying-security-vulnerabilities-c-programming
利用和保護Java應用程序中的漏洞https://www.coursera.org/learn/exploiting-securing-vulnerabilities-java-applications
核心應用
關係資料庫系統
https://www.coursera.org/learn/relational-database
機器學習
https://www.coursera.org/learn/machine-learning
計算機圖形學
https://www.edx.org/course/computer-graphics-uc-san-diegox-cse167x
軟體工程:簡介
https://www.edx.org/course/software-engineering-introduction-ubcx-softeng1x
軟體開發頂峰項目
https://www.edx.org/course/software-development-capstone-project-ubcx-softengprjx
高級編程
並行編程簡介(alt)(HW)https://classroom.udacity.com/courses/cs344
編譯器(alt)
https://www.edx.org/course/compilers
軟體調試
https://www.udacity.com/course/software-debugging--cs259
軟體測試
https://www.udacity.com/course/software-testing--cs258
LAFF-正確編程
https://www.edx.org/course/laff-on-programming-for-correctness
軟體架構與設計
https://www.udacity.com/course/software-architecture-design--ud821
先進的系統
電磁學,第1部分
https://www.edx.org/course/electricity-magnetism-part-1-ricex-phys102-1x-0
電磁學,第2部分
https://www.edx.org/course/electricity-magnetism-part-2-ricex-phys102-2x-0
計算結構1:數字電路
https://www.edx.org/course/computation-structures-part-1-digital-mitx-6-004-1x-0
計算結構2:計算機架構
https://www.edx.org/course/computation-structures-2-computer-mitx-6-004-2x
計算結構3:計算機組織
https://www.edx.org/course/computation-structures-3-computer-mitx-6-004-3x-0
高級理論
計算理論(講座)
http://aduni.org/courses/theory/index.php?view=cw
計算幾何
https://www.edx.org/course/computational-geometry-tsinghuax-70240183x
形式概念分析導論
https://www.coursera.org/learn/formal-concept-analysis
博弈論
https://www.coursera.org/learn/game-theory-1
進階應用
現代機器人技術https://www.coursera.org/specializations/modernrobotics
數據挖掘
https://www.coursera.org/specializations/data-mining
大數據
https://www.coursera.org/specializations/big-data
物聯網
https://www.coursera.org/specializations/internet-of-things
雲計算
https://www.coursera.org/specializations/cloud-computing
全棧Web開發
https://www.coursera.org/specializations/full-stack
數據科學
https://www.coursera.org/specializations/jhu-data-science
Scala中的函數式編程
https://www.coursera.org/specializations/scala
遊戲設計與開發
https://www.coursera.org/specializations/game-development
最後再嘮叨一點,任何知識最終最重要的是項目展示
學習最重要的還在於是否可以運用學到的知識來解決實際的問題。
搭建真實的項目不僅可以豐富我們的簡歷,還能夠鞏固我們的所學。
內容首發公眾號: 樂學Fintech
用代碼理解分析解決金融問題
如果是科班的話就這張圖
如果不是科班的話,建議還是python吧。
嚴格按照如下順序學習
python 學variable ifelse loop function
java 學class inheritance interface abstract
c++ 學內存管理 destructor
C++的同時學演算法和數據結構
- array/linked list
- 各種排序
- stack/queue
- tree heap hashtable
- 略微了解下 graph相關 bfs dfs 最短路徑等
到此為止基本功和內功就修鍊好了
就像是獨孤九劍的氣宗
剩下就是劍宗外功了
網站前端 後端 資料庫 大數據 app開發 大型遊戲開發 3d開發 再或者是運維 自動化之類的 你隨便找個感興趣的查查資料自己就會了
按照考研408課程學習。
額,先買一台還能說的過去的電腦吧
如果只是想拓展知識面的話,推薦京東搜索「計算機科學叢書」
推薦閱讀: