Re: [請益] 韌體轉職能怎麼轉?
其實,我就是從硬體(電路)設計進入韌體撰寫,然後兼職撰寫應用軟體跟伺服器
服務的工程師。
你真的要說兩者的差別(我的感受):
撰寫韌體就像居住在山裡的野人,自由自在愛怎麼搞就怎麼搞。唯獨就是你要對
自然(硬體)常識豐富,完全理解硬體會幹些什麼然後操控自如。反正functionable
就好。
而在作業系統下撰寫軟體就好比去公司上班,做是要照公司的規矩,然後調用周
邊要跟同事協調綁手綁腳但是錢不見得多但是做什麼都就只要負責眼前的一個兩
個步驟就好。做多了會得罪人(出BUG),做少了會被監督(這個程式XXXX無效,請
聯絡OOOO)
其實,軟體、韌體的區別並不大。我以前是寫POS系統的(不是現在的PC POS,是
真的收銀機連接後台電腦那種POS)收銀機就是跑韌體的,他依樣能跑各種奇怪的
促銷跟商品組合,而且沒有MYSQL可以呼叫,甚至連SQLITE也沒有。不要說WINDOWS
連DOS都沒有,裡面就是我們自己寫的memoryDB跟簡單的TASK maneger。在PC POS
普及前,收銀機也使用了十幾二十年以上。你能說PC的軟體偶比收銀機偉大嗎?
然後,連線到後台。當時的後台一般分成三類: PCLAN+DOS ,XENIX,MINI(NEC
ALTOS,IBM AIX,IBM SYSTEM 39) 我當時很喜歡把功能做在收銀機上,後台只是
單純用來作歷史資料以及商品建檔維護。因為在收銀機上我們想做什麼功能都不
用去閱讀煩人的作業系統開發手冊,因為收銀機上什麼都是我們自己搞的,要做
任何資料串聯或演算也隨便我們怎麼偷吃步。但是在作業系統上就很多規矩了,
AIX跟XENIX要遵守POSXI,ALTOS跟SYSTEM39則是有他的一堆奇怪RULE要遵守。寫
起來真的很不自由,不過DOS就可愛多了,要她怎麼來他就怎麼來。然後MS PRESS
還出了一系列Microsoft un-doucment的書,到處教人家怎麼走後門XDD 可惜,DOS
實在有點給他弱小;只能單工,還沒有資源管理,一做起IO一堆TSR搶成一團。
會覺得撰寫韌體很無味,我猜大概是修改撰寫BIOS或EFI這類的PC(包含ARM或MIPS
的BOOT LOADER跟INIT POST)居多吧! 這類的韌體其實沒什麼好寫的,主要只是要
弄懂你家硬體挑選的晶片,然後把init post填正確,就這樣而已。甚至有些大廠
的韌體還可以擺爛;打電話叫供應商的FAE來搞定,自己只要撿現成就好了。
如果是這種的韌體RD,那千萬別覺得轉職撰寫軟體會比較好,因為你的工作對應
收入真的是天堂了。因為你真的要轉職你的KNOWHOW會完全歸零,然後也沒有FAE
可以操。
然後,如果你是以撰寫單晶片為主的韌體RD,你想轉職。你會需要遵從作業系統
與api的無效虛功的耐性先,因為api跟os為了統合各種需求與撰寫風格,所以她
的格式與呼叫方法通常可比司馬遷的「臨淄女子,彈弦,跕纏」的跕纏,你要先
克服這個閱讀障礙。然後再來你要花點時間去學點人因工程與美編技巧,因為所
謂的軟體(終端機軟體或電腦軟體)絕大部分的時間都是在跟人類裝可愛、Cosplay
,真正應用到學問或知識的部分只有一點點;因為不管是資料的整理或演算都有
專門的引擎,你只要會呼叫跟傳遞資料即可。甚至最重要的報表也都有報表引擎
可以用,你什麼都不必太了解,你只需要客戶溝通就夠了。對了,忘了溝通技巧
也很重要。重要到就算砸十幾萬去上黑幼龍的課都值得!!
如果閣下是更進一步的小型系統韌體的撰寫者,恭喜!!您只要花時間學習人因工
程、美術、溝通技巧即可。因為那些偉大的os根本就沒比rtos難懂,而且他們的
api跟system call都遠強大於你所熟知的rtos,這中間的轉換其實文件翻一番就
能理解了,幾乎不需要什麼學習曲線。
※ 引述《csfgsj (仙人不指路)》之銘言:
: 噓 WolfLord: 自己不懂的東西最好不要亂評論,韌體沒你想的阿呆,所謂 07/22 08:36
: → WolfLord: 應用軟體也沒你想的威。有很多高速機器看起來很神奇華麗 07/22 08:38
: → WolfLord: 但是他的程式連作業系統都沒有,搞不好才64KB的ROM 07/22 08:40
: → WolfLord: 然後只是個簡單的wifi轉uart模板卻用上ARMA9加linux 07/22 08:42
: → WolfLord: 軟體豬就只會吃掉cpu跟記憶體,不管是韌體還是軟體 07/22 08:44
: 噓 WolfLord: 順便告訴你,汽車的ecu非常複雜,但他就是用128KB的rom 07/22 08:48
: → WolfLord: 這128K要能計算引擎角度,大氣變化,行車速度,燃油品質 07/22 08:49
: → WolfLord: 輪子變化,前輪角度。然後統合掌控整台汽車的機器。 07/22 08:51
: → WolfLord: 而儀錶板只要跟ecu問答案,畫畫面,然後陪人裝可愛。 07/22 08:52
: → WolfLord: 卻配備4核處理器,數G的ram數g的flash,跑linux或wince 07/22 08:54
: → WolfLord: 然後還常常當機。可是那麼複雜的ecu除非壞了,終其一生 07/22 08:55
: → WolfLord: 放在高溫的引擎室卻穩定如新忠實工作... 07/22 08:57
: → csfgsj: 我是用車廠做比喻,不是真的在講車廠 07/22 09:11
: → csfgsj: 那個ECU我知道,以前我的老Toyota就換過一顆 07/22 09:11
: → csfgsj: 二手的就要一萬塊 07/22 09:11
我說隱喻的不當不是指ecu ,而是你拿車廠來比喻軟韌體:有很多東西的韌體
其實並不比所謂的軟體簡單,甚至更複雜。而且韌體的世界裡面也是有複雜到
使用作業系統然後購買api 來呼叫的產品。
軟韌體的差別其實只是在於這些程式是燒在rom或nor flash裡面一開機就能跑
或存放在hdd或paged nand flash需要開機post才能執行而已。跟什麼客製化api
作業系統有的沒的其實都沒關係。
--
春花聞杜鵑,秋月看歸燕。人情薄似雲,風景疾如箭。
留下買花錢,趲入種桑園。茅苫三間廈,秧肥數頃田。
床邊,放一冊冷淡淵明傳;窗前,鈔幾聯清新杜甫篇。 ~WolfLord~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.246.244.114
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1437648953.A.285.html
修改錯字
※ 編輯: WolfLord (111.246.244.114), 07/23/2015 19:02:34
→
07/23 19:12, , 1F
07/23 19:12, 1F
我今年三月某客戶因為業績低落發不出顧問費,我還去幫朋友(某大LCD面板廠經銷商)
客串FAE 替國內某大廠的所謂RD寫LCMinit post code,因為那個大廠月薪十幾萬的RD
點不亮一個泛用的面板 XDD 也好,我剛好赚點零用錢。
※ 編輯: WolfLord (111.246.244.114), 07/23/2015 19:29:08
噓
07/23 19:37, , 2F
07/23 19:37, 2F
→
07/23 19:37, , 3F
07/23 19:37, 3F
噓
07/23 19:43, , 4F
07/23 19:43, 4F
→
07/23 19:43, , 5F
07/23 19:43, 5F
→
07/23 19:45, , 6F
07/23 19:45, 6F
閣下可以盡量表演無知與幼稚,但是早晨太陽仍會升起,您的表演仍然只能
博君一燦而已。
推
07/23 20:18, , 7F
07/23 20:18, 7F
推
07/23 20:27, , 8F
07/23 20:27, 8F
燒錄在ROM或NOR FLASH裡面,無法隨意修改(需要透過一定程序)的並列式(或由硬體自
動載入之序列式)唯讀記憶體。可以直接隨CPU或MCU啟動後直接執行無須再配置(Boot/
Post)的程式。稱之為韌體: EX:BIOS, Boot, EFI, Embedded MCU Inner Flash
program, Koisk-ROM, Game console program card.... etc。
→
07/23 20:27, , 9F
07/23 20:27, 9F
這倒不一定,因為有些手持裝置是有BOOT跟POST的。但有一些老闆會混在一起就是。
→
07/23 21:00, , 10F
07/23 21:00, 10F
是閣下混餚,不關業界的事
推
07/23 21:15, , 11F
07/23 21:15, 11F
噓
07/23 22:02, , 12F
07/23 22:02, 12F
韌體可以是軟體,但也不盡然就是軟體:他有可能只是一段Post code(不具程式功能
,只是把參數放進周邊讓硬體照著設定動作) 也可能是功能強大的軟體系統,也可能
是簡單的BOOT LOADER。
但現在一般通稱的軟體通常不會是韌體(但也有些是例外),因為它們通常肥大無比(
但也精美絕倫),因此需要低廉的儲存容器間接造成無法直接伴隨硬體啟動。
→
07/23 22:03, , 13F
07/23 22:03, 13F
說得真好,我欣賞閣下這句話。
不過,不知可否請教閣下,書說要從101頂跳下就會得到永恆的幸福與青春不老。
不知您跳是不跳?
→
07/23 22:12, , 14F
07/23 22:12, 14F
千萬別誤會,我很擔心閣下會跳呢,畢竟跳下去真的會青春不老還永恆幸福呢~
我又沒說書是錯的,只是.......as you know
推
07/23 22:16, , 15F
07/23 22:16, 15F
推
07/23 22:22, , 16F
07/23 22:22, 16F
推
07/24 01:16, , 17F
07/24 01:16, 17F
推
07/24 07:54, , 18F
07/24 07:54, 18F
推
07/24 08:16, , 19F
07/24 08:16, 19F
噓
07/24 09:11, , 20F
07/24 09:11, 20F
雖然從101頂樓跳下去真的可以會青春不老幸福永恆,但是自殺不能解決問題,勇敢
求救並非弱者,生命一定可以找到出路。
→
07/24 09:11, , 21F
07/24 09:11, 21F
→
07/24 12:41, , 22F
07/24 12:41, 22F
捕鼠強好像可以處理吱吱叫說
推
07/24 22:57, , 23F
07/24 22:57, 23F
謝謝 ^^;
推
07/25 03:24, , 24F
07/25 03:24, 24F
噓
07/25 10:49, , 25F
07/25 10:49, 25F
到處拉屎不是什麼值得炫耀的好習慣呢~ 尤其跑到人家客廳裡拉屎是會被告的。
推
07/26 00:03, , 26F
07/26 00:03, 26F
→
07/26 01:09, , 27F
07/26 01:09, 27F
→
07/26 01:10, , 28F
07/26 01:10, 28F
是是是是是....我修正: the compliance with the bootloader and firmware driver
of the extensible firmware Interface specification
OK?
→
07/26 01:10, , 29F
07/26 01:10, 29F
我說真的,我真的覺得照著規格表啟動晶片是非常無聊的工作(我覺得),而且我也真的
沒有否認這工作很值錢。所以我力勸這一個族群的韌體工程師千萬別幻想轉職軟體是好
選擇,畢竟這份工作物超所值。
軟體業(一般通俗軟體業)真的不是機器的世界,你面的是絕對不講理但卻是口袋裡有個
幾塊錢就跟你大呼小叫的粗鄙庸俗人類。你寫程式的目的會從單純的Functionable變成
Functionable不Functionable不重要,但是裝可愛Cosplay 非常重要,非常重要,非常
非常重要。你腦袋裡面的專業與技術在這個領用(一般通俗的軟體業)裡面本質上就是一
坨屎,一文不值。因為你的客戶只會用人的角度去看世界,他們不會管你量子是不是存
在,也不會管你CPU 有幾個STEP。他們只管他能不能用他的大腦看懂,然後用爽。兩者
皆成立他們就掏錢買單,否則不只不給錢還會到處造謠說你是豬,說你是什麼邪惡科學
怪人......etc
套句鄉民常說的: 地球很可怕的,趕快回火星去吧! XDDDD
※ 編輯: WolfLord (111.246.244.116), 07/26/2015 22:32:54
討論串 (同標題文章)