大學時期,第一門給我危機感的科目,是計算機概論。科目名稱表面上是如此,實際上該叫做程式語言,而且使用的還是工科老字號語言--Fortran 77,搭配陽春的NotePad++跟Command line。
當時課程修完,只記得迴圈怎麼寫。Function跟Subroutine差在哪?裡面的參數哪些要宣告? 格式化輸出?Open File? 指標? 還好最後關頭還是低空飛過,從此打算今後再也不碰程式,結果誰知道又修到一門要寫程式的課! 並且要求用Fortran完成一個解算任意桁架的受力跟位移的程式作為Final project,只好再回去認真翻一翻書。
替代役期間,為了不浪費寶貴的時間,偶而上去Coursera找點感興趣的課程來看,順便當成訓練英文的資源,也因此接觸到現在頗為熱門的Python。不得不說,剛開始寫的時候就像發現新大陸一樣:
- 啥鬼東西!?竟然可以不用宣告資料型別!!!
- 錯誤訊息比Fortran上的好了解非常多
- 跑起來似乎...比較慢?
之前的學習都是建立基本的運算邏輯,況且應用在分析計算上只是讓程式輔助產生結果,很單純的把紙上的計算轉成文字檔給程式輸出,實際上並沒有讓這個軟體被重複利用的思維。使用的資料結構也僅止於Array,更具體來說即是當成數學上的矩陣,自此我只是得到了一個...更泛用的計算機?
在一連串因緣際會下,又是碰了點C語言、又是碰了點Java,透過線上也看了一點JavaScript的入門。基本上介紹都是從資料型別、迴圈、邏輯判斷等語法下手,剩下的部分,有些是別人開發好的套件、有些則是語言專有的寫法。
對現階段的我來說,最大的問題是:要用來做什麼?
以小程式作為輔助工具,Python可以用很簡潔的語法處理一些工作上的瑣事,而且也有不少套件也都提供支援,不必再學VBA就可以控制Excel。假如有效率上的需求,才會考慮用其他語言改寫,只是也不太有機會處理到那麼大的資料量...。
話說最近看了一些Deep Learning的教學影片,真的是滿滿的統計學呢!