小魯本科學碩,在IC Design House寫過幾年FW
分享自己的經驗以及一點淺見
要進這行的順序:
1. C練熟,至少要有大一計概與程設課程等級
具體目標是用C寫出八皇后、河內塔...等經典問題
這個階段主要是讓你熟悉C語言
包括基本語法、編譯與執行的方式、如何Debug
還有最重要的: 撐過去並且願意繼續寫C
如果你遇到了一堆Segmentation Fault,或是各種Compile不過
上Stack Overflow也不見得可以在五分鐘之內就找到bug的解法
你依然願意繼續找下去依然不放棄這行
那你再往下看其他步驟,否則壓力只會更大
2. 修大學部的作業系統概論
目標就是跟著修完一學期的課就對了
無論是上開放式課程或是直接去學校旁聽都好
一定要跟著交作業/Project
如果跟著寫作業的話應該會更加熟悉C
以及遇到更多坑
我預期作業應該會讓你熟悉以下幾點操作
a. 裝VM
b. Linux File System
c. Linux 內的基本Command,例如ls、cat、grep...
d. 用gcc 寫/編譯 C code
所以要記得先完成第一點熟悉C到一定程度
否則這時候寫作業會有更多問題
更加複雜更不容易找到Solution
3. 修大學部的計算機架構/計算機結構 概論
課名上可能EE/CS 會有不同,但授課範圍都大同小異
目標一樣是修完大學Level一學期的課
一樣請跟著寫作業/Project
這堂課主要是對應到原Po提到的"硬體知識"
就是熟悉CPU的Cache、Write through/Write back、TLB...等等內容
我當年在修的時候有一部分會和OS的內容重疊
所以其實可以兩堂一起修,看你時間分配
另外這堂課作業也許會需要你寫Verilog
如果有遇到的話就跟著學,以後可以自己玩FPGA
4. 準備面試
網路上應該有相關的介紹
你在修完上述兩門課之後面試會問到的東西應該都看得懂了
或至少有基礎知識,要再繼續上Google查也會更有方向
我認為一般人要能面試進這行至少要完成上面4個步驟
當然如果你有任何特權 (身份/血統/...) 就可以無視
如果有錢有閒想再更進階的話可以再進修以下幾點
1. 嵌入式系統概論
我建議可以修個大學部的課
應該可以讓你compile kernel,熟悉一下kernel module、Makefile等等
當然你要自己買個板子來玩也是ok
反正就是熟悉以後的開發環境
2. Linux
就跟著鳥哥的課
有空就加減看一下練習練習
熟悉Linux環境跟Bash Script,以後上班會很好用
祝福原Po順利找到理想工作
我個人是不想繼續寫C 就是了XD