C 語言該怎麼學才好?
資工系通常用 C 語言當第一門語言,但是大一學生通常會有很多困惑?
然後學了 C 語言之後,就想說甚麼程式都用 C 來寫,結果當然是悲劇!
拿 C 語言去寫《視窗、網站、APP》,全都是拿石頭砸自己腳的感覺。
C 語言基本上最強的就是以下幾個領域
- 嵌入式系統:單晶片、沒有作業系統的系統,或者掛上嵌入式作業系統的系統。
- 系統軟體:編譯器、組譯器、虛擬機
- 作業系統:大部分作業系統都是 C 語言設計的,UNIX/Linux 特別重要
- 系統程式: Linux 系統程式/Windows 系統程式 (例如撰寫效率很好的 server 等等)
所以若要學習 C 語言,我建議按下列順序
- 先找一本基礎的 C 語言書,學會基礎的程式,包含指標也要會 (指標裡儲存的是記憶體位址,所有的指標都還原成記憶體位址去想,就會通了)
- 開始學習 Linux 系統程式設計,像是 open/read/write/dup/fork/exec/pipe/mmap/pthread/epoll/socket/ ….
- 熟練 Linux 系統程式設計後,開始學習作業系統設計 (建議選定 RISC-V 處理器)
- 電子書 – 從 RISC-V 處理器到 UNIX 作業系統
- 學習編譯器設計,例如 c4, rubi, shecc
這樣的順序,是比較能真正學好 C 語言的步驟!