文組的我,為什麼會開始學程式?

how-is-master-algorithm-changing-machine-learning-world.jpeg 從國中開始上二元一次方程式之後,我就很常數學不及格,一直覺得自己就是文科腦吧,高中一路念文組,大學先是讀了人類系,後來又轉學到廣告系,畢業以後在電影片商跟電視台當行銷公關,後來又有好幾年的時間一邊當全職媽媽,一邊在家工作當翻譯跟寫手,一直以來都是從事跟文字相關的工作,從來沒有想過自己有一天會開始寫程式。

一切都是從「想知道有沒有更好的解決方法」開始的

2020年初,不明的病毒開始在全世界悄悄蔓延的時候,我重新回到職場上班,進入一家經營IP內容的文學網站當行銷PM,那時候的我並不知道,我往後的人生,甚至是全人類的生活方式,從此以後會經歷天翻地覆的改變。

一開始進公司我就負責接手一個文學獎的收件,當時的報名方法是請人先填一個google表單,再把報名表跟完成的作品寄到一個收件信箱,因為報名程序很複雜,有人是表單沒有填寫完整就送出,或是重複送出多個表單,我還要手工核對報名者跟寄到信箱的作品是不是同一個人,再key in到excel表格裡,然後在截止期限前,每天都有人重新寄來新版的作品,隨著報名人數越來越多,每天的工作就越來越煩瑣沒有系統。

當時我就想著,為什麼不能做一個報名網站,讓參加者同時填寫報名資料跟上傳作品,在填寫時自動審核他們填寫的內容是否完整,甚至能有登入的功能,讓他們在期限內能隨時登入更新自己的報名作品,而只有管理者擁有所有作品的下載權限。

宇宙的某處,一定存在著讓著讓這一切更順利運作的方法吧。

想要自己也做出一個網頁看看

在當行銷PM時,我還要負責企劃新書行銷網頁,當時一位設計的同事,除了設計還要做網頁,整個行銷部門只有她一個人會做網頁,所以我們常常交出企劃案之後就沒事了,剩下繁重的工作都落在她身上。當時我就在想,如果自己也會做網頁就好了,如果做不出來,至少多了解一些,也能知道有沒有更多元的方法,能跟網頁的使用者互動,達到更好的行銷目的。後來有機會和這位同事聊天,才知道她也是出了社會後覺得有需要,才又進修學習網頁,這讓我很想自己也試著自學看看。

想要自學程式的念頭一旦冒出來之後,就再也停不下來了。我開始每天都瘋狂地查該怎麼自學,或是哪邊有課程可以上,但一開始我最常搜尋的幾個關鍵字是:

  • 數學不好,有辦法學程式嗎?
  • 文組轉職工程師,可能嗎?
  • 超過30歲才決定轉職,會太晚嗎?

一邊自我懷疑,一邊摸索的時候,我找到了「工程師作家的轉職人生」寫的這篇文章《這麼老了轉行還來得及嘛? 一歲女兒顛覆我對「時間」的理解》,文中她提到她的一歲女兒給她的人生啟示,一個嬰兒從出生到一歲之間要學會好多事,兩個月抬頭,四個月翻身,七個月坐,八個月爬,一歲左右開始扶著牆學走路......對啊,一個小小的嬰兒都那麼無畏地勇往直前,努力去探索未知的世界,我又有什麼好害怕的呢?只要是學習新的東西,一定會有所收穫的,我又有什麼好失去的呢?就先接觸看看,如果喜歡的話,再繼續走下去吧。

也許演算法(algorithm)就是我一直在尋求的「解決問題」的方法

後來我看了哈佛大學開設的線上課程「CS50: Introduction to Computer Science」,真心推薦有心想了解電腦科學入門的人可以先看Lecture 0,我完全是用欣賞一齣精彩舞台表演的心情看完的,不管燈光、走位、運鏡、表演,全都一氣呵成,精彩絕倫。老師一開始就提到參與這堂課的人,有超過三分之二都是沒有電腦科學背景的人,上完這堂課重要的不是跟同學比較,而是跟上這堂課之前的自己比較。第一週基本上教的,正是「解決問題」的意義。想像「演算法」是一個黑盒子,我們輸入一些input進去,想要得到某些output,就是要透過撰寫黑盒子裡的程式邏輯,讓電腦幫我們做計算(太好了,即使數學不好也沒關係,我們不用自己計算,電腦會幫我們算!)但是電腦聽不懂人類的話,所以我們才要寫程式,用電腦聽得懂的語言,告訴它該幫我們做什麼(好像跟我一直在做的翻譯也差不多呢,只是從翻譯給人類,變成翻譯給電腦)。

CS50課程中一個最知名的橋段是,教授David Malan要學生思考如何從一本1024頁的電話簿中找到他的名字,於是他真的拿出一本超厚的電話簿,如果逐頁尋找不是不行,只是太沒效率了,有什麼更好的方法呢?他刷地一聲把電話簿撕成兩半,丟掉未包含所要尋找目標的一半,再把手上的半本撕成兩半,再丟掉一半......如此一來,在撕電話簿的十次以內,一定能找到他的名字。

我發現我真的很喜歡這些思考還有解決問題的過程,曾經以為程式語言對文組出身的我遙不可及,但開始了解之後,怎麼覺得有點好玩,甚至有點浪漫?!總之,我就是這樣踏上了這段,有點寂寞,經常很挫折,不定期會沮喪,但理解了什麼之後又常常自己傻笑的自學之路。

沒有時光會被虛擲,沒有經歷會被浪費

在自學的路上,也不是沒有自我懷疑和憂鬱的時候:「為什麼我都30幾歲了還在學這些?」「我這麼笨的腦袋,真的有辦法消化這些嗎?」「學了又怎麼樣,這麼老之後找得到工作嗎?」每當這些負面的想法蜂擁而出的時候,我就會停下來翻翻書,或出去走一走,我尤其喜歡我崇拜的廚師Yen寫的《獻給地獄廚房的情書》,她跟我一樣是公關出身,卻毅然決然隻身前往歐洲學習料理,在序言裡她是這麼說的:

一路走來。我一直很喜歡這四個字底下蘊含的意義,一路走來,暗示了這段路途的遙遠與不能言說的苦與樂。那年,我帶了30公斤重的行囊,從台灣飛到義大利前,家人問我「你在那裡有認識的人嗎?沒有,我只有心中某種渴望,跟不知天高地厚的愚勇,出發前我在包包裡放了高中好友的筆記本,在最開頭的頁數上,抄寫了《托斯卡尼豔陽下》書中的話:「我現在離家有七千英里遠,正準備把一生的積蓄孤注一擲到一個出於一時興起的念頭中。」

我當然沒有她這麼勇敢,但她的經歷與勇氣一直鼓舞著我。每當想到我現在才學這些會不會太晚的時候,我都告訴自己:「JavaScript ES6也是2015年才發布的,我並沒有落後太多,現在開始做自己喜歡的事,永遠不會太遲。」

好像有點太長,決定下一篇文章再詳細寫一下,我的探索與學習地圖。

←back to blog

© 2022 Bibo Chan. All rights reserved.