其實我在大三之前,壓根沒想過自己未來會成為一位工程師,這個故事是這樣開始的 ...
我的名子叫做 Ryan,我小時候成績平平,年幼不懂事,懵懵懂懂,也是跟著一般學生一樣填鴨式的讀書,但由於我對於讀書沒什麼天分,成績至始至終沒辦法特別突出,也打從心底覺得讀書不是我的強項。
小時候對於打籃球有興趣,常常喜歡與朋友一起出門打球,礙於我的身高,這也不可能是我未來的一個出路之一。
其他的說真的也沒有特別的興趣,但我很喜歡玩電腦,尤其是玩電腦遊戲,所以覺得我以後可能可以走跟電腦相關的出路,作為我以後的行業 (不知道哪來的 idea ...XD)。
我都跟一般學生一樣,讀了以升學為前提的學校,並沒有學習任何的技術,也幾乎沒有打工經驗,大多都是在讀書渡過。
高中學測的時候,我其實有過還想去讀軍校的念頭,想說沒有什麼專長,那就幫家裡賺點錢省點錢好了,結果殊不知學測成績考太差陸軍官校正期班沒考上,後來去空軍技術學院的招考,理論上這樣的招考一般高中生應該都可以得心應手,結果居然又沒考上,我心想:「乾,這應該是命中註定叫我不要走這條路吧!?」
然後我就硬著頭皮去考指考了...後來分發上了「屏東教育大學 (原本的屏東師專,現在已經與屏商﹑屏科三校合併為屏東大學了)」的理學院不分系。
大學時期應該是在我出社會工作前,影響我最深的一個階段,這段故事是這樣開始的...。
理學院不分系,這個系在我們學校前無古人後無來者,怎麼說呢?因為以前沒辦過,只辦了我們這一屆又沒繼續辦下去,所以我們變成了僅有的一屆不分系,但是,這並不是一個可以讀四年的系所,不分系讀了大一之後,需要以「填志願」的方式,來選擇我們大二開始的系所,但是每個系開放的名額有限,所以會以成績來分配。
有人說「大學由你玩四年」,所以我的大一,真的大部分都是在玩樂中渡過,不管你想的到的翹課、考試臨時抱佛腳、線上遊戲、夜衝、晚上不睡覺打遊戲、夜唱...等等我這一年都體驗過了,但是我們大一結束是要分班的,我那時候想要被分到「資訊科學系」,說真的我都是靠著抱佛腳讀書的,我也沒有把握可以上這個系。所幸,分發的結果是我所想要的這個系,也很感謝當時幫我抱佛腳的同學們。
我當時會想要到「資訊科學系」,其實只是因為一個很膚淺的理由:我的物理化學都爛到一個可以。
大二開始,我突然覺得人生不能這麼廢,但又覺得大學,就是要廣泛學習的一個階段,並不是只 focus 在讀書的一個階段,所以我開始跟著同學到「學生會」學著怎麼在學校辦活動,那時候不支薪的情況下,幾乎是憑著純粹的熱情去做這些事情,也辦了許多場活動,也因此認識了更多的人,累積更多的人脈。
另一方面,我也開始了一些打工,像是在學校的計網中心工讀、當計網中心課程的 TA、在外面當家教、甚至在學校當網管,我做了許多的嘗試,試著找到自己適合的部分,或是自己喜歡的領域。
講到工讀,就不能不講這個影響我深遠的工讀經驗了。
那時候我住的那棟宿舍,剛好缺人擔任網管人員,我大三就被 mavewei 學長「徵招」了,大三跟著學長學了不少東西,這一年真的影響我很大,尤其是工作態度與方式,跟著學長學習,讓我成長很多,這一年來可能是我在大學中最有收穫的一年了。大四接下學長的總管人職務,也讓我備感榮幸,我自認沒有學長厲害,能夠為團隊帶來這麼多知識,但我用自己的方式,舉辦活動或是教育訓練,讓團隊的成員可以一起成長,我已經問心無愧。
在此當時跟我一起打拼的宿網夥伴,沒有你們我們團隊沒辦法做的起來,也感謝各位聽我的嘮叨。特別感謝 mavewei 學長,未我的人生帶來一到明燈。
我們系上有個畢業前必做的課程,就是這項畢業專題,我與另外兩位夥伴 (Rankai 跟 Bear) 做了一個 「行車紀錄器」的手機 app,那個時候真的是什麼都不太會,只能胡搞瞎搞,好像弄了一點什麼出來就很開心了,不過至始至終好像還是沒什麼概念阿,就這樣過了,所以後來沒選這條路可能也是這個原因吧 ...。
特別感謝 Rankai,大四要準備研究所考試還要一邊弄專題,真是辛苦了。
雖然我從大二開始就讀「資訊科學系」,但說真的,我在課業上其實不是這麼的用心,我覺得只要能「過」就好了,所以大部分的課程還是「考前抱佛腳」的狀況。
大三的時候,因為我剛好在計網中心工讀了一段時間 (工讀 + 網管工作),所以我與計網中心一直保持不錯的關係,剛好遇到了學校要換新的校務系統,而駐點在我們學校的團隊想要找「工讀生」,所以我與另一位同學就被推薦進去了,開始我的 web 開發人生。
這是我人生接觸的第一個 Web 專案。
其實一開始這間公司,只是要找我們來做文件跟報表,所以一開始其實寫不到程式,報表倒是學了不少,但報表我們都是用 Stored Pocedure 來給報表使用,所以一開始學了一些 T-SQL 的基本觀念。
後來,也感謝當時的 PM 教我們一些寫 ASP.NET 的程式,讓我們擁有一技之長,雖然一開始寫真的是一直撞牆,但我就是秉持著「不管怎樣,我寫錯 100 次總會有一次是對的」的方式,大概撞了一個月之後開始有一點概念出來 (終於阿~) 後來比較上手後,PM 也讓我們自己負責子系統,從面談到驗收都可以一條龍的處理。
就這樣從大三一路做到畢業後,案子其實也接近尾聲,後來因為要入伍才離開團隊。
雖然後來看看自己當時寫的程式真的是完全沒有物件導向的觀念,但自己想想,誰不是呢?(笑
身為台灣男性,幾乎無可避免的階段,但有時候回頭看看,也是一個畢生不可能忘記的記憶。
我的兵種是陸軍,進去新訓的時候,會遇到大抽來選兵的長官,但現在有「資訊專長」的兵真的人超級多,一梯的人就多到爆炸,所以通常會有簡單的面談,如果有長官中意的,才會進一步填寫資料。
當時我就遇到了海巡來選兵,可能剛好我讀的學校與專案經驗,所以我有被長官選中填寫資料 (Lucky~),填完長官就說,如果你小選抽的到,就會來海巡,當時我就抱著想抽到的期望到了抽籤那天。
小選抽籤出爐,沒中。
所以沒抽到的人要回到大抽,我當時感到有點失望,但還是得完成抽籤,後來抽到的是「海巡 地區巡防局」,我當時想說,這個結果應該會在南巡局服役了。
然而,新訓抽籤完會先放假,放假完就會送你到新部隊報到,我就跟著所有抽到海巡的人一起集合,在點名巡防局的時候,我就沒被點到名,我還很白目的去問長官:「剛剛好像沒點到我,是不是漏掉了?」結果長官回我:「沒點到?那就沒你的事啊,回去坐好!」我就被洗臉回座位了,過一會兒,座位上剩的人數不多,長官走了過來對剩下的我們說:「等一下你們跟著東巡局的車,你們要上台北受訓」我相信我這個時候的眼睛一定瞪的跟被鬼嚇到一樣,但剛剛已經被洗過一次臉,所以我也不好意思再去被洗臉,我就這樣踏上了海巡署署部之路。
我做夢也沒想到我當兵也能寫 web。
後來經過一番受訓後分發,幾經折騰,我終於在「海巡署 通資一中隊」落腳了,工作內容是在上班時間,要在「人事處的人資室」跟著學長一起維護「人事系統與薪資系統」,用裡面的內網電腦與僅有的編輯器 Nopad++,來寫 ASP 的網頁程式,也更不用說有什麼 Front-end 的 framework 了,完全只有 Vanilla js 可以用,不過也是因此,讓我訓練了不少基礎 coding 的邏輯思維能力與打字能力 (因為沒有 IDE 的 intellisense 可以用),然而在服役期間,也跟著系統負責的長官賴 sir 做了不少的功能,也讓他逐步地相信我,雖然很累,但付出也是有回報的,賴 sir 在我們每個人退伍都會請我們人資室出的同袍去熱炒與喝啤酒 (這大概是軍中文化吧,雖然我喝酒會過敏,但軍命難違? XD),
總之,到我退伍後找工作,賴 sir 都願意扮演著我的推薦人,非常感謝他,他真的是我在生命中重要的貴人之一。
退伍後,我選擇繼續待在台灣資訊最密集的地方「台北」,由於剛退伍也沒什麼錢,當時也有點經濟壓力,而我認為我最有競爭力的工作應該還是成為一位「Web engineer」,所以我就尋尋覓覓,找到我目前待的公司。
為什麼我選擇目前的公司?到目前為止我做過不少東西,有 ASP.NET Webform﹑Windows Form Application、Console Applcation、手機 App 的 Web View、手機 App 的 API、ASP.NET MVC...碰的東西還真的不少,而且公司願意利用時間做教育訓練,讓員工的程度更上一層樓,這是我會選擇很重要的原因之一。
而且,公司有幾位與我對頻的好同事,讓我更有打拼的動力!
-
培養熱情
培養自己對於寫程式的熱情與成就感,對我來說很重要,寫程式最大的動力就是來自這些東西,如果沒有了熱情,那很多事情可能也沒辦法持續得很久。
-
利用書籍提升自己的閱讀量與知識
出社會工作後 (應該有人跟我一樣從大學開始) 就不曾看過課外書,但看書其實是很好的習慣,不管是不是技術上的書籍,能夠看書提升自己的閱讀量,我覺得都是很棒的事情,所以可以從自己喜歡的書籍開始,培養閱讀習慣,一步一步來,累積自己。
-
時常問自己,程式這樣寫是最好的嗎?是否還有夠好的解法?
同一個程式上,解法可能會有很多種,時常挑戰自己,自己就是自己最大的敵人,如果能夠突破自己的界線,那就能更上一層樓。
-
與夥伴討論程式
就是一個找夥伴的概念,有夥伴能夠跟你一起打拼,你在工作上能夠更有動力,也能督促自己繼續成長。
-
利用自己的時間,參加外面的課程或研討會
現在外面有許多的組織在辦相關的課程與研討會,有興趣就去參加,會有不少的收穫!
活動的差別可以參考這篇 issue 紀錄:小聚 (meetup) 、研討會 (conference) 與課程 (course) 的差別
-
追蹤自己喜歡的大神
雖然這樣的方法有點偶想崇拜,但想成為 somebody ,我覺得這就像是一個吸引力法則,靠近這樣的人,了解這樣的人的思維,選擇自己覺得好的部分,就有機會讓自己成長。
人生難免會遇到問題,問題放著還是問題,不會自己被解決,要解決問題就需要面對問題。
我的處理方式是:
- 先釐清我自己的問題。
- 把問題用 key word 去 google 找資料。
- 找到就試試看,可以解決就OK;不能解決就把問題範圍縮小 (或是檢視自己的問題是否方向錯誤),重複第2步驟。
- 若還是沒辦法找到好的答案,就要「問」人了。
有人會問,「為什麼不一開始就問人?」因為,這是一個收斂問題的過程,不經過這樣的過程,你的問題可能會太發散,每個人的時間都是寶貴的,別人不能因為你的問題而浪費太多時間在解釋一個很發散的問題上,所以問問題之前,務必要先收斂問題。
而且偶爾你會發現,在這個收斂問題的過程中,你的問題可能就解開了,若仍然沒辦法解開也沒關係,在這樣的過程中,你都會持續的進步,這是一個很棒的挖寶過程。
*舉例:「我的電腦不能上網,為什麼?」甚至有人會說「我的電腦壞了,為什麼?」這樣的問題就太發散,為什麼?因為會造成不能上網的問題很多,要問問題前要先過濾問題,是網路線沒插呢?還是網卡驅動沒安裝?又或是硬體接觸不良等等狀況,所以收斂問題很重要。
「怎麼問問題」這一點是我在大學時期的學長 mavewei 教我的,讓我受益良多,謹記在心!
寫到這邊,其實從小我壓根沒想過我會成為工程師,只因為喜歡玩電腦,一路上誤打誤撞,又受到許多貴人的幫忙與指導,才能走到現在,雖然我的 Web engineer 生涯到目前為止也只有三年,也還是一個菜逼八,但我還是希望可以透過文字,記錄這些我認為不可思議的過程,有人說「人生的目標就是不斷追尋真理,而這個過程就是人生。」大概就是這樣子吧。