國三生:也曾想上建中、台大,但寫程式讓我和家人完全改觀!


 

廖偉涵參加 2014 COSCUP 年會,會後聚餐照片。攝影/黃雅信

全世界都在學寫程式的今天,Python 在入門程式設計中受到電腦老師和學生們的愛戴,連影響力遍及全球的 MIT 麻省理工學院,其程式設計基礎課程的老師也選擇用 Python 教導沒有寫程式經驗的學生。

最近兩年,台灣 Python 社群出現一位帶有點稚氣的新面孔,他是廖偉涵 (Adrian Liaw),外表之下有著對於電腦科學求知的強烈渴望,自信的談吐讓人難以想像廖偉涵正就讀達觀國中三年級。Adrian 12 歲時剛國小畢業,那年暑假第一次與一群少年體驗寫程式的樂趣。上國中後,他活躍於臺北 Python 社群 Taipei.py,每個月固定參加聚會交流的活動,與對 Python 特別有熱情的哥哥姊姊們一同切磋寫程式的技能,且不吝於在聚會中分享,贏得許多寶貴的友誼。

PyLadies 社群核心幹部黃鐘瑩與李姿宜在今年 (2015) 4 17 日與 Adrian 進行線上採訪,進一步認識國中生學習 Python 的過程。在訪談中發現 Adrian 是一個對自己在做的事相當專注和認真的工程師,以下為訪談的內容節選:

什麼機緣下開始接觸 Python

Adrian在小六升上國一的那年暑假,爸爸看我在家閒閒沒事,問我要不要去參加一個有趣的程式設計暑期班。就這樣展開人生第一次學寫程式的大冒險。老師在暑期班中教學生怎麼玩 Scratch,那是一套 MIT 麻省理工學院開發的軟體,讓學員可以很快的用圖形化的介面,以及拖拉的方式學習程式邏輯。後來因為這個計劃(兒童程式教育計劃)在入門 Scratch 後加入了 Python MOOC(英語:Massive Open Online Course,大規模開放線上課程),讓我接觸到 Udacity,並修習 Introduction to Computer Science 電腦科學基礎課程,課程上教授的程式語言是 Python,也就成了第一個接觸的程式語言。

Python 程式語言與其他語言有什麼不同的地方?

Adrian因為自己現在主要接觸的語言是 Python JavaScript,以這兩個語言來說,我覺得 Python 的設計絕對比 JavaScript 好得多。像在 JavaScript 裡的 comparison operators scope 會讓初學者很頭痛,Python 不一樣的是可以更專注在程式的邏輯上,而且加上有很多很有用的各種內建 library,可以在開發中省去很多時間!

自學寫程式的過程中,遇到最大的挑戰是什麼?有什麼有趣的經驗?

Adrian Scratch 轉到 Python 的時候,因為從拖拉到純文字的程式撰寫是比較大的挑戰,但其實適應的很快!另外一提,如果當時是學 C 的話,我現在可能會走上音樂路(編按:Adrian 自小學習古典鋼琴,擅長莫札特,最近在練巴哈)。有趣的經驗方面,由於活躍參加社群,時常會有與外國開發者交流的機會,這種機會很難得,也是因為這樣才能增進自己的英文會話能力!

從不會寫程式到熟悉寫程式,生活上有什麼改變嗎?

Adrian最大的改變是發現生活中有很多事情可以用寫程式來解決。同時也發現學校教的數學課大部分都花在大量相似的計算上面,卻沒有訓練如何用各種方法去解決沒有遇過的問題。在其他的生活改變中,最明顯的就是發現自己會花很多時間寫程式而不是打電玩。以及會想要用不同的角度去解釋同一件事情,我在寫程式的時候,也常常同一件事情用不同的架構和思維寫出不同的 code!寫程式很好玩也很有趣,有很多很先進、很吸引人的技術可以玩,以後還可以賺錢,甚至改變世界。

你認為寫程式的技能對於你未來的生涯規劃產生什麼影響?

Adrian目前的計畫是申請高中自學,這樣會擁有一般高中生身分,而實際內容會有業界實習等等,未來也有可能會出國接受教育,或者往程式以外的領域發展。因為家裡也有人從事中醫,所以也有可能在未來研究中醫與大資料的結合。這些事情都是在學習寫程式之前從來沒有想過的,我的目標曾經也是上建中、上台大,但是寫程式讓我和家人完全改觀!

其實我也想要在學校內影響其他的同學開始寫程式,但是我身邊大部份的同學都認為寫程式需要很大量、很高深的數學知識,多數人也認為 coder 就是駭客。我一直在思考 JavaScript Python 到底哪一個比較容易帶新手。JavaScript 可以做一些很吸引人的視覺化程式,對初學者來說互動性比較高,但是 Python 的程式概念絕對比較好。目前可能會傾向於找一個貼近生活的專案,讓大家做專案的同時學習 Python

今年 PyCon APAC 2015 的年會中將帶來什麼分享,又有何期待?

Adrian除了會分享自學經驗之外,還會分享之前寫的 Python 套件——解開魔術方塊的 Python 程式,講題內容包括專門處理魔術方塊公式的模組。在年會中期待看見資料分析的議題,或者偏抽象邏輯性與結合日常生活的專案。