2011年3月16日 星期三

電子自學學習心得回憶(二)

這是繼電子自學學習心得回憶(一) 之後的第二篇:

這些過程都只是信手拈來,各位看官就不用再在乎細節了, 因為畢竟我所走過的過程,

所牽涉的當時時空環境與時機點的問題,都不可能拿今日產業現況同日而語的。

但是每一個階段所走的路與自己的決定卻又往往會在幾年後才會凸顯其意義的。

就簡單來說:當初我們單位一樣有四位台清交成的國防役...只有我一開始就設定走

電子技術領域,而其他的就還是專注在其他原來領域,結果,那幾年園區人才恐缺,

結果,最終大家鳥獸散之後,大家還是慢慢的走到電子公司這一方面,

只是大家一開始不同,同樣到高科技電子公司所從事的工作內容就完全不同了。

可能只是機構設計啊,或是一些比較偏機械的封裝測試領域...沒有人說哪一種比較好?!

就看每一個人對於自己的要求或想過的日子而定吧。...但是,有一點很重要的:

一開始目標要很明確,不要三心兩意的,因為畢竟在台灣一般公司上班,那怕是重視人才

的高科技業...大部分都不太會重視在職訓練的,所以大家不要以為:等我進了公司,

憑我台清交優異的本質學能,我一定可以學得比人家快...我說了:台灣公司是不會讓

您有太多從工作中學習的!...尤其譬如說:您要在封裝廠裡想學一些電子電路設計,

那是完全緣木求魚的,就像我這幾年看了許多公司與大老闆,都信誓旦旦的想做什麼?!

結果:您想做的?!公司沒這個人才,想挖角?您又沒多少事可以讓他發揮。

舉個例子說:您說:在一般汽機車廠裡,您說這麼大的公司養幾個電子工程師,

難不難?!財務上絕對不是問題,但是您在這種公司寫單晶片微處理器的程式,

您說您一年可以做幾套?!...願意去的未必是資深專業的?!~想學的,去跟誰學?!

很多東西大家看似平凡的東西,對於一些不是這個領域的人,就是難啊。

所以啦,下回萬一有公司突然很欣賞您的專業,然後您又覺得這個東西這麼簡單,

為什麼人家這麼大公司會搞不出來時,您就不要傻傻的跑去上班...結果,您會發現:

原來全公司只有您懂...您就是孤鳥一隻...因為您也不是第一個以這種方式來上班的人啊。

但話又說回來,如果您去那一種人才濟濟的公司...也不要太高興,因為那一種上市櫃公司,

大家都說一樣的技術語言,但是很不幸的是:樹大有枯枝,人多有白癡...道理都是一樣的啦。
-------
話說大家國防役畢之後,其實以學做汽機車引擎電子控制系統出身的我來說:

應該有不錯的特殊專業領域,但很不幸的就如同我前言所說的:當您只有一個人會,

這沒有什麼好高興的,因為您就是孤鳥一隻...也沒啥好發揮的~代表這個產業不需您。

應該說:根本沒有這個產業會養您的!...

所以啦,當初我知道:這個東西不能當飯吃,人還是要學會一點現實問題,

雖然當時透過別人引薦想找我去益通吳董事長那邊上班,我還是婉謝了,因為我可以

看出那一種全公司就您一個人要擠出東西的窘境...您也不要以為當您在那個位置,

您就可以呼風喚雨的找一些人來聽候差遣的,因為很簡單:您不是真正有錢的老闆。

所以我就決定去園區再歷練一番...其實,回首這個過程我是覺得蠻慶幸的。

因為我有汽機車那一種特殊的系統觀念,再到台灣電子產業所擅長的實務殺價經驗,

到現在有許多相關技術領域的東西,我都可以從多方面去考量。

所以,人家才會尊稱我一下:技術長啊!...........

當初園區IC 設計業剛啟蒙,到處求才若渴...我當然就選了一家離家近一點小公司,

我進去時,工號才前十個...我說了:不能拿今天的現況同日而語。

是不是錢多、事少、離家近?沒有,只有離家近而已,一開始的薪水比我國防役的

薪水還低!

離家近的好處是:中午可以回家吃飯,因為我岳母幫我帶小孩,還可以逗一下小孩!

公司就是做掃描器的SOC...用的是8051 MCU ,但是因為是拿別人的IP ,所以,

那一些開發平台介面都不成熟,所以也只能用組合語言慢慢孵...這一點剛好讓我更扎根了。

不過,此時工作有一項最大受益處:就是USB 介面剛出來...剛好當第一波的系統開發者。

其實,當初公司有兩條產品線:數位相機與掃描器。掃描器算是比較弱勢產品線...

所以我們這一條產品線的人員擴充與市場需求都是比較辛苦的~但也是如此,

也讓我們有更多的以比較少人去做比較多的系統整合工作,這一點真的有很好的成長機會。
----
其實,在一般大公司,搞IC  驗證工作與幫客人導入量產的AE 工程師,是有兩組人馬,

但小公司就有可能球員兼裁判一起搞...這一個過程比較值得提出來讓大家可以有交流的機會:

當我們小貓兩三隻把IC 大部分驗證工作做完之後,就移交給配合業務部門的AE 單位接手,

結果,幾個客人案子下來,把整個AE 部門搞得兵荒馬亂的...因為所謂的SOC就是要把客人

的需求都要做到一定的系統成熟度,客人才有機會放量生產的...但是,客人總覺得我們AE

所提供的韌體程式一直不穩...在生產線上反覆幾次之後,公司高層有點受不了了。

就又抓我們幾個資深的下去搞一套標準Code...記得喔,小公司可不比大公司,手上有好幾個

衣食父母產品線,...可以讓您慢慢的搞,反正有別的產品線養著您啊。

這下好了...這個使命就交到我手上的,其實,時機點有點火燒屁股的緊急了,但我主管

深知我寫韌體程式的風格,他對上層只有一個要求:就是讓我專心寫Code ,不得有雜事。

您老兄我,一接到任務,也沒多說什麼,就把我在汽機車引擎控制訓練那一套拿出來,

開始整理系統,規劃系統架構,把整個數學系統推演一番:如下圖所示:

(這是我一系列當時的工程記事簿,您們會動手寫這一本嗎?!)

我把常用的系統數據把他在數學上無因次化,轉到8 bit 系統上!

所以大家可以看到右邊那一頁,看到的都是0 ~256 的 8 bits 系統,

甚至有些數據就只成了 1, 2,4,8,16 ....等等,這一種2 的冪次方的!


---

除了數學系統上的考量之外,還得考慮一下系統的時序上的時間軸工作分配:
(下圖)


然後再整理整個數學系統搭配的程式參數定義...Review 一下哪一些系統情況沒有考慮到的?!

(下圖)


然後就可以慢慢的整理出大致上的韌體程式的流程圖了(下圖)


當然啊...以上這幾張圖都是我簡單擷取幾頁的,我光推演這整個系統的工程記事簿,

就整整寫了半本,然後也花了近三個月整理與推演,當然還有上機做一些實驗...

但是對公司主管來說:幾乎都沒看到我的具體進度...業務天天被客人叫去喝咖啡。

但這一點完全是我的主管對我的信任。

(您一定很好奇的問說:為何要這麼麻煩呢?!因為很簡單,程式容量只有8 KBytes,

然後USB的程式就佔掉 2K Bytes 多了...您只有6 Kbytes不到的程式容量要拿來寫

步進馬達加減速,還要顧到掃描器的所有基本功能需求,還要考慮不同機種的差異化

...您說:能不先整理嗎?!拿 64KBytes 來寫,您的單價賣給誰啊?!)

然後當我整理完這一些數據之後,我就全心上機撰寫韌體。

前後大概花不到一個月,就有很明顯的成果產出,然後,開始移植到客人手上的機種測試!

又用了不到兩個月,我們就全面抽換所有機種的核心韌體程式...除了一兩個小Bug 之外,

寫程式沒有BUG是騙人的啦...,只是您能不能很快的找到BUG而已?

就幾乎全線完成韌體程式更新,然後就一路順遂的出貨了,我連工廠也沒去一次。

這些產品還包括台灣幫美國Lexmark 代工的機種與後來還有名的那一個名X王掃瞄機,

都是用這一隻韌體程式...也剛好是一代拳王的唯一一隻量產核心韌體程式,

後來公司就賣給人家了。人家公司接手後,也沒投什麼AE 人員,就一路出貨收錢,

連後來我換做MP3 晶片一代產品之後,聽說這一個產品線一年還可以貢獻幾千萬的營業額,

這中間已經過了五、六年了...我都已經離職,忘了這一件事了...後來還是因為VISTA問題,

人家客人私底下才又找到我出面解決:


USB 相容性問題(VISTA)
USB 相容性問題(VISTA) -- Part (II)
USB 相容性問題(VISTA) -- 完結篇

結果,解完這個USB VISTA問題後,人家公司還是照樣出貨、收錢啊。

所以,我才說:您幹工程師一輩子,您能遇上多少這種事啊?!

不過,我八卦一下好了,當我們完成這一件事之後,我的主管也因此下台一鞠躬了,

是不是我的原因就不得而知了...所以,天底下還有什麼不可能的事呢?!

官場做官跟做技術寫韌體程式是不一樣的啦。

-----

之所以寫這一篇心得的原因是說:固然寫引擎控制程式好玩,也有其專業領域的Know-How,

但是產業用不到,您就沒有什麼機會可以Gain 到產品量產的喜悅,但是話又說回來,

又如果您沒有很嚴謹的工程經驗訓練的話,那您又能如何很快的建立您工程專業素養呢?!

所以我才說:天下沒有白吃的午餐,也不會虧待任何一個曾經投入努力的人。

但是很重要的一點是:您一定要懂得在這個訓練過程與歷練中,您想獲得到什麼?

您又可以從得到的經驗與法則中,該如何變化的去應用到另一個產品領域裡呢?! 

工作絕對不是簡簡單單的一件準時上下班的時而已,他對您我做工程的人來說:

有著另一種不同的註解。您說:是不是?!

----
其他相關文章:





還有 PCB Layout :




但學這麼多,重點還是在於心態與基本功啊。

以下這篇文章有改寫並轉載於新竹實驗中學科學班畢業班的文刊中:

個人覺得這些基本觀念才是重點:



10 則留言:

  1. 感謝板主的心路歷程分享,看到板主的筆記這樣的系統化分析;覺得自己差的遠了!感謝您的分享 =D>

    回覆刪除
    回覆
    1. 謝謝您的留言與鼓勵。
      我一直強調:台灣高科技公司大部分都不會主動的要求員工如此工作態度。
      因為很簡單,這是栽培工程師的過程,但一般公司都找您來上班的,付出您所學,
      不是付薪水來訓練工程師的~(因為有可能是幫未來對手培養競爭者!)
      所以,我才把這一篇文章列為:自學心得...這是一種自我要求的訓練。
      今天做USB,明天作掃描器SOC...或是做MP3 ~乃至於手機系統,
      這些產品總是世代交替,什麼產品不重要,而是我們本身所歷練的
      工程素養是比較重要的...或許有一天等您上了年紀,您就會懂這個道理了。
       

      刪除
  2. 老大...我想還是有很多人好奇你這幾個月「有沒有加班?」 :))

    不過文章透露出一個重點:有個好老闆支持很重要

    回覆刪除
    回覆
    1. 小老弟啊...搞電子這個行業,說不加班是騙人的啊... :)) ...
      要能遇到好老闆或好主管也是不容易的啦...
      但最重要的是要能適當的抒解一下身心壓力是比較重要的啦。
      所以,我上回去板橋找您出來陪美眉吃飯不就是一個好的抒解壓力方式嗎?!
      (噓...不能讓您女朋友知道這件事~ :)) ...她會看我的部落格嗎?!)
      我現在比較懂得工作不是一天到晚~週一到週五整天關在實驗室裡,
      偶而出來走走,多認識一下各行各業的人...是比較有寬廣的心態啊。
      您說:是不是啊?!...下回還來不來啊?! :)) ....

      刪除
  3. 今天看到您的回复,我兴奋异常,谢谢!我们这边在家里是看不到您的BLOG的,我只能利用在香港公司上班时的一点时间和您交流(我不会在工作中使用您的技术,只是业余爱好!我喜欢简单巧妙的解法,并且欣赏它)。随着自己阅历的积累,我是越来越觉得您讲的东西就是现实,一点也不觉得是“牢骚话“,林老师写的书很多都没有过时!尽管我没写过书,但我只要碰上有您这样的人写的书,我是不惜代价都要买到的!您和林老师对我学单片机有很大的影响!还想请教一下,rpm计算是使用双曲拟合吗,所以您还要调用一些别的库函数。谢谢!

    回覆刪除
    回覆
    1. 謝謝您的留言...自從離開園區工作之後,就很少去大陸了。
      記得幾年前我還在幫FPPA 多核心MCU 在大陸跑市場時,還有在
      上海的一位客人的訓練教室,看到大陸版的林老師的書...在台灣不比在大陸,
      技術的書籍在台灣的銷售量真的不大,沒有那個市場量(環境)可以供我們寫書的...
      所以,也只能用BLOG 多多少少寫一點了囉。...
      當初在大陸上海的幫客人上MCU課時,上課的許多工程師也希望我來寫一些書,
      但真的...寫技術的書,真的很花精神的...要我隨隨便便寫一些簡單的MCU書?
      我也沒興趣。 [-( ...所以,就一直擱在那~至於林老師應該也封筆了吧。
      我前兩天還跟他通了電話...
      至於,RPM 的計算,真的那個計算副程式用組合語言(彙編)程式寫
      才 47 Bytes...以8051來說:也差不多才20 個左右指令...
      您說能寫什麼高深的計算式?其實,他的重點還是回到 RPM 的基本定義與
      他在數學式子的表示方式...先推演完他的基本數學定義,然後就套一個簡單的
      數值方法的副程式而已啦...而這個副程式我還是在網路搜尋找到的哩!
      但在哪一個網站我也忘了~我當初也只是找到打印出來就把他給丟了。
      反正就是一般像是如何寫16 bits 乘法器或是除法器那一類的副程式而已!
      就像我這一篇文章所提的...花時間推演演算法是比寫程式複雜多了。

      刪除
  4. 根據強者我老師的說法,他以前在美國SONY作IC設計,那個部門也是IC做出來就被解散而他也被裁員了,說也許沒做成功還不會解散掉。

    回覆刪除
    回覆
    1. 但是,在台灣跟在美國是不一樣的...人家把您解散是很敢給的!
      而在台灣是隨便幾句話就把您打發了。如果是很敢給的話,對我來說:
      可以一直換題目作技術也蠻不錯的~畢竟有創意的工程師都比較喜新厭舊。
      這也是一種促進工程師的創意領域的擴充。這也沒有不好之處啊。 :))

      或許,您有機會應該也會發現:如果沒有一個有不斷的外在環境的刺激,
      是不可能有好的工程師可以創造新的事物,您說:如果一個人從事研發工作,
      他一直待在同一個工作或同一個產品?他也只不過是一個領域或產品的專家。
      但不一定是一個很好的、很創意的工程師啊?!您說:是不是啊?!
      ----
      PS: 如果您老師沒有被解散,搞不好他還不會台灣教書呢!...
      這樣子,不是很好嗎?!.... :D ....

      刪除
  5. 看了板大自學的過程,您做事的方法及態度值得學習效仿。曾經有一段時間,盲目的追求市場最新的技術、新知,想靠這些所謂的知識去換一份更好的工作、待遇。後來發現平常上班就夠忙碌了,放假還要學一些不知道能不能派上用場的東西,更發現自己根本做不到,新的東西不是那麼好學,要花大量的時間在上面,一直追求新的東西,反而把舊有的遺忘掉了,最後搞的自己很累。

    幾次面試下來,到覺得人家不是要您會什麼樣的工作技能,而是您曾經做過什麼事情,那才重要。現在不這麼想了,與其花時間在那些事情上面,到不如專注在目前工作,想辦法如何提高工作上的效率,減少錯誤的發生,多出來的時間還可以做其它事情,好比說思考人生未來的規劃。至於新的技術自然有人會,市場會有人滿足它。坦白說,人家也不差我一個啊!我犯不著去跟別人一塊湊熱鬧。

    在公司老闆曾要求我上台報告,把先前做過的東西跟其它同事講我是怎麼實作出來的。老實講當時心裡真的不太願意,跟大家講又如何?同事聽一聽就忘了,效果不大。但在準備資料的過程,再一次的檢視您的過去所做的事情,會發現您的思路、邏輯會更加清晰明白,對您所做過的案子有更深刻的印象,這算是一種收獲吧。

    好技術書籍在台灣真的看不太到。好比說單晶片的書,在書店賣的大都是入門類的,內容看來看去都差不多,IC規格書講一講再撘配一些簡單的實驗一本書就完成了。未曾有書籍專門討論一個實務上的案例,從生到死、從頭到尾講一遍。也許其中的關鍵是別人吃飯的傢伙吧,說出來就沒得吃了。
    (哈,我亂猜的)。

    回覆刪除
    回覆
    1. 非常謝謝您這願意的在此分享您的感受,與您本身的工作經驗。
      至於,人家會不會願意分享一個實務的案例問題?!我個人的意見是:
      倒也不一定是牽涉到什麼關鍵是別人吃飯的傢伙?!其實,有太多的
      實例開發案,未必是每一個工程師可以清楚的知道每一個細節的...
      譬如:寫韌體的,未必懂得PC 端的驅動程式或是上層軟體問題與關鍵?
      或是在IC 開發案上的許多細微之處...所以,也不容易交代一些來龍去脈的。
      不要說工程師自己本身啊。可能連老闆或主管也不一定清楚...反正,在許多
      公司的許多產品開發,都有點打迷糊戰的~所以,我才說:
      真的好公司,或好產品...都不容易遇得到的啦。
      公司不小心收了,產品做失敗是理所當然的,東西大賣或公司大發利市是意外的啊!----- 對台灣現在許多科技公司是如此的啦!... :)) ...

      刪除