自我教育科學科學
一個完全免費的課程,以學習計算機科學課程
計算機科學簡介(1-2週)
- 計算機科學概述
- 編程簡介
- 算法和數據結構的概述
- 基本的計算機組織和架構
資源:
- 哈佛大學的計算機科學簡介
- Codecademy的學習如何編碼課程
編程基礎(4-6週)
- Python編程語言簡介
- 控制流語句
- 數據類型和結構
- 功能和模塊
- 輸入和輸出操作
- 調試和錯誤處理
- 面向對象的編程概念
資源:
- 密歇根大學在Coursera上為所有人提供Python
- 通過Zed Shaw學習Python
數據結構和算法(12-16週)
- 基本數據結構(數組,鏈接列表,堆棧,隊列)
- 高級數據結構(樹,圖形,哈希表)
- 算法分析和設計
- 搜索和分類算法
- 遞迴
- 動態編程
- 貪婪算法
- 劃分和征服算法
資源:
- 加州大學聖地亞哥分校的數據結構和算法專業化
- 麻省理工學院算法簡介
計算機架構和系統(8-12週)
- 計算機硬件和軟件的概述
- 作業系統
- 內存管理
- 輸入/輸出系統
- 計算機網絡
- 分佈式系統
資源:
- 普林斯頓大學的計算機架構
- 操作系統:Remzi H. Arpaci-Dusseau和Andrea C. Arpaci-Dusseau的三個簡單作品
數據庫系統(8-12週)
- 數據庫簡介
- 關係數據庫系統(SQL)
- 數據庫設計和歸一化
- 查詢和操縱數據
- 數據庫管理
資源:
- 斯坦福大學關於Coursera的數據庫簡介
- SQLBolt(在線互動SQL教程)
網絡開發(8-12週)
- 前端開發(HTML,CSS,JavaScript)
- 後端開發(網絡框架,服務器端編程)
- 數據庫集成(SQL,ORM)
- 安全性和身份驗證
資源:
- ODIN項目(免費的全棧Web開發課程)
- FreeCodeCamp(免費網絡開發課程)
軟件工程(8-12週)
- 軟件開發生命週期
- 軟件項目管理
- 需求工程
- 測試和質量保證
- 軟件維護和進化
資源:
- 科羅拉多大學博爾德大學的軟件工程必需品
- 弗雷德里克·布魯克斯(Frederick P. Brooks Jr.)
人工智能和機器學習
- 人工智能和機器學習概述
- 監督學習算法(線性回歸,邏輯回歸,決策樹,支持向量機,K-Nearest鄰居,天真的貝葉斯)(4-6週)
- 無監督的學習算法(聚類,降低維度)(4-6週)
- 強化學習
- 神經網絡和深度學習(4-6週)
- 自然語言處理
- 計算機視覺
資源:
- Andrew Ng在Coursera上的機器學習
- Yoshua Bengio,Ian Goodfellow和Aaron Courville的深度學習
計算機圖形和可視化(8-12週)
- 圖形管道
- 幾何變換
- 2D和3D圖形原始圖
- 渲染技術(射線追踪,柵格化)
- 動畫和模擬
- 可視化技術
資源:
- 東京大學的計算機圖形學
- Tomas Akenine-Möller,Eric Haines和Naty Hoffman的實時渲染
人類計算機相互作用(8-12週)
- 用戶界面設計原理
- 以用戶為中心的設計過程
- 可用性測試和評估
- 互動設計
- 信息可視化
- 可訪問性
資源:
- 加利福尼亞大學聖地亞哥分校在Coursera上的人力計算機互動
- 不要讓我想到史蒂夫·克魯格
網絡安全(8-12週)
- 網絡安全
- 密碼學
- 身份驗證和訪問控制
- 惡意軟件分析和檢測
- 安全風險評估和管理
資源:
- 紐約大學Tandon工程學院的網絡安全介紹
- 羅斯·J·安德森(Ross J. Anderson)的安全工程
軟件開發工具(4-6週)
- 版本控制系統(GIT)
- 集成開發環境(IDE)
- 調試和分析工具
- 建立自動化和連續集成(Jenkins)
資源:
- github的git手冊
- Eclipse IDE教程由Vogella
計算機科學數學(8-12週)
資源:
- 馬薩諸塞州技術學院的計算機科學數學
- 吉爾伯特·斯特朗(Gilbert Strang)的線性代數
計算中的道德與社會(8-12週)
- 計算中的道德問題
- 計算的社會和政治含義
- 隱私和安全問題
- 知識產權和版權
- 計算的全球影響
資源:
- 哈佛大學對EDX的計算與社會
- 代碼:矽谷和瑪格麗特·奧馬拉(Margaret O'Mara)的美國重建
希望這對所有讀者都會有益,因為它對我也是有益的。請記住,完成這些課程的所有估計時間都是基於學習期間的全職工作。