Try   HackMD

Computer Science Open Roadmap

目標

從入門到專精的一張地圖,給予入門的新手,已入門的中手一個可依循的學習道路(其實也不一定要依循,大量讀就對了),並且有足夠的教材可以學習,避免學員浪費時間在零碎、鬆散甚至不正確的教材上。每個項目都設有常備助教,隨時可以針對學員提出的問題和作業進行回答和批閱

認證機制:每個項目皆有一定的驗收機制,若學員合格則給予通過證明,當學員取得某一條到路上所有項目的證明之後便可認證為具有一定就業能力的工程師。

私心覺得有機會變成一種就業媒合機制

畢竟與學員長期互動下來可以了解一個人所掌握的能力以及做事的方式,若正是某公司要找的人就可以直接洽談了。如此過程所招募的人遠比僅花費幾場面試速食認識的人來的有可信度吧?對學員來說也不需再花費力氣準備如何在面試場合表演還有 leetcode 框架,自身實力也可以比較完整的被看到,只要你盡心盡力參與課程。目前有類似概念的:The Audio Programmer 社群


需要讓學生知道某些項目學習的目的是什麼,會在哪邊被用到(可以在 road map 上用 dependency 線連接提示),例如學硬體是為了溝通和了解設計背景和原理。像我以前就對硬體不是很感興趣,我覺得數位電路偏無聊(我就只對 minecraft 電路和合成器電路有興趣),微處理機更無聊覺得他根本不應該當作必修,直到需要用到了才發覺重要性。

大學課程常見問題

  • 教材與世界嚴重脫節
    • 計算機組織教的 CPU 跟現代 CPU 架構差太多
  • 教材涵蓋不全
    • 平行程式設計太著重於演算法,但是 runtime 及相關執行時會遇到的問題可需要加深探討

Subjects

以下為科目草稿列表 (歡迎隨意加),最後應該要用 Graphiz 畫成路線圖(其實我現在覺得不需要),並連結到各科目的頁面,像是這樣:

好像不必有特定學習順序

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

太慢又沒有什麼顯著的必要







hierarchy



電腦概論

電腦概論



資料結構與演算法

資料結構與演算法



電腦概論->資料結構與演算法





物件導向程式設計

物件導向程式設計



電腦概論->物件導向程式設計





編譯器概論

編譯器概論



電腦概論->編譯器概論





計算理論

計算理論



資料結構與演算法->計算理論





密碼學

密碼學



資料結構與演算法->密碼學





作業系統

作業系統



編譯器概論->作業系統





LinuxKernel


LinuxKernel





編譯器概論->LinuxKernel





  • 普通電腦科學
    • 科普電腦概論
  • 數學:避免直接出現嚇到人,應該由會使用到的科目引用
  • 資料結構與演算法
  • 物件導向程式設計
    • 可以順便多提一些其他 paradigm
  • 網路概論
  • 網通原
  • 網程設
  • 網路管理
  • 系統管理
  • DevOps
    • 下略三千字
  • 數位電路
  • 電腦組織
  • 進階電腦組織
  • 作業系統 (OSTEP)
  • 編譯器概論
  • Linux kernel
  • 微控制器
  • 計算理論
  • 密碼學
  • 資訊安全概論
  • reverse/binary exploitation/pwn
  • 網路安全
  • 機器學習概論
  • 進階機器學習
  • 網頁設計
  • 資料庫
  • 進階網頁設計
  • 音訊處理
  • 電腦圖學
  • 多媒體
    • 遊戲引擎、動畫、VJ、音樂製作
  • Android/iOS APP 開發
  • 資工系介紹

文化

開源文化:https://hackmd.io/@sysprog/linux2021-culture
開源社群:MozTW, ArchTW, 開源社群推廣目錄
活動:SITCON, COSCUP, HITCON, MOPCON


參考/雜項

https://hackmd.io/@idoleat/HJlq3nNXQ
https://openstax.org/
https://github.com/ossu/computer-science
程式人公益教育集團
https://www.ted.com/talks/shimon_schocken_the_self_organizing_computer_course
Stanford CS Curriculum 2021 還有很多其他知名大學也都開放課程資料
https://github.com/goodjack/developer-roadmap-chinese
https://blog.v123582.tw/2021/05/17/Python-網頁爬蟲的學習地圖與策略/
https://news.ycombinator.com/item?id=27744255
https://www.youtube.com/watch?v=SzJ46YA_RaA
CMU 機器人課程
Algo&DS textbook
CS101
Free online courses from top universities
Recommanded by HN

希望可以有其他不同種類的 OpenRoadMap,例如設計類、文化、公民教育、文學
音樂類和遊戲開發類正在慢慢生產中

There are two hard things in Computer Science: One is cache invalid and another one is naming.

歷史
https://livingcomputers.org
https://windows96.net/
https://geekprank.com/
https://simone.computer/#/webdesktops
https://news.ycombinator.com/item?id=29274377

電腦概論