2021年9月17日 星期五

我的電腦程式語言學習歷程 (下)

http://4rdp.blogspot.com/2021/09/blog-post_17.html?m=0

續前文,研究所畢業後正式踏入社會,雖然大學主修航海,但了解自己專長在電機方面,並且對研發工作有興趣,因此我主動自薦信應徵本土家電廠,而且只有投遞一家,因為母親很喜歡這家品牌,家中各式大型家電都是用這個牌子,我就沒再投其他公司,然後每週緊盯人事的回應,最後如願應徵上。因為我會寫程式,所以公司安排我設計冷氣、洗衣機微波爐等家電控制器,從電路設計到單晶片程式一手包,這也練就商品設計需關注那些重點的功夫,話說學生時代曾發誓不再寫組合語言,不過現代各式電子商品都有微電腦控制器,寫這些控制器的程式語言就是組合語言,真的不能亂發誓。通常控制器程式記憶體一般不超過 8 kBytes,我寫過最小的 MCU 是 4 kB 用在微波爐上,而且還含有十幾種烹調火力食譜。另外,公司使用 Mitsubishi 系列 MCU (後來 2003 併入 Renesas),CPU 架構和 6502 相似很快就上手,還有我設計的東西,老媽也非常賞臉採購,一用也十年以上。

2000 年決定轉換跑道,前部門經理退休,任職一家儀器公司研發協理,問我要不要改到電子量測儀器行業,不過就職前,我去巨匠電腦學 VB6,因為當時只會設計非視窗版程式,但是 PC 的應用程式仍不會設計所以想學,一個月後到新公司,雖然 VB6 沒有立即用上,除了以組合語言寫程式外,不過開始用 C 寫單晶片程式,而且儀器也需要連接到電腦,前人有用到 Delphi (Object Pascal)、LabVIEW、LabWindows 等設計,所以這些都要學,這段時間也摸到 8051,一邊帶人一邊開發產品,主要使用 Toshiba、Samsung 等廠牌 MCU。

2002 年網路大流行,新的總經理是一位極度有冒進心的人,挑選我擔任他的特別助理,幫他尋找新市場商機,此時開始自學 HTML、JavaScript、ASP,這段時間因應總經理的想法,獨自設計一些網路應用雛型軟體,不過隨著網路泡沫,公司差點面臨倒閉,總經理離職了,因為已經結婚了,我不願追隨他到新公司,每日工作到晚上的日子,選擇回原來研發部門繼續儀器設計,除了撰寫使用說明書,並利用 VB6 設計一些儀器連線電腦的小程式,以及生產測試自動化系統程式,也用它寫網路爬蟲爬 Yahoo 奇摩股市基金資料,2006 公司 ODM 儀器大廠桌上型電表,我也負責韌體設計,因為產品各項指標皆符合大廠目標,2008 被大廠併購

小孩開始長大想教授他一些科技的東西,此時 LEGO NXT 正夯,可用類似 LabVIEW 圖控程式,若改寫其中韌體也可以換成 NXC 或 Java 寫程式,這些都有研究一下,可惜小朋友興趣缺缺,我不會強迫他學習,以免打壞未來學習的興致,通常好的學習要有動機與同儕相伴,當時時機不對我就帶他往數學之路走,另外因為 NXT 而與探奇教室邱信仁老師、 CAVE 曾吉弘老師和新埔國中薛尤榮老師結緣。

進入大公司後,繼續設計桌上型以及掌上型儀表,使用 Microchip、NEC、Atmel、Renesas 等牌子 MCU,仍以 C 為主要設計語言,組合語言是搭配微調 Bootloader 記憶體容量與位址而用。2014 年閒暇研究 Raspberry Pi 喜愛 Python,而且用它寫測試程式超方便,2016 年起,因公司組織更動而併入日本研發團隊,開始以 C# WPF 設計應用程式。此外,自己是 Maker,因此也玩過 MIT App Inventor,摸 Micro:bit 碰 MicroPython玩 Arduino 寫 ROSA,從 C 的風格變成 C++ 程式庫

以上差不多是我的電腦程式語言 35 年來歷程回顧,從以前我都是有使用需求時,就會想學習開發,現在也是,未來應該也不會改變,個人經驗第一個程式語言學習差不多要花 200 小時可以精熟,之後的程式語言則可以跳躍學習,因為現在網路發達,許多前人問題會被記錄,透過精準搜尋一般可以找到解答,因此有相關程式基礎,有設計經驗,懂搜尋關鍵字,最後有能力看懂技術文件找到適合的解法,那麼寫程式這一行,應該很容易生存下來,以 Side Project 學習技能是不錯的方法,改日寫一篇文邀請有興趣的網友加入我的 Side Project 行列。

2 則留言:

  1. 我的旅程跟版主前面有點像
    本來也是寫單晶片組語的
    後來因為工作需求,改用c寫
    寫過emc,generalplus,8051,microchip
    從玩具電子轉換到機械電子
    工作空檔時,也自學一些C#,MIT App Inventor
    網路爆炸的時代,能多學就多學一些
    無論是電子DIY,工作上的知識,或是未來時代的轉換
    都是有幫助的

    回覆刪除
    回覆
    1. 很高興認識經歷相近的你,歡迎你來此部落格,有機會多聊聊。
      現代科技與時俱進,工程師永遠跟著跑才能繼續生存,只是新血要學習的東西超多。

      刪除