Re: [請益] 韌體工程師如何轉純軟

作者: maurlice (飛進我的天空)   2018-05-22 22:27:35
我第一份工作是做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 證照或者類似東西可以稍微提高"獲得面試門票"的機會呢?
: 謝謝
作者: x246libra (楓)   2018-05-22 22:55:00
推 程式邏輯沒錯,但結果就是不對,又或者..沒結果厭煩硬體方面的問題
作者: popcool (我不懂)   2018-05-23 02:10:00
沒錯,我就是肚爛明明邏輯沒錯演算沒錯結果干擾造成答案錯的這種鳥事,才直接降價轉純軟
作者: cha122977 (CHA)   2018-05-23 03:07:00
厭倦硬體方面的問題+1 解一個bug開關機好幾次都在等
作者: yamakazi (大安吳彥祖)   2018-05-23 08:32:00
在做IMU哦 kalman filter上網找code就好 不用自己寫一階互補很弱 不要用https://youtu.be/U_dCb2uzNtg這我做的六軸demo 用的是madgwick演算法 網路上有code比kalman簡單gyro的drift記得要先cal掉
作者: maurlice (飛進我的天空)   2018-05-23 08:39:00
其實我已經搞定了,只是我想學習用到的數學。一階互補濾波雖然效果差強人意,但是有成本考量的時候他還頗好用的。還是很謝謝大大的分享
作者: yamakazi (大安吳彥祖)   2018-05-23 09:04:00
恩恩 成本的確是個問題 我這是nordic52832 如果用8051單晶片可能就跑不動我沒記錯的話Madgwick只算四元數 比起kalman的矩陣運算運算量少很多
作者: maurlice (飛進我的天空)   2018-05-23 09:25:00
平衡車只用一階互補濾波,再用gx、ay、az算角度運算量超省。但在細微處的效果超差。4軸機就一定不能用一階互補了。
作者: pttworld (批踢踢世界)   2018-05-23 10:25:00
用作業系統相對位置區分
作者: ohmypig (E.Y Bagels)   2018-05-23 10:35:00
推,因為訊號不好超煩
作者: splasky (splasky)   2018-05-23 11:13:00
韌體常常會有很詭異的bug
作者: chris1281 (無言的美德)   2018-05-23 12:27:00
哈哈,說的真好,韌體真的常遇到鬼打牆的事情
作者: ykjiang (York)   2018-05-23 13:01:00
而且訊號太弱的話,有儀器可能也量不到你預期的
作者: superpai (超級白)   2018-05-23 14:34:00
聽起來寫韌體跟寫CSS很像呢
作者: littlebau (小寶)   2018-05-24 22:10:00
聽起來很厲害
作者: hotrain13 (最幸運的人!!)   2018-05-26 08:41:00
韌體就是要處理軟體bug又要排除硬體上的bug
作者: cobrasgo (人魚線變成鮪魚線,超帥)   2018-05-26 20:30:00
叫新鮮人當FAE的九成五是爛公司

Links booklink

Contact Us: admin [ a t ] ucptt.com