前言
對於一個商學院的學生而言,聽到學程式語言這件事,一開始真的是覺得遙不可及,因為在過去求學的過程當中完全沒有接觸到程式的經驗。相信也有許多人跟我一樣,雖然對於學習程式有興趣但又不知道從何開始,因此這篇文章我會分享我是如何慢慢進入程式語言的世界當中、透過哪些學習的資源與管道來學習程式語言,最後還用了Python、深度學習完成了商學院的碩士論文。
學習程式語言的歷程與想法
清楚學習程式語言的目的
我覺得清楚知道自己的目的非常重要,因為對我來說,我無法像理工科的學生那樣地毯式的學習,時間上也較為不足,而且只練習各種基礎語法會有點枯燥乏味。因此我慢慢思考我想要用程式語言來達成什麼目的,對於商學院學生而言,Excel 是一個很常見的軟體,而且我對於資料分析也比較有興趣,所以我就開始爬文,了解在 Python 當中有沒有什麼類似的套件跟 Excel 很像,因此開始決定學習跟資料分析有關的套件。
學習程式語言的過程
Pandas 猶如就是 Python 當中的 Excel,因此我第一個套件從 Pandas 著手。Pandas就是可以做資料處理與一些資料分析,且可以處理的資料筆數也較多。我們都知道要分析一個資料,其實有80%的時間都是資料整理與清洗,20%的時間才是進行分析,因此Pandas在資料處理就是一個基礎且很強大的套件。
Source: https://analyticsindiamag.com/understanding-the-importance-of-data-cleaning-and-normalization/
然而隨著分析熟練之後,開始需要將資料的數據進行視覺化的呈現,所以接著我接觸了 Matplotlib 與 Seaborn 這兩個視覺化的套件。這兩個套件各有他們可以發揮的時候,但對於視覺化圖表,他們都是非常好用的套件。
Source: https://towardsdatascience.com/visualizations-with-matplotlib-part-1-c9651008b6b8
另外雖然 Pandas 可以對資料進行分析,但大多數都是敘述分析或是像是樞紐分析那樣的基本的分析手法,因此在朋友的引導下,我開始接觸了機器學習…
機器學習近幾年來很熱門,因為他可以對資料進行更進一步的了解。機器學習首先可以分為監督式學習與非監督式學習,常見的監督式學習有迴歸、分類、優化等等,而常見的非監督式學習有降維、分群等等。
必須要說機器學習的種類實在非常廣泛,因此最重要的是要花時間去學習你想達成什麼目的以及適合的方法為何。所以這部分可以多看別人的文章或到 Kaggle 學習別人的程式碼,很快就能上手了。最後我也接觸到深度學習,我的論文有用到深度學習當中的 LSTM 對股價進行預測分析,更多深度學習的資源我放在文章後面,歡迎參考,之後也會分享更多我是如何使用深度學習來完成我的碩士論文。以上就是我學習 Python 的過程,後面會跟大家分享學習的心態以及學習的資源。
不要怕錯誤培養自己找出答案的能力
寫程式的過程當中最怕無法執行程式或是出現 Error,其實這個問題一開始也困擾著我,後來聽取朋友的意見,發現只要將 Error 複製貼到搜尋當中就會有成千上條答案告訴你如何解決,因此出現Error其實不可怕只要肯搜尋就能找到答案
我最常去的網站就是 Stack Overflow,通常你複製 Error 找到解決方法的都是這個網站,畢竟你遇到的問題肯定也一堆人遇過了,所以在這裡肯定可以找出解決問題的答案。接著,我認為學習程式語言最有趣的地方就是培養找出答案的能力,有時候你腦袋會有想達成的目的,但是你不知道如何透過程式語言來完成,那就 Google 吧,然而是否能達成目的就是取決於你輸入關鍵字或搜尋的能力了,我覺得這個能力隨著時間演進不斷的練習是可以慢慢培養的,因此只要大家不要害怕嘗試,最終都可以達成自己想要的目的。
Source: https://www.techapple.com/archives/20575
學習的資源與網站
學習的管道當然有很多種,這篇文章我主要提供的方法與資源,主要都是可以不用花錢,只要透過電腦就能學習,降低大家的學習負擔。
(1) 各套件的文檔
對於各個套件,開發者都會發布文檔,簡單來說就是這個套件所有的功能你都可以在這個文檔當中找到,就像是字典,所有的字詞都可以找到,文檔的功能也是如此,你可以找到該套件所有的函數與使用的程式語法。由於我學習的領域傾向是資料分析與資料科學,因此附上幾個資料科學常用到套件的文檔,讓有興趣的人可以參考。
- Pandas (https://pandas.pydata.org/docs/user_guide/index.html)
- Seaborn (https://seaborn.pydata.org/examples/index.html)
- Matplotlib (https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.html)
- Scikit-learn (https://scikit-learn.org/stable/)
- TensorFlow (https://www.tensorflow.org/overview)
(2) Kaggle
有人說要學習,一開始都是大量的閱讀與模仿,這個網站絕對是我最喜歡的網站之一,因為你在這裡可以下載很多別人提供的資料外,針對每一個資料,都會有作者提供他的程式碼,分享如何分析將進行資料處理、分析,而且這個網站當中很多人都已經是世界各地的資深的資料科學家了,所以你只要肯多看肯定可以學得很快,累積很多分析的技巧與經驗。
Source: https://www.kaggle.com/code/corneliuskristianto/google-ai4code-reconstruct-the-order
(3) 網站與影片
在這個時代網路資源實在是非常豐富,因此我認為即使沒有買書來看,透過這些網站與影片你也可以學習的非常完整。
- LeeMeng (https://leemeng.tw/)
- 台灣資料科學社群 (https://medium.com/twdsmeetup/tagged/%E8%B3%87%E6%96%99%E7%A7%91%E5%AD%B8)
- Keith Galli 程式教學 (https://www.youtube.com/c/KGMIT)
- Hung-yi Lee 李宏毅機器學習 (https://www.youtube.com/c/HungyiLeeNTU)
- Hsuan-Tien Lin 林軒田機器學習 (https://www.youtube.com/c/hsuantien/videos)
- Kaggle (https://www.kaggle.com/)
以上這幾個網站都是學習資料科學非常好的管道,有幾個作者的內容會比較深,因此我覺得每個人可以視自己的情況去挑選適合自己的影片,當然除了以上的這些網站還有許多非常優秀的資料科學網站或作者,大家都可以嘗試去發現,也可以用免錢的方式就獲取到大量的知識。
結語
雖然說每個人感興趣的領域不一樣,我是選擇資料科學來接觸程式語言,但我覺得心態跟學習的方式應該都大同小異,我也沒有想過我一個商學院的學生可以從一開始的Pandas學到了機器學習、深度學習,雖然比起真正的工程師我也沒有到很專業,但多少會運用了,因此我認為所有事情就是要先嘗試,之後就會引發了一連串的連鎖反應也會在過程當中得到學習的快樂進而產生更大的興趣,希望這篇文章能幫助到想要學習程式語言或正在學習程式語言的你
作者:TKH
企業管理學碩士,對 Python、資料科學有滿滿的熱忱,就讀碩士期間開始學習程式語言、機器學習,並於碩士論文使用深度學習 LSTM 進行股價預測。
餐點很好吃,但是份量稍微小了點