教學過程

修課的學生由完全不懂程式到跨系的高手都有,各有不同的目的,因此如何設計出所有同學都能得到自己所需的課程是本次教學的重要經驗。因此在學期開始進行課程調查了解不同的學習動機和學習目標。

對於無經驗的同學

無經驗的同學部較多數,有些同學是無法入門,有些同學己經學過其他相關課程多次仍無法寫程式,但也認為程式是未來的重要工具,表現出焦慮感。

針對這類的同學我告知,這個問題對非理科的同學來說這類焦慮是很正常的,但商科也有較理科生比較細心的優勢,所以只要能夠成功入門,就能夠有所發揮。程式的領域中的範圍很廣,從規畫、編寫、測試和管理都有需要大量的人材,如果能夠入門之後,就有機會找到自己發揮的地方。因此重點就是如何正確的入門,是同學的門檻,最常見的問題是大多數的課程和書藉為了顯示其獨特性,把程式說的太高深,多理論而少實作,或是把理論和實作分開來教學,這都是為什學了數次都無法學會的原因。

因此從基礎開始、學作合一、有問題就問是給這類同學的建議。

對於有特定目的同學

課程中有許多同學己經用python來作特定的專題例如網路資料的分析等,這類同學有基礎學習動機強,但通常不主動發言,以觀望和自我學習為主。

針對這類的同學,我提供的方式是讓他們了解更多python的優勢,python除了可以做專題,也可以做研究用途,取待SPSS,SAS和Tableau等。也可以朝其他框架去應用,學一套語言可以解決大部份的其他的工具,而且大多數的套件都是免費的,這個對商學院的同學也是一個不錯的誘因。

有高手來訪

這次最大的收獲是有二位資工系的大學部同學來學習,這對我非常興奮的事情,年紀輕輕都己是奬無數,也有拿到外國的線上工作的,非常了不起,重點是也協助我完成這學期的課程。

和這兩位同學的互動是十分有挑戰性的,我和他們說有如果有任何教錯的地方也請直接打斷我,他們也做的很好,不吝於和其他同學分享他們會的,我也從中關察到學生們互動的情況,這是非常有趣的事情。韓愈的師說中說道「是故弟子不必不如師,師不必賢於弟子;聞道有先後,術業有專攻,如是而已。」我的責任就是把同學領進程式的領域,讓他們有機會發揮自己的才能。

學習程式的重要關鍵

學習的過程因人而異,網路上有許多的大神,而同學中也的確有非常出類把萃的人物。但是我經歷過同學是經過點破一些細微的觀念後突然「開竅」後從害怕程式進而愛上程式而突飛猛進的。這個在我身旁十分常見,在此提出其中的重要重要關念供大家思考。

1. 程式是簡化問題的工具,不要把事情複雜化。

這個對商學院的學習方式是一種重要的關鍵挑戰,因此把他方在第一點,由我從工學院轉商學院的觀察,商學院常把巨觀性的研究方法誤解成把事情複雜化,在質性研究上最常發現這個問題,但這其實違返了要科學「簡約原則」(Ockham’s Razor),這個不只影響程式學習其實也阻礙了研究能力。

2. 程式除了親手編寫沒有其他的捷徑

不要相信說的一口好程式的大神,就算是大神的作品你也要拿來做一次才能相信,「相信你自己做過的」是學習程式的重要方法。只會編譯程式,使用合適的工具,你就可以執行任何一個大神的程式。所以只要基本功夠紮實,就可以很速理解任何你想做的題目,相對的來說,程式只要入門了就有無限的可能性,但如果你不動手去做,說的再好也是沒有用的,而入門只需要一堂課就可以完成。

3. 不要怕犯錯而且要不斷的犯錯再改正

台灣的同學很怕犯錯讓老師知道,所以都很小心把程式copy/past執行,但這個阻礙了學習的課程,也有些其他的課程課程和實作是分開的,我認為這個會影響學習效率,我的作法是上到一個斷落就讓同學馬上實作,如果有問題開放討論,如果真的還有問題就由我親自下去指導,就算再基礎的問題也親自指導。我認為只有群體能夠一起進步,學習才會真的有效率。犯錯不只是必然的,而且是必需的,程式的犯錯成本是最低的,所以不要怕犯錯,而是享受犯錯後修正後的成就感,如此,找到一群同伴一起學習就非常的重要。

4. 理解「Python之禪」

Zen of Python每一項都是值學同學一再體會的,了解了這些精神你寫程式的能力會大符度的提昇,而且這個精神也會內化到您看事情的方式和能力。

  1. Beautiful is better than ugly.
  2. Explicit is better than implicit.
  3. Simple is better than complex.
  4. Complex is better than complicated.
  5. Flat is better than nested.
  6. Readability counts.
  7. Special cases aren’t special enough to break the rules.
  8. Although practicality beats purity.
  9. Errors should never pass silently.
  10. Unless explicitly silenced.
  11. In the face of ambiguity, refuse the temptation to guess.
  12. There should be one– and preferably only one –obvious way to do it.
  13. Although that way may not be obvious at first unless you’re Dutch.
  14. Now is better than never.
  15. Although never is often better than *right* now.
  16. If the implementation is hard to explain, it’s a bad idea.
  17. If the implementation is easy to explain, it may be a good idea.
  18. Namespaces are one honking great idea — let’s do more of those!

或許您己經發現,文中的內容許多部份像極了科學的「簡明原則」,能夠用一種方法說明的就不用二種。加上其高「可讀性」的特點,非常適合跨領域的應用與學習 ,或許這也是他快速流行的原因之一。但即使他再簡單,如果您不動手是體會不到其禪意的,正如西方諺語所謂「不知釣者是否得魚,但知觀釣者必不得魚」是也。

Leave a Reply

Your email address will not be published. Required fields are marked *