正確答案是:請自學
試想你正在創業階段,正在做產品的創意發想,為了實現商業流程或應用服務,通常需要經過多領域的技術互相組合。你也許要做一個網站,有前端介面(HTML, CSS, Javascript, jQuery, 甚至React.js框架等)、後端邏輯(Python開發環境的Flask或Django框架;Javascript開發環境的Node.js框架;或JAVA開發環境的servlet框架…等)、資料庫(MSSQL, MySQL, MareaDB, MongleDB…等)等技術需要整合。
以Python這個程式語言來說,學習路徑如下:
- Python基礎程式設計:Python原生語法與原生Library (注意:沒有numpy或scipy 等library)
- Python資料分析:numpy, matpotlib
- Python網路爬蟲
- Python機器學習:scipy
- Python深度學習:Tensorflow
- Python網頁框架:Flask
在教師的授課課綱中,通常是針對某個科目內的某個範圍進行授課。如【Python基礎程式設計】課程,主要是講授Python的原生語法。若同學需要使用其他套件如numpy去做專案,但是目前正選修的【Python基礎程式設計】課程並沒有講授numpy,該怎麼辦呢?
首先,我們來確認一個觀念:上課的目的,是什麼? 我想,很難有課程會標榜:上了某某課程,就可以成為某某領域的專家,是吧!? 一個課程,通常可以帶領學生進入某個領域的入門,但若要更進階深入,則需靠學生自己主動學習,才有辦法達成。學生透過上課的過程,除了吸收入門的知識外,更重要的是培養如何學習的技巧。你必須學會主動學習的方法,才可以自己學習自己真正想學的知識,建構自己的創意藍圖。
馬克·艾略特·扎克伯格 (Mark Elliot Zuckerberg) 不是上了一門前端的課,就可以打造出臉書的原型。若要成為某領域的專家,是無法透過教師傳授達成的,需要自己主動學習,結合領域專長知識,逐漸真入探究知識,才有可能成為某領域的專家。
回到Python…
假設你正在修習【Python基礎程式設計】,但你需要使用numpy的函式庫,而老師這堂【Python基礎程式設計】沒有教numpy,怎麼辦?
你可以運用在上【Python基礎程式設計】時,所學到的查資料方法,應用在numpy的自學上。沒錯,答案就是自學。但自學是有程度的,你應該將修習【Python基礎程式設計】時所學到的Python觀念作為下一階段學習的敲門磚,逐步深入自學;而不是從零開始,在還不會基礎Python語法的情況下,就自行去理解進階的numpy函式庫觀念。
我們在教學的時候,除了教同學語法,也會教同學如何找到答案的技巧。因為程式的技術是與時俱進的,很有可能在課程進行過程中,軟體版本就更新了,又增加了一些原本教材沒有的新語法。這時同學們自行找答案的技巧就很重要。不管是查資料或是搜尋,都是有章法的。透過有系統,有章法的尋資料與自學,相信同學們可以迎接課本沒教過的挑戰;實踐從未有過的創新概念。