我第一份工作是做embedded system app開發,而且還是FAE,那時候其實有很長一段
時間我對韌體以及軟體的認知是很模糊的,講白一點、搞不清楚自己是韌體或者軟體
工程師。
有FAE就有RD,然後公司的RD還分2個部門,driver&app,三個部門,都在寫code,而
且還是同一份code,明明是linux base的OS,卻是使用windows系統安裝Cygwin來
編譯產出firmware,一個bin檔,那麼多人同心協力就為了那一個bin file,更前面
則還有ic設計、SE的付出。
後來我區分韌體和軟體的方式是...寫code的時候會用到三用電錶就是韌體,完全用
不到的話,即便你會放一個device做開發,我認為依然還是軟體。
你說純軟沒有device嗎?那台電腦主機不算嗎?寫出來的軟體總歸是要有個歸宿的,
難不成純軟寫出來的東西就不用在實體機器跑嗎?呵呵。
至於怎麼轉軟體~~其實我曾經失敗過一次、成功一半一次,先說失敗那次好了、那
次是進到一家新創、超慘烈的,做得很累,即便把公司要求的功能開發出來,還是
被嫌棄對核心程式的掌握度太低(其實完全沒有掌握),也許是我不夠強,也許是剛
好小朋友出身把我搞得很累,總之"被離職後"有鬆了一口氣的感覺。
再講成功一半那次好了,因為剛好做過video streaming,對這方面有些心得,剛好
有家蠻知名的網路公司想要做streaming,所以就進去開發研究streaming,後來搞了
一支streaming service出來,弄出來後不久就離職了,因為我有其它事想做。
其實那時若是一直做下去,應該就成功轉到純軟了。
這邊先回答標題的問題,這是我自己的心得,就是你要掌握一樣類似video streaming
的東西,剛好純軟也需要,然後又比較專精一點的技能,而不是一般做純軟耳熟能詳
的node.js,php,css,android app之類的東西,那些東西一個做韌體的去搞,肯定要降
價的,而且還不一定能hold住。
韌體雖然鮮少用到聽起來很厲害的演算法、資料結構,但並不意味著它很容易。
舉例來說吧:
韌體應該會常遇到,程式邏輯沒錯,但結果就是不對,又或者...根本沒結果。
查了半天才發現,原來是訊號不夠乾淨或者有雜訊干擾了,這部份軟硬體整合的能力
是純軟無法想像,也是習慣寫純軟的人難以適應的一個門檻。
所以軟韌體有各自的難處、各自的門檻、各自的優缺點,單純從薪水上去考量其實很
不智,因為機會留給準備好的人,即便現在純軟價格真心不錯,水漲船高,但是...
你準備好了嗎?沒準備好,等你降價進去到變得很強時薪水還是現在的水準嗎?
然後韌體就沒有需求了嗎?大數據以及AI時代來臨,數據從哪兒來?除了手機外只要
是人類使用的東西都可以是數據來源,說到這兒不就又扯上IOT嗎?萬物相連大數據及
AI才有搞頭。等到大數據和AI發展到一個程度會不會又發現~~~數據從哪兒來?
還不是要把電器都加上sensor再連上網,那這些東西誰做?
前面有人提到韌體的程式相對簡單,其實也不否認這件事就是了,大致上來說的確是
這樣,但是前陣子我因為開發需要使用了氣壓計和acc以及gyr,這當中用了旋轉矩陣
、filter、以及一些融合算法,坦白說...會用不會算啊(羞愧),目前只複習了旋轉矩
陣,至於filter以及融合算法的數學還在研究中。也許是我太弱吧、我覺得這些數學
真心不容易哩,我連看都看不懂,只是參照說明去調整和使用而已,雖然效果不錯,
但還是頗心虛,那個filter最難搞,有人說根本就是一階互補濾波,但是我也用過一
階互補濾波,也推算過,怎麼看怎麼不像,反正就是還有的研究就是了。
說了一堆、是感想也是發表看法,順便騙點p幣。
謝謝收看。
※ 引述《johnlee2772 (彩虹呢?)》之銘言:
: 大家好,小弟目前兩個工作經驗,基本上都是在chip maker裡面作韌體工程師
: 用到都是語法不難,不需要高度演算的C/C++,最近萌生轉行的念頭,想要稍微往軟體方
: 面走,進則變成chip maker的software engineer,雖然也是不太純軟,但是要能夠找到
: 純軟的工作好像背景並不是那麼強大。
: 只修過兩門C語言和一堂差點被當掉的JAVA EE學生有機會跳過去純軟嗎?
: 或者有沒有甚麼coding 證照或者類似東西可以稍微提高"獲得面試門票"的機會呢?
: 謝謝