iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
Software Development

與頂尖工程師談「追求卓越」系列 第 19

台灣 JavaScript 的推手 - Caesar [Part 2]

Bernard:所以那是國中的時候嗎?

https://ithelp.ithome.com.tw/upload/images/20201002/201292492yNXbAQGhY.png

Caesar:對,大概在國中。然後去參加了些比賽與活動,也有一點成績,得到一些優越感,也讓自己覺得我好像做了一些事情。後來我去到五專,也幫學校打造一些網頁。後來透過朋友介紹,開始接一些外面設計更大公司的案子,就開始有收入。當然當時錢跟現在的比起來講不是很多,可是我覺得是一種肯定與成就感。還有打造一個網頁或網路產品,真的一個東西是屬於我做的、更會被人使用。我蠻樂在其中的。

但當時其實真的有點像一種業餘興趣。一路到後面,到我進入聯合大學學程式的時候,才真的覺得自己是在寫程式。那時候老師給我們的題目是真的要我們去認真的思考。題目常會有些邏輯的處理,或是需要我們去思考如何將一個大問題再解成更小的問題,又或是去評估 bug 或是一些潛在技術風險。較過去自己摸索的時候,這些由是更高層次的訓練。

Bernard:這就是你在聯合大學的訓練?

Caesar:對。我覺得那時候大學裡的訓練,對於我後來的工作是蠻有幫助的。

當時也我做了一些學校系統開發,例如學校學務處網站、又或是學校的場地租借系統。接這些案子是,一開始也沒有什麼把握,反正就悶著頭去做了。當時候只有接觸過 PHP,AJAX 也才剛興起。反正就是摸著書、矇著看,一邊學一邊做。那時候慶幸是 JQuery 剛起來,它把開發門檻降很多。

所以我認為開源工具很重要。當時我已經算是一直有在做開發,但在對的時機點有一個好的工具讓開發更簡單、更輕鬆,就幫助我進入這個時代。

那時候慶幸是 JQuery 剛起來,它把開發門檻降很多。在對的時機點有一個好的工具開發更簡單、更輕鬆,就幫助我進入這個時代。

Bernard:我相信其實 jQuery 也幫助很多人進入網頁開發這個產業。

讓我先確定一下,雖然你在大學前已經靠自己學習在開發、在接案了。但你是所謂的「本科生」,在聯合大學是修資工、資管的,對吧?

Caesar:我一開始是走電子通訊,但後來發現我對硬體真的沒什麼興趣,所以我就轉到軟體。我是聯合大學的資訊管理系畢業的。

Bernard:你也知道我們很多學生其實不是「本科生」,而他們對這件事也會些焦慮,因為也有企業會說非本科生不請。

因為你一開始是透過自學,後來有受過正規的資工系訓練。從你個人的經驗來看,你會對「非本科」的同學,有什麼建議?

Caesar:我覺得在大學裡面,在學的時候其實都不太清楚自己在學什麼。這是台灣所有教育最基本的問題。老師教授就是 "chapter-by-chapter" 一章一章教給你,可是他從來沒有跟你說你要學的原因、未來可能的應用。同時也缺乏一個連貫的過程與脈絡,只是把不同課程組合在一起。舉例來講,我們那時候有一門課叫「專案管理」,課程裡包括了所謂的「專案管理模型」,教授整個專案模型是怎麼樣去建置,什麼是 waterfall 系統分析等等。可是課程中我們並沒有把這些系統套用在程式開發的過程中。另外,我們課程中有不少專案或是所謂的 demo project。但這些專案都沒有明確、仔細的一個前講。,沒有人會跟你講說,你以前學過的 design pattern 或技術可以套用在這個專案裡。到底這個專案要被如何執行,跟過去學過的又是如何連接等,都是靠自己探索、嘗試出來。

Bernard:嗯。所以好像是缺乏了背後的一套清楚的脈絡?

Caesar:我覺得台灣的教育系統就是少了這部分。每一科獨立來看都教得很完整,都教得很仔細。可是我們實際到業界去用之後就會覺得搭不上。這是因為我並沒有辦法將我在工作要完成的任務,跟也學校學過的專案管理、design pattern、又或是 algorithm,整個扣在一起。課程與課程之間,以及與產業問題之間,連結性是很弱的。

所以上完課後,我只知道 algorithm 就是解題,我也知道怎麼去算 BigO。可是我在寫程式的時候,我可能寫用很多 loop、效率很差的程式。因為我沒有把兩件事連在一起思考。

很多時候也是態度問題。學校並沒有把一個「當一個優秀的軟體工程師」的標準定義清楚。所以有些人在實際工作時會發現:「哦!以前學校曾經講過這件事情,那我去研究一下怎麼寫比較漂亮。」。但更多壓根就是「反正我把這件事情完成就可以了」的態度。他已經忘記以前的學習 — 原來之前的「演算法」曾經教過這些,然後你可以做得更好。

台灣的教育系統就是 ... 每一科獨立來看都教得很完整,都教得很仔細。可是我們實際到業界去用之後就會覺得搭不上。

所以我覺得在學校裡面,很多人說學校教的東西沒用。但是我覺得學校教的,當下你不一定知道會怎麼用,因為是它是「縱向」的教下去。在業界時,如果我把以前書再拿來看,我就會發現以前的東西其實都有講過,現在我要把這些觀念串在一起 — 這是是一個「橫向」的過程。

Bernard:所以你在學校裡覺得學到最有用的是什麼?

Caesar:我覺得是教授教我們如何去尋找答案的過程。尤其是在做研究或是專案時,我們會不斷地去找前人家開發過的 paper,或是 IEEE 裡面的 model 之類的。我們會一直尋找不同的 source,以及這些 source 的 source。在這個研究過程中,你也會找很多你嘗試過才知道不適合的理論與工具。其實這種研究與試錯精神,才是業界所需要的。在職場裡,沒有人會跟你講正確答案,我也不曉得什麼叫做百分之百的答案。你就是要不斷的去尋找,並判斷哪些是你要的,哪些又是你不要的。

Bernard:也是因為這樣,所以很多人說「剛出社會的大學生根本不能工作」。

Caesar:是的。那個 gap 是很大的。

Bernard:嗯。但不可否認,大學還是有它的價值。你自己也在國高中時自學的過程。相對在大學是的正規的資工、資管訓練,它給你的最有價值你覺得又是什麼?

Caesar:我覺得在學校裡,尤其是資訊相關學校,你最好的資源就是:1. 你有老師可以問、2. 你在業界會有一堆同學,能互相幫忙、支持。雖然畢業後真的成為軟體工程師的比例不高...

Bernard:比例不高?

Caesar:對啊。以我聯大資管來講,drop rate 大概在七成左右。也就是說,剩下只有三成多的人會真的到業界在做軟體開發。畢竟這個是苦力…

Bernard:你說當軟體工程師是「苦力」嗎? XD

Caesar:哈哈,是苦力吧。你去金融業、或是當大企業的業務,一個月可以是百來萬。

Bernard:哈哈,的確,我在加拿大讀電機系,但畢業時真的很多也去當管理顧問,或是進了金融也、做投行等。

Caesar:對啊。所以我常說寫 code 真的是苦力 (苦笑~

回到剛剛的問題,我們雖然只剩下約三成的同學,可是我們的社群裡也有學長姐。這些人可能已經畢業五年、十年了,他們已經是公司的主管或是經理,又或者自己在創業。這些人脈可以是很有用的,大家都蠻願意幫忙。譬如像當年也是因為我們一位大我們快三十年的聯大學長,他在 Yahoo!
當經理。然後他在聯大開了一堂課,請好幾位 Yahoo 的工程師來講課。這些都是難得的資源與機會。總結來說,我覺得有一個生態體系,是非常有幫助的。因為當你有問題,你知道要問誰,能到哪裡 call for help。


上一篇
台灣 JavaScript 的推手 - Caesar [Part 1]
下一篇
台灣 JavaScript 的推手 - Caesar [Part 3]
系列文
與頂尖工程師談「追求卓越」30

尚未有邦友留言

立即登入留言