如何自學 Python 成為一位數據分析師?心法與馬上可用的技巧

Road: Become a Data Analyst

學.誌|Chris Kang
10 min readNov 1, 2019
Data

這一篇文章,主要是用來記錄我在學習數據分析的路上,想要學習的、想要成長的點點滴滴,以及激勵自己與其他同樣想要學習的伙伴們。

現在回來重新檢視學習的過程,發現繞了非常非常多的彎路,也看到了不少自己學習上的缺陷。希望在這一路上走過的經驗與坑能讓其他一同在這條路上的朋友能少跌進一些坑。

The Rule of Learning Data Analysis in Python:

標題是英文完全是因為我覺得中文的標題看起來好醜 lol,而且 Medium 沒辦法更改中文字型,只能出此下策。

回到正題,這幾個觀念是我在學習過程中踩過的坑,每一個坑都讓我耗費無數的時間才發現癥結。希望本篇文章點出來後,能讓大家在學習的過程中,避免像我一樣重蹈覆轍。

一、學習,永遠都要有一張地圖

隨著知識經濟的崛起,學習焦慮也一直被放大。永遠都有很多號稱乾貨的課程,永遠都有宣稱看完這些,就能夠變成大師的文章跟資源。但,真的嗎?

永遠都要記得,網路上的許多資源不是為了提醒你還有多少沒學,那些資源只是機會,只是告訴你還可以怎麼做。我一開始就一直犯這樣的錯誤,把所有機器學習、統計、Python、SQL 的資源都蒐集起來,但最後真的有用到嗎?其實少之又少。

那可以怎麼做?其實很簡單。

首先花十分鐘的時間搜尋像 Python、數據分析、機器學習等關鍵字,把有人整理過的文章連結全部存起來,但先不要看。直到時間到之後一次瀏覽,並整理成一篇學習路徑,但不要花太多的時間做規劃,大概半個小時到一個小時就夠,開始學比較實在。

其中,參考課程需要考量這三個因素:

A. 課程的完成時間

太長的課程又放好幾個,絕對會讓你很快就放棄,一開始先從簡單、比較短又容易有成就趕的課程開始。等到確認自己開始產生成就感後,再慢慢拉長課程的時間。

B. 課程內容的難度

大致瞭解課程的語言、難度與內容大致上落在什麼難度,再來思考自己的時間是否能完成這樣的課程。

C. 學習調整與反饋

這個步驟,是裡面最重要的一環。在開始一小段時間,開始感覺到學習的過程有難度後,可以停下來思考下面這些問題:

  • 課程難度有沒有略高於我現在的能力?會不會太簡單?
  • 這堂課值不值得我花時間完成它?完成它需要多少時間?
  • 我現在的程度到哪裡?能不能獨立製作出網路上的一些實戰案例?
  • 我在學習的過程有遇到哪些困難或繞遠路?之後可以怎麼克服與避免?

甚至在思考後,能夠把這些反思放到部落格上會更有幫助。相信我,你會很感謝你在學習的過程有這些反省,幫你省下大把大把時間與焦慮。

慢慢來,比較快。

二、實戰永遠大於跟著課程學習,永遠

一開始學習時跟著課程學習,會有種踏實的感覺,特別是隨著時間一堂一堂地把內容完成,會漸漸有成就感;然而也會漸漸蒙蔽自己的認知,誤以為自己已經能開始獨當一面進行分析了。

越快知道自己的實際能力越好,直接使用實際的公開數據(如 Seaborn 、data.world 的數據庫)進行一些很小很小的分析專案。例如學會如何繪製變數相關性的熱力圖,或是對數據量較少的樣本進行 bootstrap 進行假設檢定,都是實際檢驗自己是否理解的好機會。

我自己一開始是透過 DataCamp 上課,隨著時間把 Data Analyst in Python 逐漸上完,內心的成就感也越來越高。然而實際上很多觀念都似懂非懂,直到自己真的進行一次真實數據的分析小專案,才瞭解自己其實什麼都不懂。

所以,務必在學習完之後,自己開個小專案分析一下。可以的話還能上傳到 GitHub 上,並用 ReadMe 來說明此次的分析概念會更好。一開始會覺得浪費時間,但是後你會感謝你自己曾經這麼做過。

二、比起急著開始下堂課,先做個筆記吧

節錄自 iFuun 網

在大腦認知領域裡,能夠講述的給他人學習的效果達到 90%;但不是每一次都有人讓你教,所以在寫程式或分析的過程中,最好的方式便是實踐,筆記一次整個流程就能學會 75% 的內容。

筆記,便是你實踐的過程中,最簡便的方式。

我自己是到中期才發現寫部落格對學習的好處。對我最主要的幫助是:

  1. 如果我根本不懂,我在寫的時候就知道自己根本不瞭解。
  2. 日後如果遇到一樣的問題,回去複習一下記憶馬上就回來了。

這裡舉個例子,我過去每一次重新整理我的 Macbook Air 時,只要重灌就會遇到需要設定 iTerm 2 + Zsh 的問題,每次的設定總是燒掉我大量的時間在找資料、測試,以及不停地 try and error。

最終,我寫了這篇 MacOS 的 Terminal 大改造 iTerms + Oh-my-zsh 全攻略,省了我大把大把的時間回去找資料,同時也記錄我認為必要的套件,不用擔心會忘記重裝,豈不是一石二鳥?

四、挑戰永遠都要比自己懂的還難些,但不要越級打怪

Photo by Donovan Reeves on Unsplash

在瞭解 SQL、Pandas 和 matplotlib 跟 Pyecharts 等一些常用的套件後,我開始想要開始學習機器學習等更酷炫的技巧。因此我直接就找了一些機器學習的書籍開始啃,最後當然是半途而廢。問題出在哪裡?

因為這些書本提供的方式,已經超過我目前的能力,當然每一刻都是煎熬。更慘的是不僅沒有成就感,缺乏基礎的情況下所學的內容也會完全不牢固。

別擔心別人好像已經學了很多、很厲害。大師也是這樣一路跌跌撞撞地走過來的,他也當過普通人。

這個概念,其實就是刻意練習的白話版。但我更想強調的是,學習的過程不是一個是或否的過程,不是你會這個你就是 Data Scienctist,不會這個就不是

而是你只要多學一點、進步一點,你就成為了一個更好的 Data Scientist。

況且在學習的路上,決定一個人能不能成為大師的條件,除了學的快不快之外,大部分的人真正的關鍵其實在於––––能不能堅持下去

Start to become a Data Analyst: The Actual Way

說了心法與採坑筆記後,接下來介紹的課程,都是我自己親自上過,覺得特別有趣且實際的內容,供大家參考與嘗試:

Learning Path Ref:

一、Python & Pandas 推薦課程

我個人就是狠下心把整個 Track 都幹完,裡面包含了各種 Python 基礎、SQL、Pandas、numpy 等五花八門的內容。以下就說一下 DataCamp 的優缺點。

綜觀來說,DataCamp 對於沒有程式基礎的初學者提供了很好的學習環境,該網站主要有三個優點:

  1. 互動式的學習:能夠即時獲得輸入作業的反饋,能繼續堅持下去的成就感都來自於此。
  2. Track 學習路線:提供學習者按部就班的學習路徑,搭配許多的練習能夠在短時間內,大致瞭解該語言與套件的使用方式(注意,是大致上的功能),能夠很好的基礎入門 Data Analysis 的基本技術。
  3. 實際的 Project:這也是最吸引我想要繼續使用 DataCamp 的原因,他的專案提供了實際的數據與說明,能避免一開始從 Kaggle 上挑戰的那種茫然,也能大致瞭解分析的基本思考流程。

但一個學習方式不可能都只有優點,因此就要來說說 DataCamp 的缺點啦!它最主要的問題有兩個:

  1. 重複的習題過多:很多習題在一開始認識該語法時能快速上手,但在內容較簡單的狀態下,很容易就會感到無聊。
  2. 過多的引導:在 DataCamp 裡面的習題通常都會有像「___」的底線,加上每行要輸入 Code 的位置旁也有 hashtag,說明該行程式碼要寫出什麼功能,久而久之就會依賴說明,而忘記思考「為什麼」要這樣寫,與「什麼時候」可以這樣寫。

另外我也附上網路上評價不錯的 Python 課程,但我自己沒有上過的資源:

Excel 的基礎技巧

基本上一定要掌握的莫過於像 Pivot table、vlookup、SUMIF……等網路上一搜尋一大堆,瞭解怎麼實際應用即可,當然如果能夠會 VBA 更容易事半功倍。雖然我後來學會用 Python 後,就沒再使用過了…

當數據量破十萬後,Excel 跟 Python 的速度不是同個等級,我四年前的 Macbook Air 8G RAM 一樣可以處理數百萬筆的數據(當然不要太多列),而 Excel 光開檔案就崩潰了…。

Business Intelligences Software

由於我目前只用過 Tableau,故只介紹 Tableau 的課程:

目前正在上 Coursera 上的課程,到目前為止的感覺內容挺完整,不單單只是教你怎麼用 Tableau,更多的是關於數據分析的思維,很值得瞭解如何從實際的數據來分析並詮釋數據。

Machine Learning 機器學習

因為我才剛接觸一部份的 ML 內容,所以現在還算是比較基礎的課程。

這個系列的課程很有趣,一開始就直接用 Turi Create 的套件,簡單帶我們瞭解機器學習怎麼實際解決一些 Case。所以在啥都不懂的情況下,你就已經實際操作過機器學習的概念了。有了概念,剩下的就是再依賴其他比較困難的課程繼續學習下去。

剩下的課程也都是評價不錯的 ML 課程:

In the end, What would I want to say:

在學習的過程中,我其實深刻的感受到這是一條很漫長的路,也不是單純修幾堂課就能學會並融會貫通;但我相信自學的概念,不僅僅是利用網路上擁有的資源,更多的是要想辦法自己去尋找資源,去達到目標。

如果你很用心的看完這篇會繼續寫下去的文章,希望你也能繼續學習並堅持下去,成為一個你想要成為的人,相互勉勵之。

如果你在學習的路上感到孤單或想要有人陪伴,都歡迎留言聊聊,甚至可以一起切磋進修!

謝謝你/妳,願意把我的文章閱讀完

如果你喜歡筆者在 Medium 的文章,可以拍個手(Claps),
也歡迎你分享給你覺得有需要的朋友們。

--

--

學.誌|Chris Kang

嗨!我是 Chris,一位擁有技術背景的獵頭,熱愛解決生活與職涯上的挑戰。專注於產品管理/資料科學/前端開發 / 人生成長,在這條路上,歡迎你找我一起聊聊。歡迎來信合作和交流: chriskang0917@gmail.com