從純文科生到軟體工程師之路:離開哈佛後,「再也沒有標準答案」的嶄新旅程

「從純文科背景轉往軟體工程,我面對的,不僅止是換跑道、轉專業的挑戰;更加衝擊的是,被標準答案掛帥教育體制下長期豢養的我,一轉眼間被丟入這個由 0 和 1 建構的學習場域。」
評論
Photo Credit:Shutterstock/達志影像
評論

本篇來自 Alice Yang 投稿,同步刊登於 Medium,INSIDE 編審後刊登。關於作者:從純文科生轉換跑道,誤打誤撞來到矽谷當起軟體工程師,上班寫的是程式碼,骨子裡仍然是無可救藥著迷於 storytelling 的浪漫主義者,不想錯過任何生命中發生的新奇事物,因此決定持續用文字,去紀錄一段段世代的呢喃。

整整兩年沒有下筆寫過一篇文章,現在的我連起個「正常的」中文文章開頭,都略顯激動 — — 因為在這過去 700 多個日子天天陪伴我的,不是我最鍾情的中文字、也不是短篇小說或電視劇,而是一片漆黑的螢幕,運行著上百行的程式碼⋯⋯。

一個又一個漫漫長夜裡,只有解也解不出來的 bug 和一杯杯的咖啡因,在一旁冷眼看著時間流逝,一切都只為了等待螢幕上最終跳出的, “ all tests pass ”。

落入「外星文」的世界 — — 與程式語言的第一次接觸

Source: everyone’s very first Java code
Source:  everyone’s very first Java code everyone’s very first Java code


這是我這輩子第一次接觸的 Java 程式碼,我想我永遠不會忘記當時面對這段「英文字」時,腦海中排山倒海而來的不解 — — 大概是因為人生中第一次遇到「每個英文字都看得懂,但怎麼樣都無法領悟這些字結合起來的意義」的狀況。記得那時還想著:「喔,原來程式還有公開和非公開的隱私啊!」

學到物件導向(object oritened programming)的時候,也總是無法理解「類」(class)的道理,和為什麼要「創建」(new)一個「對象」(object);接觸了資料結構,覺得發明二元搜索樹(binary search tree)的人簡直來自異次元,遑論動態規劃(dynamic programming)、回溯法(backtracking)對我而言更宛如天書⋯⋯種種當時的懞懂,現在回想起來只覺得恍如隔世。

姑且拋開那些流不完的眼淚,和為了抵擋睡意支撐顫抖的深夜,從純文科背景轉往軟體工程,我面對的,不僅止是換跑道、轉專業的挑戰;更加衝擊的是,被標準答案掛帥教育體制下長期豢養的我,一轉眼間被丟入這個由 0 和 1 建構的學習場域:

它既不能容忍任何錯誤、卻又沒有「標準答案」,凡事只能靠不斷地摸索磨練中,追求優化再優化的成果、與自己的能力。

反思台灣教育 — — 保護傘底下,我們究竟學會了什麼

初學程式,我接受的是完全性的震撼。從小在台灣接受教育的我,不管是什麼科目,選擇題、填空題都有「正確答案」,應用題有「標準解法」,甚至連申論題和作文都有「參考範文」,在參考書的最後一頁靜靜地等待著。

這個教育體制的設計,仿佛深怕在學習路上的我們,因為碰到解不開的問題感到挫折,一絲一毫偏離正規軌道都覺得心疼不捨,小心翼翼地,架設從小到大的「學習保護傘」,就像學游泳從不脫掉的救生衣,學騎腳踏車從不拆掉的輔助輪。這導致我們往往覺得自己「學會了、理解了」,從成績單上亮麗的滿分、領不完的獎狀,獲得自我膨脹的滿足感。但其實卻是從未真正準備好,勇於面對沒有標準答案的真實世界。

在被程式問題連番擊倒,開始自我懷疑的同時,我總忍不住回想,當年那個在學習路上一帆風順的自己,究竟是抱持著怎麼樣的學習模式?

時間倒轉,回到高三那年為了準備七月指考的五、六月 — — 教室裡的電風扇孜孜不倦地旋轉,也抵擋不住夏日高漲的炎熱,台上老師口沫橫飛,一切只為了將學生送往好大學。台下的我們,則不知道畫乾了多少螢光筆,粗體、斜體、紅黃綠藍,在各大重點間徘徊。不知道寫滿了多少本參考書和模擬試題 — — 題目對我們而言不重要,而是全心全意要將考點和答案牢牢記住,只為追求那個上榜時那個不可一世的瞬間。高三時期,儼然是我一生中知識水平的巔峰,我們在考試的窄門中用盡全力的求生存,有如豺狼虎豹,飢渴地將書本上的內容全數掠食;我們為了排名爭鬥不休,卻對於獲取的知識往往不明就裡,只對分數的差距錙銖必較。

不諱言,在這樣的學習體制下,我做到了,進入了人人稱羨的名校。但作為表面上成功者的我,內心卻充滿著徬徨和悲哀。我為那些來得快、去得也快的速食知識感到悲哀,也為失去這些知識的自己,感到無盡的徬徨。

如果現在問起,高三的時候學了什麼,我八成支支吾吾的答不上話,說也奇怪,當時可以說是自信滿滿把所有內容背得滾瓜爛熟的自己,為什麼這段記憶就像是從腦袋中某個區塊被狠狠拔除一樣,忘得乾乾淨淨了呢?

我想,這也許是因為我從來沒有,嘗試去驗證考卷上的答案、或思考答案背後的意義,這項能力也未曾在我的學習歷程上,受到過任何重視。

每個人都該學習程式,因為它教我們如何思考

Everybody in this country should learn to program a computer, because it teaches you how to think”

— Steve Jobs, Co-Founder, Apple

這個國家的每個人都該學習編寫電腦程式,因為它能教你如何思考

 — 史蒂夫.賈伯斯,蘋果共同創辦人

學程式給我的課題,首先來自於思考:我開始學著不靠關鍵字做題目,仔細地逐字逐句讀懂問題、釐清各種假設;也體認到「No one knows everything」(沒有人知道全部),和在面對問題時如何「擁抱未知」的心態。

在沒有了標準答案奉為圭臬,你會發現自己「真的開始思考」:思考題目的含義,思考如何設計答案。反觀以往習慣「一張考卷、50 題、60 分鐘」等的作答方式,在時間的壓力下往往不允許思考,更遑論「設計答案」 — — 這也是我認為在傳統體制內學習的學生,最欠缺的能力。

其實,不論面對什麼類型的問題,都需要「思考」和「設計」這兩項能力,不是事事都有標準答案;只要這答案是符合需求(能夠解決問題)的,都有存在的價值。

另外,就是在遇到問題時「找尋答案的能力」程式語言社群奇妙的地方在於,它像是一個集大成的智慧結晶(Collective Intelligence),在遇到程式相關的問題時,你絕對不是世界上唯一有過相同問題的人,另一個有趣的現象是,你也很難搜尋到一模一樣的答案,是可以百分之百複製貼上到你的程式碼裡的。所以,你需要的不僅僅是「找到答案」,更要做到「驗證答案」,最後並能夠「內化答案」。

程式語言的學習曲線,對我來說就像是座標軸上的垂直線,第一眼面對的,就是毫不留情的懸崖峭壁,我曾經狠狠地被撞得頭破血流,數不清在腦海裡萌生過多少次想放棄的念頭 — — 但說也奇怪的是,也許是這種「沒有防護繩索」的學習模式,我一次又一次被前所未有的挫敗感襲擊,卻也體驗到從小大到沒有感受過的成就感。感覺就像是電影《Free Solo》裡,男主角Alex 徒手攀登上優勝美地酋長岩的過程 — — 危險在指尖顫動、生離死別在眼前閃過,那種屏息以待的悸動,直到成功站頂峰上的瞬間,更是一種無法用言語形容的成就和滿足。

一段打破過往框架的學習之旅

Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.

— Bill Gates, Co-Chairman, Bill & Melinda Gates Foundation, Co-Founder, Microsoft

「學習如何寫程式,可以延展思路,讓你學習如何更好的思考,創造另一種思考事情的角度。我覺得這種思考能力在任何領域上都很有幫助。」

— 比爾蓋茲,比爾及梅琳達.蓋茲基金會聯合主席、微軟聯合創辦人

對我來說,學程式這兩年來所學到最重要的事情,不在於程式語言本身,而是在改變了一生的學習態度。而我也深信,這樣的學習態度,是任何專業領域都可以受用無窮的寶貴資產,因此希望能將這些體會分享給讀這篇文章的你:

1. 「萬事起頭難」但「貴在堅持」:在這個學程式儼然變成全民運動的時代,多少人前仆後繼,但到最後能夠堅持下來的卻寥寥可數,我也記不清自己曾經註冊了多少從來沒上完的網課,Introduction to Python, Programming Language for Everyone, Web Development Fundanmental,買了多少本「第一次學XXX程式語言就上手」,有如磚頭般厚重的工具書,經歷仿佛科技文盲的撞牆期⋯⋯但在初期階段,我發現,與其貪心地想要上完所有的課,不如先專精地選擇一門自己真正感興趣的領域,等你從頭到尾學完一門課的時候,想學下一門的恐懼和困難也必然大大減少。

2. 不追求「囫圇吞棗」和「一夜速成」:學程式好比學武功,達到高峰絕非一夜練成,體會其中的精妙之處也不是一蹴可幾,有別於以往考試前可能還可以「臨時抱佛腳」,學習程式更加看重的是點點滴滴的積累和反覆思辨。同時很重要的是,學習如何在「精疲力盡」和「苦無進展」之中取得平衡點 — — 學程式的過程並非平穩上升的直線,更會經歷許多百思不得其解的問題點,與其正面對決,你更應該做的是適時暫停,放下手邊的問題,過一段時間後,也許你會驚訝的發現尋覓已久的答案往往近在眼前。

3. 「永不止息的熱情」:學無止境,是從事軟體工程師必須恪守的志業,要如何能夠時時刻刻保有信念呢?我想,唯有無可抹滅的熱情 — — 那是一種不需要靠別人認可,由內部而生的動力,才能帶給你誰也偷不走的滿足感。

持續不斷的「書寫」

有人說,程式語言像一面鏡子:即便是同樣的運行結果,卻可以反映出書寫者最真實的心境,苟且、急躁、縝密、多疑,都可以從程式碼的樣態中一覽無遺。

又有人說,程式語言是世界上最誠實的語言:不存在任何僥倖和模糊空間,不心軟、也不刁難,老老實實一行一行地運行著;也有人說,程式語是唯一只能透過書寫(而非口語)詮釋的語言⋯⋯。

或許正是上述種種原因,造就了程式語言的「高冷」,彷彿兀自處在只屬於「自己人」的小宇宙內,彼此無聲而熱切地交談著。

但在曾為人文學科的我看來,程式語言的字裡行間,更潛藏了一種「病態的美」:那種「病態美」正來自於書寫者的投入與狂熱,像是畢卡索作畫時的轟轟烈烈,張牙舞爪卻只改動了畫布的冰山一角;又像是達文西雕刻時的百般斟酌,反覆推敲只為了那寥寥數行文字。
現在的我,對於這種狂熱美感,也許還有那麼一點似懂非懂的迷惘,但現在我清楚知道的是,程式語言也好、中文字也罷,我只希望自己能夠用這些語言持續書寫,留下點什麼。

Write once, build everywhere,simple, yet beautiful. 

後記:寫這篇文章的出發點,並不在於教導人如何「從零開始、學程式一學就上手」,但若大家想知道更多關於學程式的實戰面心得或學習資源,歡迎留言給我。希望這篇文章對你有幫助,想看更多文章或分享歡迎來我的專頁/IG 逛逛。

責任編輯:Anny
核稿編輯:Chris

延伸閱讀:



網路安全、跨區瀏覽,高評價 NordVPN 推出黑五超值優惠

NordVPN 提供使用者最高上網隱私與安全性,在連線速度、伺服器數量上更是名列前茅,跨區使用串流影片服務更是又快又方便,現在黑五特價期間,平均每月只需90元台幣最划算。
評論
Photo Credit:NordVPN
評論

VPN 是網路使用者必備的安全服務,最大的用處是提升上網的安全性,讓你不用怕在瀏覽網路的時候被竊取隱私資料,但若想體驗更進階的 VPN 服務,自由的跨區使用串流影片服務,像是在台灣也能跨區看美國、日本的 Netflix 服務,甚至是流暢的遊玩跨國伺服器的網路遊戲的話,這時就一定要試試目前評價最高、功能最齊全、連線速度最快的 VPN 服務:NordVPN。提供最高等級的上網瀏覽隱私安全功能,更提供涵蓋全球 60 個國家地區的伺服器,以及最方便的解鎖跨國、跨區串流影片服務,加上每年最優惠的黑五特價,現在訂購正是時候。

☞馬上搶購黑五優惠

NordVPN 提供完美上網隱私與安全

NordVPN 的上網安全與隱私保障是最大的特色,首先,它的公司是在巴拿馬註冊,該國並沒有強制要求保留任何使用者資料,因此 NordVPN 其中一樣安全隱私特色就是絕不紀錄使用者的網路使用log,也不受歐盟、美國等地司法管轄,絕不會受到政治、法律因素干擾。

在 VPN 的安全功能方面,NordVPN 採用目前仍未被破解過,也幾乎不可能被破解的軍用級 AES-256 加密技術,還可選擇 IKEv2/IPsec、OpenVPN 這兩種最主流也最安全的 VPN 加密協定,另外 NordVPN 更獨家提供兼具輕盈快速與高安全性的 NordLynx 加密協定供使用者選擇。NordVPN 更提供讓防火牆無法過濾與阻擋的混淆伺服器功能,能夠突破 ISP 業者的封鎖,還具有能即時斷線,避免未加密網路資料暴露的 Kill Switch 功能,如果你因為工作因素需要最極致的安全隱私,NordVPN 的雙重加密 Double VPN 技術以及 Onion Over VPN 也是額外可選擇的安全工具,不只是 ISP 業者與政府都無法追蹤、取得你的個人資料,就算再高明的駭客也只能束手無策。

Photo Credit:NordVPN
用 NordVPN 瀏覽網路,不論是ISP、政府、駭客,都無法取得你的上網資料。

跨區串流影片服務超順暢

VPN 提供的上網安全隱私功能固然非常重要,但是如果要當作日常使用的話,網路連線速度絕對需要列入考量,NordVPN讓你不必因為安全性而犧牲實用性,NordVPN 正是在 AV-TEST 測試中,不論上傳或是下載,都是最快的 VPN 服務,這樣的速度領先更不受地區的限制,在亞洲、歐洲、美國等地區,都是名列的第一,服務中囊括的 60 個國家地區,任何一個伺服器、任一種網路服務,都能提供使用者最快速的 VPN 連線。

Photo Credit:NordVPN
NordVPN 在全球 60 個國家地區都有提供連線伺服器,總數超過 5100 台。
憑藉著遍佈全球各地超過 5100 台伺服器,在 AV-TEST的評比中,NordVPN 不論是上傳或下載速度都是最快的 VPN 服務。(資料來源:AV-TEST

VPN 的日常應用中,頻率最高的是跨國、跨區的串流影片服務,以剛結束的東京奧運來說,當時只要用 VPN 連到日本伺服器,就能免費使用僅限日本當地 IP 連線觀賞的 NHK 線上轉播服務,很多朋友都是這樣觀賞台灣轉播單位沒有提供的精彩奧運賽事,還有像是 Netflix,以及剛進台灣的 Disney+ 等串流影片服務,在不同地區也經常因為版權因素提供不同的影集、電影,這時就可以使用 NordVPN 的 SmartPlay 功能,也用來解鎖幾乎任何串流平台服務。另外,NordVPN 的分割通道服務也是另一個非常實用的附加功能,讓使用者可用 VPN 服務跨區觀賞串流影片時,同時又用本地 IP 上網,非常方便。最後, NordVPN 單一帳號支援最多 6 個裝置同時使用,並且支援Windows、Mac、Android、iOS 等多平台,全家人都用也沒問題。

以 Disney+ 來說,台灣的 Disney+ 還沒有上架這部經典的犯罪偵察影集「尋骨線索」,但連線到日本伺服器就會發現已經在日本上架,而且還有完整中文字幕可以搶先看。

NordVPN:2021 最優惠黑五特價開跑

要體驗評價最高的 NordVPN,現在申辦最划算,一年一度的黑色星期五優惠從 10/27 開始至12/1 截止,原本兩年約 286.8 美金,黑五 28 折優惠只要 79 美金,換算後每個月只需 90 元新台幣,趁現在升級自己的網路安全最划算。

現在就購買NordVPN