2003-03-06 21:15:33Aubergiste

Firmware工程師

話說開旅店是我的夢想,但是現在做的工作實在與之相差甚遠。雖然這麼說,我還是很喜歡現在的工作,因為就算你在發呆別人也會以為你在工作。嗯,我喜歡~

很多人常常把自己擺錯位置,只會羨慕別人擁有的優點而心生仿效,但那畢竟不是自己的專長,結果忘記自己的優點,卻儘是把自己的缺點暴露出來。所謂的明星,就是在某個領域上有傑出表現的人吧!所以既然身為一個firmware工程師,就不要想要變成文學家,努力扮演好自己的角色吧!為什麼學工程的很難成為文學家呢?試想,一個每天都在看datasheet或application note的人你要他多感性呢?

firmware工程師,顧名思義,就是介於hardware跟software的工程師,說白一點就是軟硬通吃啦!旣要了解硬體架構,也要懂得程式邏輯,利用最佳化的程式控制整個硬體,使整個硬體發揮它該有的功能又不會當機,當然不該有的功能也絕對不能出現,否則使用者會說你的程式裡面有蟲(註1)。那麼什麼樣的程式才稱得上好呢?寫得簡單寫得清楚寫得明白寫得段落分明有條不紊,寫得行雲流水一氣呵成,寫得深情款款情意綿綿,寫得如夢似真如花似玉!我的天呀!誰的程式寫得這麼好啊!啪啦!你找得到我頭給你!!

寫程式的人都喜歡在程式裡面暗藏一些玄機,正常情況下那段程式是不會被執行的,但是等到某個時間,或者經過一個特殊的步驟就可以啟動那段程式。當然那段程式可以發揮什麼樣的作用則視搭配的硬體而定了。例如說送朋友自己設計的產品,等到他生日那天會自動唱出聲日快樂歌等等。但是通常那只是想想,會去做的沒有幾人,因為大部分的人下班後就不會想再做事了。除非他在公司做,但是這種事情只可意會不可言傳,是吧!

做任何事情都會遇到瓶頸,寫程式當然也不例外。遇到解不開的問題時該怎麼辦?此時你可以有三種求救方法:
第一種 CALL OUT法:最直接的方法就是問你們的供應商,包括軟體跟硬體。請教他們這些問題如何解決。但是就像前文所說,軟體搭配硬體而設計,也許你問了很多人之後也找不出問題所在,最後你會發現原來只是因為你打瞌睡時不小心在某一行指令後面多按了一個小數點。
第二種CALL IN法:此種方法就是請你同事來幫你找問題。因為同事間對彼此的工作或多或少會有接觸,所以也比較能夠了解你的問題,又同處一個單位,所以這是比較方便的求救方法。但是小心不要太常用,否則會被人懷疑你的能力。
第三種刪去法:所謂求人不如求己!既然解不開的問題就先放著吧!先跳過艱難的再處理簡單的,以後再來看這個問題也許已經不再是個問題了。也許在你睡覺的時候也會突然靈機一現,找出了解決方法。這也是很多朋友的經驗之談喔!

很多人都說我們就像是關在象牙塔的人,每天在房間裡工作與外界沒什麼接觸。你可以想像一個每天坐在椅子上的人長什麼樣子嗎?臉色蒼白,小腹微凸,臀部略腫,時而嘴巴唸唸有辭,時而搖頭晃腦,更有時候你要小心他會突然舉起拳頭敲自己的頭,歇斯底里的狂叫。面對這樣的怪人,別人避之唯恐不及,但是奇怪的是想要跟這種人當朋友的還真不少 @.@

(待續)
註1:蟲,原名BUG。泛指在程式內引發不正常動作的指令集。