發表文章

目前顯示的是有「回憶」標籤的文章

我的非資訊本科畢業生轉戰軟體業經驗分享

圖片
  上週分享了我從機械業轉戰軟體業的心得分享 ,引起很大迴響,但是我在那篇貼文下方有提到 - 我去資策會學 C/C++ 已經有程式設計的底子,在學校專題更是用 6502 組合語言搭配 6522 I/O 介面卡接收 sensor 訊號與做步進馬達控制 ( 有這種技術能力卻找不到程式設計的工作?這件事有機會再談了 ) 今天想分享一下我踏入軟體業後的一些經驗 我平均下班時間是半夜 12 : 00 ,當時我的綽號就叫 - 拼命三郎 其實我並不鼓勵這樣做,但是這卻是我不得不走的路 當年從機械業順利進入軟體業時,軟體公司對於學歷上寫機械科系畢業的畢業生是很質疑具備有程式設計的能力,就算我真的有辦法完整說出當時如何利用組合語言做 I/O 控制 這次轉換跑道雖然成功進入 IT 公司,因為不是本科系的,所以就被分派到軟體測試部門維護自動化測試程式 ( 使用 C 語言開發的 Windows 桌面視窗軟體 ) 當時那家公司擴張的很快,我進去不到兩個月,部門主管卻希望我擔任測試軟體課長這個職位,但是條件是不要再寫程式了必須要帶人 ,我拒絕了。原因是我覺得我才剛踏入資訊業沒多久,管理職並不是我踏入資訊業的初心 , 我希望當一名貨真價實的軟體工程師 也許大家有個疑問 - 我怎麼有辦法在那麼短的時間獲得主管對我的信任? 看一下我後來進入部門的發生了哪些事就知道了 當時生產線的測試程式經常要改版,那家公司剛好整個組織大變動,維護測試程式的工程師被調到另一個軟體開發部門,但是生產線可不能停 ,這個工作落到我身上 。 我後來從另一位同事口中知道當時的部門主管其實是抱著讓我試看看的心態,原本要接這個工作的工程師選擇去另一家公司上班 記得第一次跟部門主管去生產線部門開會時,還一直問我你真的可以在時間內將生產部門的要求寫出來?我回答 Yes 我當時在找軟體開發工作是這麼對自己說的 - 如果這次轉換跑道真的找不到軟體開發工作,積蓄花光了白天就去 7-11 打工先維持生活所需,晚上再繼續學程式設計 所以當時的困難真的會打倒我? 心理都已經預想過找不到工作的情境了,豈能在第一次的任務交代就失敗? 當時很多同事不太能理解我為何這麼拼? 其實道理很簡單 - 基於上面主管對自己的不信任,再加上因為自己不是資訊相關科系,所以相當珍惜這份軟體開發的工作機會,後來我遇到幾位有類似經驗的網友,大家提到這段走過的路...

這篇我總算看得懂 Jserve 在講什麼?

  這篇 我總算看得懂 Jserve 在講什麼?因為我以前在 Mac OS 9 做過類似的功能,當時在做 Mac OS 9的 usb driver,要 Debug實在很麻煩,只好自己寫一個user mode的 debugger,Mac OS 9還沒有記憶體保護模式,所以我 allocat 一塊 user mode 的記憶體跟 driver 共用,這樣當 driver 抓到資料封包,我可以打開一個視窗來監控資料的內容,當時看了一堆候俊傑寫的書都是在講Windows的記憶體保護模式,我在Mac 上發現竟然用一般的allocat 函式可以跟底層driver共同才發現 MacOS 在當年真的是老舊的作業系統,過了兩年,Mac OSX 就出現了

不管是黑貓還是白貓,能抓老鼠的就是好貓

圖片
看到 這段影片  想起以前在做紡織廠自動化系統的專案,當時要 Debug 不止是機器人的操作程式碼,大部分時間其實都在處理類似這種實物的慣性物理問題,例如一個箱子過了一個站後要讓箱子乖乖地轉90度 很抱歉,機械系四年,碩士兩年的高材生為這種看起來很簡單的機構設計被現場的廠長釘的滿頭包 這位高材生是我的課長,以機械設計的實務經驗,在全公司已經是屬一屬二的高手了 當時我也在現場,以我目前的角度看當年那件事,其實不是我的課長功夫不好,而是他輕忽了對方的現場經驗 當時那個案子是把老舊的物流系統換掉,原本的系統看起來很兩光( 跟底下的影片很像 ) ,可是箱子就是乖乖聽話轉成90度 但是換成我課長設計的機 構( 還加上一個氣壓推桿 Orz ) ,箱子就是不聴話 不管是黑貓還是白貓,能抓老鼠的就是好貓 哈哈

我經歷過的技術變革

  手繪機械製圖 -> AutoCAD 電腦繪圖 PC 個人電腦 DOS-Windows 3.1->Windows 95-> Windows xxxxx 程式開發 Basic -> 組合語言(6502->x86) -> C 語言 -> C++ 物件導向  從 C 轉換到 C++ 是一個很大的思維轉換跳躍,因為 物件導向的觀念跟一開始學的程序性開發完全不太一樣  Dos 程式設計到 Windows 程式設計也是, 作業系統從單工變成多工 ,要開發一個視窗應用程式首先要了解 Windows 的 Event 運作原理,還有要處理 windows 的 callback function  多工作業系統的特性還不只這些,以前在單工作業系統沒碰過的行程資訊溝通 ( IPC ) ,多執行緒開發....  Window 程式設計當年 VB 跟 Delphi 還蠻流行的,但是這些東西還在嗎? Windows SDK -> MFC 這也是一個很大的轉變,當時看到不少人抱怨 MFC 很難用 MFC 最後也被 .Net 給取代掉 Mac 平台 C 語言 -> C++ ( PowerPlant ) 這部分跟 Windows SDK 到 MFC 是很類似的東西 當年我的主管是很資深的 Mac 程式設計師,他很反對我使用 PowerPlant ,原因跟使用 Windows SDK 轉換到 MFC 不適應的人一樣,封裝了太多的細節 我後來自己用 PowerPlant 在下班時間接了一個數位相機的影像管理程式專案( 日本 Cannon 數位相機 ) ,其實 PowerPlant 是一個很穩定的 framework Mac 作業系統 OS 8/9 -> OS X 這也是一個很大的跳躍,從 C/C++ 要改成 Objective C 還要學習 Cocoa framework ,當然 Apple 也有提供過度的解決方案,例如使用 Carbon 來將 OS 8/9 的程式轉換到 OS X ,但是 Carbon 還是暫時的,想要開發出 OS X 風格的 GUI 還是要用 Objective C iOS App 開發   Objective C -> Swift ,這部分 iOS 開發者應...

SEGA R360 ,這台街機我有玩過,現在好像沒這樣的街機了

圖片
  想到有一次當兵放假的時候在台中廣場樓上的一個 SEGA 遊樂場玩了一款模擬空戰的虛擬實境電玩 我講的虛擬實境不是現在要戴一個 VR 眼鏡,而是真的有一個戰鬥機的飛機艙,這個戰鬥機飛機艙是一個 3 度空間機械裝置,所以這個電玩佔了一個很大的空間 坐進去那個戰鬥機飛機艙就像在開 F-14 戰鬥機一樣,裡面有一個操控桿,還有一個螢幕,他會給你一些任務,你除了要把戰鬥機開上天空擊敗戰機, 還要成功降落航空母艦 你在操控那個操控桿,整個飛機艙就會跟著轉動,還蠻好玩的 但是玩一次不便宜,我記得進去玩一次就要 NT100 元,當時看一場電影也不過 NT140 今天在看捍衛戰士 2的時候,我想起了這個SEGA電玩,因為裡面最後一幕是 F-14 迫降航空母艦的畫面 當年這個 SEGA 電玩應該就是啟發自捍衛戰士,我記得裡面的電玩配樂也是捍衛戰士的主題曲 多年後我在一個展覽看到飛行員的訓練裝置,才知道原來這種裝置不是僅僅存在電動玩具,真實的飛行訓練也有使用 對了! 因為當年玩了那個電玩後,我一直有一個夢想,希望到一間做這種電玩裝置的公司上班,因為我本身是學機械,我也會寫程式 但是這個夢想沒有成真,最後到了一間自動化公司上班,工作內容當然沒那麼有趣,要做自動化前,工程師要先自己先當苦勞 XD

觀看捍衛戰士2 的隨想

圖片
  36年前我的夢想是當程式設計師,36年後我還能在前線寫程式的興奮感不會輸給59歲開戰鬥機的阿湯哥 要如何評論捍衛戰士2? 這應該是拍給中年大叔看的勵志電影 還有未完成的夢想? 中年大叔還可以再戰10年 捍衛戰士 36 年前爆紅後發生了甚麼影響力? 片中男女主角的造型變成許多亞洲明星模仿的對象,男明星大概都會穿個飛行外套,然後帶個墨鏡,女明星的髮型則留的跟女主角一樣 還有台灣跟香港也拍了類似的電影 XD 這個年代應該很少發生這種事了 這次捍衛戰士 2 帶來的影響力會是什麼? 我猜大概就是引起一波中年大叔的健身熱潮,我的塗鴉牆已經開始出現很多健身的廣告