2016年6月24日 星期五

Android BSP RD新人的10個FAQ

最近剛好是一個案子的尾聲...
突發奇想地,想整理一下之前因為發文章在ptt上而不少人寄信問我的一些問題

姑且就整理成10個FAQ吧~!
如果是已經準備要進去,或著是剛進去成為BSP RD的新人們
希望以下的這些問與答,能夠多少幫助你們~
現在就來看個問題大綱~

[1] 如果去BSP部門會不會有很大的門檻要克服?所需要的domain knowledge是什麼?
[2] BSP具體上到底是在做什麼?
[3] IC Design House薪水比較高,為何我要到薪水較低的系統廠?
[4] 所以說薪水大概是多少...?
[5] 大家都說BSP是打雜的,那我能夠學到什麼?
[6] 工時長不長啊?
[7] 被取代性高嗎?
[8] 有機會可以出差嗎?
[9] (離職)之後的發展性好不好?
[10] 我該保持的心態是什麼?

對了,BSP是"Board Support Package"的意思喔!
隨著時間越來越久,越能體會它字面上的意思了
就是能夠(suuport)讓某個機台(board)開機的一包(package)原始碼



想當然...
其實問題沒有多到有10個...
有些是我自己有感而發自問自答的XD
好拉,這不是重點,就來回答看看以下的問題吧!

[1] 如果去BSP部門會不會有很大的門檻要克服?所需要的domain knowledge是什麼?
這算是大家最常問的問題,大概要看甚麼書先惡補一下呢...之類的
在我身邊的同事們,大學研究所都是EE/CS背景
以程式語言來說,基本上只要會C我覺得應該就OK了
然後,如果能夠多了解一些作業系統(Operating System)的觀念,我覺得會有加分

另外如果對Linux跟git使用熟練的話,也是有加分,
但就算完全不會也可以進去再學,像我就是這樣XD

[2] BSP具體上到底是在做什麼?
一個產品,主要可以分作CPU以及各個component這兩大部分

CPU廠商有像是美商Qualcomm,台灣的MTK,大陸的海思,韓國的三星...etc
各個component,例如像是camera,display panel,touch panel, USB,wifi,audio..etc

每個component又有多個廠商,例如display面板有台灣的友達,日本的JDI..etc

以上只是前言介紹..
簡單來說,BSP指的就是一包特定的程式碼,
而這包程式碼可以讓CPU廠商在搭配某個特定CPU的「公板」上開機。

那一般像是ASUS,HTC這樣的系統廠生產的手機或平板
即便用的是同一顆CPU型號(如Qualcomm的MSM8996)
其他的component也一定會不一樣
像是camera如果公板用的是A廠商,公司產品用的是B廠商
那BSP RD做的工作之一,就是將差異性做個feature porting (移植)的動作
使得這樣的軟體改動,也讓B廠商的camera能夠在同一顆CPU上面使用。

剛有提到工作"之一",那是因為不只是做feature porting,能夠動就好了
之後還必須要兼顧到穩定性的問題...
所以常常做些壓力測試,逼出bug也是BSP RD常需要做的事情。

因此,在部門裡面,大部分都是by component去分工作內容的
有的人負責camera
有的人負責display panel
也有的人負責eMMC

除了負責component的人之外
以我的部門來說,還有另外一個team,叫做system team。
主要是負責開機相關(bootloader)、電源管理相關(power management)、安全性相關(security)這些比較難以用component來分的function

好吧,有點講太多了...XD
總之,一句話搞定的話就是:
"透過軟體上的改動,使得產品能夠正常且穩定的使用,而這樣的產品是跟公板有差異的。"
-->這就是BSP RD要做的事情

如果還是不太懂的話,可參考在下過去寫過的一篇文章:
http://donotfeelup.blogspot.tw/2013/04/a-good-choice-android-bsp-team.html


[3] IC Design House薪水比較高,為何我要到薪水較低的系統廠?
其實我自己本身也只待過系統廠..
目前的感覺是,兩者生態差蠻多的

直接講結論,目前覺得有趣的地方是:
在系統廠裡面是直接做出一個產品出來,例如像是手機或平板
是可以直接用的東西,有看到一個東西從無到有產生,然後賣到世界上各個人的手中,我覺得還蠻有成就感的...XD

系統廠之於IC廠的關係,就是客人之於老闆的關係。
一個好的老闆,通常應該要有好的售後服務。
而這樣的售後服務,就是IC廠RD在做的事情
系統廠產品有什麼bug無法解時,通常就會request IC廠幫忙看

當然IC廠不是只有在幫忙客戶解issue而已,也是還有自己研發產品的部分
但我只是說明,看到一個產品從無到有的產生,是自己願意待在系統廠的原因之一。

[4] 所以說薪水大概是多少...?
這大概是最多人關切的部分了...
在華碩,以台清交成碩士EE/CS畢業的人來說,新鮮人的話,只能說三年內年薪幾乎都會破百吧 只要表現正常的話
就這樣了 我不能再多說了XD

[5] 大家都說BSP是打雜的,那我能夠學到什麼?
一言以蔽之,我覺得是「整合」的能力。
BSP RD,是個蠻特殊的存在,上有APP軟體team,下有EE硬體team。
假設以camera這個function來說的話,可能有些訊號之類的,需要請EE幫忙量,硬體線路的部分也需要跟EE一起討論。
好了,現在相機能動了,上層APP team可能需要加一些feature,例如像是人臉辨識,微笑拍照,美肌等等的功能,也是需要跟BSP team一起cowork。

當然,真的有時候會覺得很雜很煩。
所以磨練自己的耐性,也算是連帶的一種成果吧..

最後,特別提一下關於coding的部分。
BSP首重改程式,幾乎不太原創寫程式 (coding控慎入..)
不過這樣不代表不常看程式,反之,當然必須先看懂別人寫的程式,才能夠改得動啊
所以培養出trace code的能力,也是BSP所必須具備的部分。

[6] 工時長不長啊?
我只能這樣說...
"Depending on what kind of function you will own"
以及各部門的風氣之類的 (雖然我個人不喜歡有所謂的"風氣",沒事了就閃才對啊。)

就跟公車每天有離峰跟尖峰時間一樣
一個產品的週期裡面,一定有比較忙的時候,跟比較不忙的時候
這些都是自己可以去拿捏的

一個原則就是,沒事的時候多去study,trace code
這樣有事的時候,處理事情起來就會比較快,工時自然就會短

不過有些時候真的還是會做不完,這樣的情況就另當別論了...
也許可以適時地跟leader反應,盡量不要忍氣吞聲。

[7] 被取代性高嗎?
不高,因為擁有這樣同時跟軟體還有硬體部門cowork的機會不是太多
所以有這樣實戰經驗的RD,我覺得是蠻可貴的。
必須要有自信

[8] 有機會可以出差嗎?
當然有,不過有不小的機會是往大陸工廠跑。
除非剛好有跟Google合作到,也許有機會可以到美國出差...
或著是說某個issue一定要你飛到國外跟當地的vendor cowork,也許也是個機會。

[9] (離職)之後的發展性好不好?
雖然我還沒離職..
但就身邊已離職的同事來說
有去其他家系統廠的(我有位學長的經歷是ASUS->HTC->Samsung...)
有去IC design house的 (我覺得這佔蠻多數的,畢竟BSP比較算是學廣,到了IC廠可以繼續選擇自己喜歡的領域學精)
更有去Google的 (我的強者前輩同事...)

這部分我覺得修行在個人,凡走過必留下痕跡,經驗的累積真的會影響到未來!!

[10] 我該保持的心態是什麼?
這條是我額外加的,也是最想特別提的部分..

有兩句話分別從兩位不同的前輩口中說出:
"正面思考,不要常抱怨"
"勇敢去面對問題,即使逃避了,issue還是在那邊,依舊解決不了"

這兩句話,其實蠻有連帶關係的
我遇過一些人,可能會比較負面思考,然後常抱怨,所以遇到問題只要解不了,有時候常常就逃避了

其實你不會是只有一個人
遇到問題時,應該會有人可以一起討論
(當然不是指完全的伸手牌,自己必須先去試著理解問題)
重點其實就是要讓自己保持著有"next action"的決心以及狀態
不然問題停在那裡,它不會乖乖變成解答給你看啊

所以,我覺得如果要做的長久的話 (也許不僅僅限於BSP RD..)
至少要保持樂觀,正面積極的態度
培養良好的人際關係(這樣跟大家討論也比較有動力吧..!?)
給自己去追問題的動力,而不是常常處於被動的那一方

最後,呼籲新人們要以早下班為目標
不是說只有早下班,而工作就擺爛了。
而是早點把事情做完,沒事的話就早點走
這樣也是對地球環境的一種維護 (一直開空調很不環保阿...)

裝忙是現在科技業很可憐的一種現象
只有你我他互相提醒,實際去執行沒事就早下班的行動,才能改善外界對於科技業"很忙"的刻板印象!


以上,就是我給新人的一些建議,也是常見問題之中,以在下的角度之下的一些解答...
希望能對讀者有幫助到!

6 則留言:

  1. V哥也太正面!!
    看得我痛哭流涕...QQ

    回覆刪除
  2. 推推
    3F同事路過,最近才知道原來V大在7F~XDD

    回覆刪除
  3. 有BSP方面的需求,不知能否私下跟您請教?

    回覆刪除
  4. hi 可以的
    不好意思 有點太慢看到..

    回覆刪除
  5. 版大好, 您講的下班早或晚, 的確是和 "風氣" 有關係,
    可能小弟待的地方, 不論是晶片廠或某 OEM, 某 ODM (貴司的兄弟)......etc,
    下班有點戰戰兢兢, 看到一個眼神不對, 明天就有底了,
    Ex. 怎麼不留下來看書呢 ? 東西弄完囉, 我這邊還有......etc,
    熟一點的同事也會故意 ㄎㄨㄟ 一下(沒有惡意)
    有一些真的沒 case 的, 麻煩不要 ㄌㄨ 著滑鼠對螢幕發呆, 該走就走吧 !
    倒是希望有一天, 這個不良風氣消失了, but 從 "頭" 才有機會啊~

    p.s. 後來待過傳產 (非相關上述工作), 可能會稍微正常一點 (最多, 多個 5 ~ 10分也還好...)
    也絕對沒有 "加班費" 這回事, 能順利下班就不錯了

    回覆刪除