7/23/2012

工程師的美麗與哀愁77--電子科系的學弟妹,記得配一些點數給『寫程式技能』喔︿﹍<

前一篇『依靠那些眼睛長在頭頂上的軟體工程師會死』,在Blogger上造成了轟動,造成短短幾天就有兩千多篇的閱讀次數,留言來罵人的數量也是我開部落格以來最多的一次。
台灣人就是會在這種地方團結……被人罵了一頓才會團結,其他的時間著忙著酸人、搞歧視。
台灣人歧視超嚴重的,歧視同性戀、歧視御宅族,歧視愛滋病,歧視台北人。但很奇怪,為什麼非禮女童的卻沒有被歧視?不然為什麼老是發生那麼多非禮女童的事件?
不過那不重要,不是在今天的討論的主題之中。

MCU這個市場,一直都是以8位元的8051引領風騷,主宰了市場超過二十年以上的歷史。8051指令簡單,使用方便,核心已經公開了,所以衍生出一堆變形的8051的系統。再加上各大專院校的實習課程,都以這顆MCU來當作標準。
8051的強悍,就算是後來的PIC或新生的AVR都一直沒有辦法動搖八位元MCU的霸主8051的地位。
當然,還有個關鍵問題:價格。
8051的價格真的很便宜,比起那些動輒兩、三塊美金的MCU來說,這顆真的很便宜。

但現在8051的地位開始動搖。
畢竟,8位元就只是8位元,突然來個32位元的ARM,而且價格也超便宜的,所以8051的王權逐漸開始受到了挑戰,開啟了MCU的『聖杯戰爭』……
……
請忘記『聖杯戰爭』,謝謝。

為啥提這個?
我在五專時代,我的專題實習用的就是8051這顆,當時這顆我用的超級棒的,就算是組合語言,我可以利用副程式和巨集讓語法變得非常簡單。
簡單到只有我看的懂……
……
廢話!程式是我在看的!我當然看得懂。註解都寫了,自己不看註解,怪我啊?

時隔二十年,我一直很想把以前的東西撿回來,但每次都會卡在燒錄器上。
我沒錢買萬用燒錄器。
後來,我找到了一個超低價的燒錄器,我這才開始把那些東西撿回來。
我本來以為很困難,但沒想到超輕鬆的。
只要懂C語言,買本書來研究,基本上不到一個月我就開發出來好幾個程式。

題外話:
現在開發MCU,只要懂C語言,幾乎沒有什麼MCU的程式寫不出來。
而且C語言開發出來的驅動程式傳送出來的訊號,上層的程式管你是用C++、C#(我稱之為山寨JAVA)或JAVA,我搞不懂老美的大學為什麼不教C了?最好JAVA或C#可以寫驅動程式。

我在找到8051的燒錄器之前,我就已經先花了五千塊買了一塊LM3S1968的開發板。   這顆MCU內含一顆32位元Cortex-m3的核心,有ADC、PWM……等等一堆琳瑯滿目的功能,弄到手之後,只要想能在這個板子上作到的事情……
……
結果?
程式碼有看沒有懂,規格書啃了好久,一直都沒有進展;網路上的文件確實很多,但都很零碎,沒有一個整體通盤的解說。
所以學習這顆真的很痛苦。
不過,幸好我賣了……
(以下廣告)
『…………………………………』
(廣告結束)

真的,如果一邊得學電子學、電路學、基本電學、邏輯線路、微積分,工程數學……等等一堆有的沒有的電子科學,還要去學會怎麼使用32位元MCU,甚至64位元、128位元,真的會壓垮電子科系的學生。
但……令我感到苦惱的……
不學這個,電子系所出來……能幹麼?
是的,說了那麼多一堆,我的重點就是:硬體工程師不會玩MCU?現在還可以混,以後?等著餓死吧!   除非懂RF,或是去玩半導體,不然做硬體工程師真的不需要太多的知識。
我一直認為,以後的硬體設計,根本不需要硬體工程師,只要由IC設計師兼任就可以了,下游廠商只找個大學還沒畢業的打工仔來就好了。
因為現在很多CPU都會提供完整的方案,完整到你想要用來做什麼,需要什麼週邊電路,他們就能夠吐出什麼樣的線路。
找料、備料可以交給採購,Layout交給Layout,測試交給測試工程師。
硬體將會變成在電子公司裡最卑微、低等的職位

會有人問:這樣不會出問題嗎?
放心,不會的。
因為出了問題上頭會開始推卸責任,軟體推韌體、韌體推硬體,硬體推軟體,說穿了就是沒人打算負責就是了。
在不然就找個衰仔,把責任推給他就好了。
……
是的,這就是台灣的電子業的醜陋、令人做噁的真相。
台灣電子業到現在還在做代工,也只能做代工,就是因為這些原因。
誰也不想扛責任,但誰都想當雞頭。

你懂電晶體、放大器,懂Power又怎樣?現在是個『我有無線我最強』『我最輕薄我最強』,不管是低雜訊放大器(LNA)或是電源轉換器,全都可以塞到MCU裡面,在這樣的狀況之下,你還能做什麼?
EMI/ESD?電磁波和靜電防護?哈!算了吧!那輪不到你做。
因為公司從上到下都沒人願意付責任,所以測試就外包。
那硬體還能做什麼?
有,有一個。
跑腿小弟。
像是整理會議室,搬家時的苦力,充當人事去面試新人,搶採購和測試工程師的工作,等等。

是的,你可以去搞RF,但請先把微積分、工程數學,高等工程數學學好再說。   不然沒人放心把天線交給你去匹配。
微積分也就算了,工程數學就可以讓人頭疼發暈,高等工程數學還有傅立葉轉換、拉普拉茲轉換,迴旋積分、梯度、旋度……
學到你會頭暈腦脹。

好,去IC設計公司去設計IC吧!
嗯……壓力很大喔。
普通的線路,如果錯了一條線,也只是『啊!』一聲,然後割線、跳線,下一版修改。成本大約在兩萬到三萬不等。
IC設計,如果錯了一條線,當然也是『啊』一聲;但……跳線?割線?你怎麼跳?怎麼割?也只能直接做新的Chip來驗證。
這一下單就是數百萬喔!你有幾個『數百萬』可以燒?
對~~先前可以用軟體模擬,但你能完全保證沒有BUG嗎?可以百分之百的保證模擬出來的數據都沒有問題嗎?可以反應現實狀況嗎?
國外之所以會願意這麼做,是因為他們的公司願意挺工程師;但台灣呢?
在台灣,別說你開錯了一個IC了,就算洗錯了一塊PCB,老闆會要你拿所有的身家來賠。
確實,硬體工程師可以去IC設計公司當設計開發板的設計師。
但你要能夠解釋原理,如果不能解釋原理,你怎麼把你設計出來的電路交給你們的代理商?而且聽你講課的都是一堆副理、協理等級的人。
當然啦,我也有見過代理商的FAE,根本沒有辦法解釋、說明他們的IC到底有什麼功能。或是只會打嘴砲、聊天打屁的原廠FAE。

總而言之,電子科系畢業的學弟妹們,你們的路會越來越窄,你們將會付出非常多,但收穫卻會非常少。
除非,你們去做RF,去做IC設計,不然,就算一個打工的就能把你給取代。
不要怨恨科技,要恨就恨自己為什麼要出生在台灣這種環境。
這種就算是勞工也幫老闆講話,對於開發新產品,更喜歡接代工的單子,視技術為廢物,迷信剝削會增加收入的老闆的惡劣的環境。

結論:給親愛的電子科系的學弟妹們,學點程式吧!只會純硬體是不夠的。C語言是很不錯的語言。不懂指標沒關係,因為MCU的程式不是很需要用到指標這種東西。(你都已經在最底層了,幹麼還要指來指去的?直接一點不是很好嗎?幹麼要拐彎抹角的?)。
只要懂關鍵字、語法、分支、矩陣、怎麼寫巨集和Function,最多到字串、字元,光這些你們就可以寫MCU的程式了。
其他的東西,是那些寫軟體書的作者的壞習慣。他們喜歡把所以人都當作要去操控檔案結構、資料庫、WWW程式的人。
是的,那些作者根本不認為硬體會看他們寫的書。

最後,軟體工程師們,你們認為台灣不重視軟體嗎?
好傻好天真。你們還可以站在雲端,痛罵老闆、產業界不懂軟體,不瞭解軟體,不重視軟體。
我們硬體工程師啊~~早就被當成垃圾來看了。不只被老闆當成垃圾,也被軟體當成廢物來看。
從電子系轉職寫軟體的,少拿自己以前吃過的苦來說嘴,說:『拜託,我當年要學一大堆東西,我得花時間去學軟體。你呢?你付出了多少?』這種不懂狀況的話。
如果你真的在學校學了那麼多,那麼辛苦,那為什麼你『現在』不當個硬體工程師?
搞笑啊!
Google
Creative Commons License markscat的異想世界markscat製作,以創用CC 姓名標示-非商業性-相同方式分享 2.5 台灣 授權條款釋出。