氣餒止步!該怎樣教文組的人寫程式?

Spe Chen
Spe Chen
May 17, 2016 · 6 min read

註:文中九成內容是我在課程結束後今年一月寫的,還有文長慎入….

我一直都在想,為何來哥大新聞所The Lede Program這邊三個月到半年,贏過我自己瞎試兩年?同個領域的朋友也(逼)問我這個學程是否有機會移地到台灣複製?答案是可以的,只要有心,用對方法,不管是教程式的老師或學程式的文組人,都可以少走些枉路。

學程結束後,我和The Lede Program 計畫主持人和教師Jonathan Soma 聊過,比對我對暑期密集課程所觀察到的,和他設計課程的邏輯以及其他學生的反饋,總結了其他學習方式很難提供的三點。

教初學者立竿見影的東西

課程大部分專注在「應用」而不是解說「原理」,每個教師對各種主題給學生「最小可懂性解釋」,就快速進入實作。打個比方來說,就是老師可以把你教到很會用錘子,但你還是完全不懂槓桿原力。

以Soma教Regular Expression例子來說,他可能花兩分鐘講就像是進化版頁面搜尋,類似一般你按command + F的功能,再示範兩個簡單例子後(他自己示範的時也示範如何google查詢,和示範出錯如何修bug),就丟給你希拉蕊被外洩的幾千封email文字檔,給你一個任務叫你找出所有提及Obama的email,並匯出成另一份文字檔。提醒你別忘了email是人打的,名字可能會是obama, Barack, President Obama等,而煩人的事,別忘了是人都會打錯字喔!然後露出啾咪表情,等你在課堂上做出來。

當時我心想:「靠,這要做到天荒地老吧…不對,用他剛剛的例子改一改應該做的出來,來試試好了。」估狗兩回,再問隨堂上課TA,叫隔壁同學貼一小段code給我後,連自己都不相信硬是做出來了,頓時有種「新技能get」感覺。算一算從新概念到實作,前前後後不出一節課,而且天天重複這種快而小的「新技能get」感覺,加上社科人會有興趣的範例,讓我開始覺得「寫程式真的有用耶」,漸漸累積興趣。

強大的支援系統(淚推)

初學程式的人,猶如亂入陌生星球。很多疑惑會完全不知道該怎樣問,原本以為是我英文不好,但班上美國人同學也抱怨道:「如果我知道該怎樣好好問問題,我也會估狗解決啦。」這種無助有點像是你遞給一個外星人朋友一罐可樂喝,他卻盯著拉環發愣,不知從何下手,也不知道該怎麼求救。

所幸班上20人左右,卻配有兩個極富耐心與同情心的TA一到四天天隨班上課,上課中有問題就跑到你身邊立馬解決,讓我跟著上課實作時不會落後。因為我們天天有小練習,周周有大作業,下午他們也會每天坐鎮三小時以上的Lab Time,同學們一邊做功課,一邊解答,問題不帶回家。

這些聽起來很普通,但對初心者來說,入門的環境有沒有隨手可得的幫助是極為重要。因為很多時候只是少了標點符號這種雞皮蒜毛的bug,讓人卡關很久,小氣餒又不解除的話,累計起來可是會讓人想完全放棄的。

Role Model活跳跳在你面前授課

我們教程式的老師背景很多元,一半不是哥大的教師,且大多數是來自社科背景,用程式做各種好玩事的人。有研究科技史的學者、數位藝術家、紐時編輯…等,他們會用自己做過的計劃簡化成上課教材,因為不是只做case study的人,所以無論同學問技術或問設計動機,都有問必答。

多元的教師群完全打破我對會寫程式的人的職涯成見,被他們教了之後心裡第一個想法是「啊,原來除了當阿宅工程師,我還有很多路可以走啊~真是太棒惹 ❤」(恕罪勿鞭)

對於我來說,給紐時編輯Chase Davis上課最讓我看到希望和學習動機,講的例子全都是紐時的例子,上課舉例就直接開紐時未公開的Github資料夾或點開紐時文章給大家看,機器學習怎樣幫助他們做新敘事。

但上課的教材不會拿紐時的用,太複雜不可能在課堂內做完。課堂實作的難度大概像是這個:老師用大學城附近的犯罪紀錄(資料已整理乾淨),用clustering找出犯罪類型的熱點聚落。讓後他再告訴同學,身為一個編輯看到這樣下一步是打算怎樣做,是要繼續用更多資料mapping?還是派記者去針對某聚落報導找出成因?

這樣教對於一個想用程式搞新聞的人如我,他完全不需費唇舌說他的有多有用,我大腦自動提起興趣來,變得很好學。

「Role Model活跳跳在你面前授課」這點放第三點,原因一來是最重要,二來是移地實行有難度。哥大在紐約,實在是太有條件找這種跨領域人才,儘管如此,Soma也沒有說找的不費吹噓之力。會教會做又有經驗的人才,很搶手檔期也頗滿,但至少紐約能提供很多人才的備選選項。我混入過很多台灣技術社群,以服務新聞為目的的技術,這些人技術面是完全超格的,但能不能用新聞人懂得語言教學,我就不確定了。

— — 我是分隔線:後記開始 — —

前面囉哩八嗦,不如直接給大家看(獻醜)我學到啥又做出啥,挑了幾個算還可以看的。

第三個月(暑期課程結束)

  • 把紐約市民專線抱怨電話的內容釘到地圖上,包含清理資料、分析、用工具做地圖

第六個月(全部課程結束)

第九個月(閒晃找工作期)

— — 我是分隔線:一點點關於我的程式學習之路 — —

有鑒於太多神人講如何成功學程式,沒有人寫不斷嘗試卻屢屢失敗的困境,所以在介紹紐約哥倫比亞大學新聞所開的The Lede Program的特色前,我要先講講冗長的說一下身為一個社會科學/文學主修的人學程式的坎坷故事,你當然可直接跳到下一個分隔線閱讀,因為真的蠻囉唆的。

拿著水杯的N大男教授:「你一個念英語系的,為什麼要學寫程式啊?」

我:「痾痾痾…. 我想要拿來搞新聞。(搔頭羞赧貌)」

我大學時候亂入外系混進兩門C和Python的課,每次電梯或茶水間(不巧)遇到老師們隨口一問這樣輕巧的寒暄問題,我都支支吾吾,只能擠出敷衍了事的答案。(好答案請參考這篇《為什麼記者要學程式?》)這兩門課雖然都拿了八十幾分,但都是老師念在我是個外系的怪人選修該課程,網開一面給的同情分數,學不起來自然是課上完我也都忘光光。

看了某篇文章說學程式不一定和數學有關,是「邏輯」的問題。嗯,一定是這樣的,我邏輯爛所以程式學不起來,以一個頭痛醫頭、腳痛醫腳的心情,又去選修了邏輯課,想說要好好學,那就從根救吧!拼了心思拿到夯課的授權碼,手上握著授權碼的紙條以為勝券在握,一定能就此學邏輯救程式,殊不知邏輯竟成了我這輩子被當的第一個科目。

大學課堂說不定不適合我愚鈍的體質,又輾轉試了幾家付費或免費的線上課程(你現在估狗到的結果第一頁我應該都有試過了),瞎忙一場,程式還是半行都寫不出來,又氣又餒,不會的東西還是不會,糟糕的還對這事心生恐懼,想說這輩子應該跟寫程式無緣了,那些外國新聞圈做出來又酷又炫的東西,我是做不來了。(兩~行~清~淚~)

憑著再爛不可能比現在爛,拐騙雙親投資我背水一戰做最後嘗試,在紐約讀了哥大新聞所的新聞資工認證學程The Lede Program,半年後現在能用Python做資料分析,用JavaScript做互動圖表,重點是對寫程式重拾(不知哪來的)信心。

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store