Re: [請益] 非本科韌體技能樹該怎麼點

軟工

18120

小魯本科學碩,在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

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.135.0.220 (美國) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1676120416.A.D82.html
testPtt1樓開機程式好像都是C 不知道CPP能不能寫開機 02/11 21:29
ming00712樓其實想選韌體或嵌入式也是發現自己喜歡寫程式,但是非 02/11 21:30
ming00713樓本科好像也就這個方向可以轉過取,不然感覺一直讀記憶 02/11 21:30
ming00714樓體位置也是蠻單調枯燥的 02/11 21:30
MoonCode5樓好奇寫FW好玩嗎 從來沒機會玩過個覺得可惜 02/11 21:33
GoalBased6樓好人 02/11 22:37
本人7樓非本科怎麼不寫SW,就不太需要知道HW的東西 02/11 22:37
本人8樓寫軟體才比較需要資結跟演算法 02/11 22:38
本人9樓想要寫程式不一定要寫C啊,有Python了何不繼續下去 02/11 22:39
labbat10樓幹嘛限制在bash,高手都用tcsh和csh殼層做事情的 02/11 22:41
shter11樓只要能compile成組語/機械語言,沒有啥不能寫的 02/11 23:58
shter12樓現代語言都是A編譯B再編譯成C...問題是有沒有轉譯器 02/11 23:59
alex7026613樓其實你有興趣什麼都學一點也不會有什麼問題 02/12 00:14
alex7026614樓絕大部分的人都不是專點一兩項技能的 02/12 00:18
alex7026615樓我以前給人的建議都是 02/12 00:20
alex7026616樓A. 想走嵌入式,那弄塊可以跑linux的版子 02/12 00:20
alex7026617樓上面放自己編譯的web opensource service上去 02/12 00:21
alex7026618樓弄個i2c sensor接起來讀數值 02/12 00:22
alex7026619樓把數值丟在網頁上顯示 02/12 00:22
alex7026620樓bsp kernel/uboot/toolchain都可以用原廠給的 02/12 00:23
alex7026621樓但是放進去的rootfs盡量想辦法自己用busybox編進去 02/12 00:24
wulouise22樓要用C++寫OS之前你先學一下rust 02/12 00:24
alex7026623樓這樣已經很有嵌入式工程師自幹風了 XD 02/12 00:25
alex7026624樓B.想要練寫C,那就試著用C重頭寫一個簡單的http server 02/12 00:26
alex7026625樓不難但是都需要讀一點東西,也有足夠菜鳥磨練的空間 02/12 00:27
wei11526樓想學linux 感覺會更軟一點 不會像現在一堆時間都花在找硬 02/12 00:34
wei11527樓體問題上面QQ 02/12 00:34
ming007128樓好的 感恩各位前輩的指導,目前看了下來感覺我應該也會 02/12 01:43
ming007129樓想盡量避開受到硬體限制的問題,可能朝向嵌入式來做努力 02/12 01:43
ming007130樓吧。不過要是沒辦法大概也是走向韌體了,最大的目標還是 02/12 01:43