非典型程式人:沒走進華爾街的孤狼 開闢前端另一座獵場

聽聽他的腳步聲 悄悄在螢幕劃下永恆的記憶

林庚遠 Ken-yuan Lin
ccClub
11 min readOct 10, 2020

--

《非典型程式人系列》刊載至今受到各界先輩們的持續關注支持,筆者及 ccClub 團隊深表感激。我們不斷推陳出新,希望從團隊的人脈網中書寫每一位程式人的故事,讓更多人看見程式語言對社會及個人的改變與力量。

看到這篇文章的你,可能已經讀過我們專欄系列的《鍵盤時空》《土木種子》《城式超人》《管顧維納斯》《法律女超人》,如果還沒讀過歡迎去補補進度,也許你就是我們要找的下一個非典型程式人!

不過,過去分享經驗的夥伴們的工作內容幾乎清一色都跟資料科學有關,談來談去都是「data」,除了筆者外,也有不少讀者好奇:有沒有不是做 data science 的程式人的故事呢?

為了滿足讀者們的心願,我們這次特別邀請到 ccClub 團隊網頁前端第一把交椅 — 杜允平,現職 KKStream 前端工程師。大學時念財金系的他,畢業後沒有踏進銀行,反而成為一名工程師。這匹孤獨的風中一匹狼究竟在盤算什麼,就讓我們一探究竟。

比華爾街更棒的獵場 由我們自己創造!

▍好好的 Elite 不當,跑去當宅宅工程師?

提到財金系的畢業出路,也許有些人會想到金融業或是顧問業。穿著帥氣的西裝、操著 fluent 的 English、賺很多的 money — 當之無愧的 elites 好像就是在說這些人。許多同學也確實以進入頂尖金融機構或知名企業工作為目標。

不過,也有一些「不務正業」的同學並未將金融業作為未來職涯志向,允平就是一位不走金融業,投身網頁前端開發的工程師。

廣義的前端,包含平日點開網站看到的各種頁面、按鈕、動畫、網頁設計等與使用者互動有關的元素,都是前端開發的領域。前端工程師的其中一項工作,就是依據客戶的需求做出不同的網頁頁面。舉凡追劇時看的 Netflix 、或是找尋財富自由鑰匙的台灣彩券網站,只要在網站背後,都能看到前端工程師的影子。

那麼,究竟允平為何會轉而迎向工程師的懷抱呢?

「財務工程是我剛升上大學時的目標。當初為了更扎實的數理訓練,申請大學時甚至申請了台清交的數學系,後來因為沒有錄取,便輾轉來到台大財金系。」

為了延續財務工程的目標,大三的允平也申請了雙主修數學系。然而,課程難度日益增加,也讓允平重新思考當初的目標。

眾裡尋他千百度,生涯探索的每一次千迴百轉,都造就了今日的你我。

「隨著課程難度逐漸增加,雖然畢業前還是完成了雙主修,我卻打消了讀財工的念頭。實分析這門『硬課』更成為讓我放棄財工的最後一根稻草。」

雖然沒能延續自己過去的志願,但「尋常人少走的路,往往有更美的風景」,大四後便常去資工系修課的允平,反而在這裡找到自己的另一片天。

一路走來我與它──我與程式的愛恨糾葛

▍為什麼當初會接觸到程式語言呢?

「當時一堂資工系的課讓我接觸到程式語言,除了理解電腦思考的邏輯,也領悟到寫程式是一件愉快的事情,我很享受浸淫在程式碼的感覺,也為後來投入軟體業埋下伏筆。

其實,我從小就對電腦很有興趣,小時候也曾試過架網站。大學時除了系上的必修課,資工系的課程訓練也讓我有更多接觸程式的機會,這些經驗厚實了我對程式語言的掌握度。」

大五時,即將畢業的允平在人生的十字路口上徘徊不前,還沒確定未來志向的他充滿迷惘。某日經過台大社科院時, ccClub 讀書會海報引起了他的興趣。

一張意外的海報,走進了允平的生命。

「ccClub Python 讀書會的規劃讓我接觸到程式應用層面的機會,不論是爬蟲或是資料分析都讓我產生興趣,甚至曾想過到美國讀資料科學。

參加讀書會除了學程式,帶給我的另一個啟發是認識人。身邊的朋友從原本財金系的同學拓展到不同背景的程式寫手,帶給我更多交流的機會。」

允平在 2017 年秋季班學習完基礎 Python 應用後,接續學習 2018年春季的進階課程。然而,隨著學習內容加深加廣,允平卻漸漸發現他對更進階的資料分析方法及機器學習的技術提不起勁。

即便如此,允平仍對寫程式充滿熱情,在不斷自我探索下,也漸漸找到自己喜愛的領域,後來更在因緣際會下成為一名網頁前端工程師。

▍I create therefore I am ! 我創造,故我在!

知道自己喜歡什麼、為什麼喜歡很重要,像極了愛情。

常言到「興趣很重要」、「他之所以成功,是因為對這件事充滿熱情」,
筆者相信興趣是我們生活不可或缺的夥伴。如果說每個人的生活都是一道美味佳餚,興趣猶如讓料理增添風味的調味料,讓我們在品味人生中留下更驚豔的味道。

能夠知道自己的興趣所在,並找到之所以喜歡的理由,也是一件關鍵且幸福的事情。由於教育環境使然,我們對一門學科或領域的好惡往往建築在許多能夠被量化的指標上,例如:分數、排名。我們因為在某個科目上得到成就感,就誤以為自己對這門學問有興趣的。但如果細問自己的內心到底為什麼喜歡,似乎又說不出個所以然。

「我喜歡『創造』。」

「搭建網頁是一個從無到有的過程,作為一名網頁工程師,從零開始苦心孤詣做出的每一個網頁,都是我們的作品。如果使用者能因此擁有更好的使用者體驗,我會覺得很有成就感,也是對我自己極大的肯定。

這些感覺,不是金融業能夠帶給我的。當然,每個產業都有屬於自己獨一無二的價值,只是作為軟體工程師,這份工作帶給我的喜悅是難以被超越的

每個顧客對網頁設計與功能的需求都不同,每一份作品也都獨一無二。因此,這也是一份充滿挑戰的工作。即便它可能會伴隨一定的壓力,但卻不是讓我眉頭一皺、對生活灰心喪志的阻力,反而是一股正能量,讓我想正面迎接這些挑戰,並在每一次突破中努力成為更好的人。」

筆者也想分享判斷「是否是興趣」的其中一個指標:如果你能夠像忘記時間、忘記吃飯般不眠不休地做某件事,也許足以認定你對這件事的熱情是足夠的。這樣的經驗在允平身上也得到了驗證:

「我在大四時修了資料結構與演算法,其中一個作業是要求我們寫出一個名叫「Trie」的資料結構。由於測資的大小多達 1 GB,為了測試程式寫法是否正確,電腦至少要跑個半小時。因此,原本完成一個段落後打算去洗個澡、放放鬆的我,洗完澡出來後才發現被電腦「宣判死刑」-segmentation fault 的錯誤訊息顯示還有需要修改的地方,整個過程相當煎熬。

即便後來還是僥倖完成了,但比起完成作業的快樂,更重要的是我可以為了同一件事情做到凌晨四點,不在乎時間流逝、只為了盡力完成。這次經驗讓我更認識了自己,也重新檢視自己對寫程式的熱情。」

身為前端工程師,最重要的能力是什麼?

▍技術之外,那些更重要的事

就如同許多行業,「實踐客戶的需求」也是前端工程師的任務之一,既然是牽涉到架設網頁,相關的程式語言(如:JavaScript)自然是最基本的能力。但除了技術力,團隊協作中的許多「軟實力」也是成為一名出色的前端工程師必備的要件,其中一項能力就是溝通

客戶、產品經理(PM, Project Manager)、品質測試工程師(QAE, Quality Assurance Engineer)、前端工程師,這些人在開發流程中都是參與者,但各自的背景與專精的能力都不同。在跨部門合作溝通、與客戶對話的過程中,如何把行話翻譯成大家都能懂的白話文,是共事時十分重要的能力。如果溝通順暢,都有助於提升團隊對內及對客戶的關係。

協作上的「白話文運動」很重要,不是每個人都看得懂網頁原始碼!

「如果今天客戶的需求窒礙難行,作為前端工程師要如何精確地讓對方了解窒礙難行的理由?

如果要講行話,我們可以跟它講許多行業術語、結果是客戶可能無法理解。但如果能用更通俗易懂的方式告訴他,達成雙方的平衡,合作上就會更順利。善於溝通也是我很自豪的能力。」

一個網頁要能從無到有架設出來,彷彿就是建一座大樓,除了鋼筋水泥跟優秀的建築師,也要能了解客戶的需求、還有跨部門的溝通,一座完美的高樓才能自信地豎立在廣場上。看似虛無飄渺的溝通力,其實是建構網站與人之間的橋梁!

▍怎麼看待「前端難民」?

所謂「前端難民」,是泛指因為看見程式及 CS(Computer Science)浪潮的趨勢而決定轉職前端工程師的人們。這些人通常不是資訊相關背景出身,因為看到寫程式的風潮決定轉換跑道,希望找到人生新目標或更好的職涯發展。但由於人群蜂擁而至進入就業市場,也產生應徵人數氾濫、「量多質不精」的現象。

面對這個現象,我們來看看他有什麼想法:

「 CS 的浪潮確實是原因之一。除此之外,市場上需求夠大(公司多少都需要有自己的官網)、前端初期簡單好上手的特性也助長了這個現象。

不過,雖然容易入門,要成為真正的高手卻有很長的路要走,這個事實也反映在薪水落差上。」

其實不只是前端,相信讀者們也都感受到近幾年廣義的「寫程式」蔚為風潮。程式語言與資料科學的大門也吸引許多學生趨之若鶩。以允平自己就讀的商管學院為例,許多科系都強調程式語言的重要性,跨領域學習的趨勢彷彿已是勢不可擋。但這個趨勢背後的涵義又是什麼?對一名商學院的學生來講,學涯過程如何安排才是最適合的?

「跟剛剛的答案有點類似,我不確定這股浪潮會維持多久,但我想『一窩蜂』的現象也很正常,對大學生尤其如此。

大家之所以會對程式趨之若鶩,其中一個原因是它在目前的主流聲浪中備受肯定。對許多大學生而言,在還不清楚未來志向之前,任何嘗試都是探索人生、與自己碰撞的過程。

我相信自由市場的機制還是存在的,如果你沒有興趣或是天賦,也許這條路終究不屬於你。但如果你有能力、你願意去學習,甚至願意應用它,這會是你與眾不同的亮點。

有什麼話,想跟初學程式的朋友們說嗎?

「如果你只是想上一堂課當試金石的人:
先別抱有太美好的幻想!沒那麼容易!
面對冰冷的螢幕、錯誤訊息百出、永無止盡的 debugging,
這些都需要強大的心理素質!

如果你是一個想要跨領域結合的人,希望程式能幫你『增值』:
很好!但你要思考如何真正讓程式幫你解決原領域的問題!

最後,如果你是一個要完全轉職的人:
你真的要付出很多耐心,持續跟上,才不會被淘汰!

總結咱們杜老爺的金玉良言,不外乎「放寬心、好好享受,但也別把程式當成萬靈丹。」

與杜一席話,勝讀十年書。作為他的學弟,不論在哪個領域,筆者都還有很長的路要走,最後就以學長訪談結束的這句話彼此共勉之吧:

「兄弟登山,各自努力!大家加油!」

【延伸閱讀】
❓ Skiwitch Talk 永垂不朽的程式用途精華整理!
➡️
你能用程式做什麼?⬅️

📚 穿越時空愛上 coding,就看這一次 📚
➡️
用鍵盤譜出時空的旋律 ⬅️

👷‍♂️ 這次不搬磚頭,哥教你寫扣卡要緊啦!
➡️
在土與木之間 散播程式的種子 ⬅️

🏙️程式的守護者 暖男系代表城市超人!
➡️ 在太平洋彼岸 看見城市的光芒⬅️

👩 她是女神她是愛 管顧仙女下凡普渡眾生👩
➡️ 展開雙翼 讓維納斯帶你翱翔商管程式的奧秘⬅️

👩不拿法槌也能伸張正義? 她用 data 講故事給你聽👩
➡️ 褪下法袍 從解構資料看見社會裂口的那道光 ⬅️

我們是 ccClub 團隊,致力於讓 Python 成為大家的第二外語,希望能用淺顯易懂、循序漸進的方式,帶領新手一步步跨入程式設計的世界。如果你喜歡這篇文章,請給我們 11~20 個掌聲。
如果你喜歡「Python初學」的教學系列文,或是「非典型程式人」的專訪,請給我們 31 個以上的掌聲。


Facebook: ccClub Python讀書會

--

--