寫程式這回事

2016年2月下旬,接到一通電話的邀約,於是我得以共襄盛舉,在《遠見雜誌》報導「程式教育列入課綱」的專題中被報導,很感謝陳芳毓副主編的邀請與訪談。除了讓「社區醫療群地圖」再一次的在媒體上曝光 (上一次是 2014年 iThome 的報導),也提醒我重新省視寫程式這項技能的對我的意義。

至今我仍然不敢自詡會寫程式,如果用類似維基百科社群使用的巴別分類來描述我使用最熟練的 R 和 Python 的能力,大概都只有等級1:「可以讀懂用這種語言寫成的文章,並且回答一些簡單的問題。」我仍然會犯一些低級錯誤,偶爾需要翻閱小抄和文件才能分得清 Python 的 list、tuple 和 set 使用上的差異,也非常依賴 Google 和 Stack Overflow。 Coding style 仍然毛病不少,有時會因為習慣不夠好而嘗到苦果。

接到電話時,我腦海想起許多位比我還會寫程式的醫師 (eg: PCman、蔡依達醫師、曾經講解 Excel 巨集語法給我聽的彰化基督教醫院核醫科主任楊光道醫師…)。這樣的我,何德何能在大眾媒體以一個會寫程式的人的角色曝光呢?

不過我還是選擇站出來現身說法了,以一個只會寫一點點程式的人的身份。我想以自己做為例子,表達我對「程式教育列入課綱」這個政策的看法與想像。

我希望給讀者的印象不是「沒有接受過科班訓練也會寫程式」這樣的讚嘆 (我承認反差萌是很討喜的),而是「即使不是以寫程式為業,入門的寫程式的能力對一般人也是有幫助的」。所以我舉了兩個例子:社區醫療群地圖公務人員終身學習積分批次匯入 *.csv 產生器。這兩個例子都是我試圖解決從我這個角度觀察到的問題,難度也正巧是我的程度可以克服。這些問題如果不用自己寫程式的方法解決,也會是「請別人寫程式」來解決。可是如果腦海中沒有跟機器互動的想像,連如何「請別人寫程式」都不一定說得清楚。我希望未來程式教育課綱給學生的第一個收穫:透過做中學的過程,學會抽象化的邏輯性的思考方式,讓機器為你所用。

報導中也提到 (不過限於篇幅較為簡化),我第一次接觸 Python ,是大學五年級、六年級,在高雄醫學大學校園網路研究社的社課。不過因為那時沒有需求,這項技能就荒廢了。後來之所以認真精進這項技能,第一個契機是2013年工作上有統計的需求,這時我已經是個自由軟體的頑固份子,想藉此機會學習裝在電腦好幾年卻從來沒碰的 R。一開始卡關卡了一個月,在社群的指導才走出來。也因為其他需求,才又再認真的學 Python。很多學習過程是任務導向的。這也是我擔心未來程式教育課綱的學生,可能沒有具體的需求,因而再感受到益處之前,先被學習曲線打擊自信心。這是最不容易教的,也很有可能是最痛苦的。

上一段提到的難關突破之後很快就能應付基本的統計需求 (eg: student’s t-test、 Chi-squared test)。也在這段時間接觸 R 和 Python 社群的活動,在社群的分享中,看到許多其他人的點子,因而受到啟發與刺激,我的想法也才一步一步能夠落實。我先前也在一篇文章紀錄社區醫療群地圖發展的過程中是怎麼樣的被啟發。這也是我希望程式教育課綱達成的目標:互相觀摩、互相學習、互相啟發。

如果你看到這裡,我希望你像我一樣,踏出第一步。我也期許各個不同領域的朋友,都可以審視一下自己的專業,是不是可以藉由資訊化更上一層樓。就像我的一位水利背景的朋友所說,「每分每秒都有大量的資料產出,不 coding 怎麼處理啊?」

ps: 去年考完專科考試之後,我想要用 django 來重新改寫社區醫療群地圖,現在還在看 django 的 tutorial。如果你有其他想法也歡迎把這個點子拿去用,我樂見這個資訊被傳播,請不必介意。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s