自主學習 |用卡片盒筆記法從零學數據科學實作紀錄

用筆記 自主學習 ,1 週學懂一個陌生領域的學習駭客法

清朝古台灣地圖,用這張地圖去航海( 自主學習 ),活著回來的機會不高(Credit:故宮博物院)
清朝古台灣地圖,用這張地圖去航海(自主學習),活著回來的機會不高(Credit:故宮博物院)

身為企劃人,我在計畫期間收集數據、計畫後以數據提出報告,多年來都是數據重度使用者,但我只靠研究所熱愛的《研究方法》支撐,沒有特別去學,現在,數據科學已成一門專業,我決定靠【 自主學習 】數據科學升級大腦。花了 1.5 週獲得 2 張高分通過證明,分享卡片式筆記法如何從零學習未知領域。

學新事物就像去未知土地,有兩種狀況:

  • 第一是探險:你要去人類未曾到達的領域,為它畫出第一張地圖,身為領域先鋒,你一定有自己的學習方法。
  • 第二是旅遊:多數人是去別人去過的地方,首先找地圖,從前只能找到歪歪斜斜帶有海妖那種令人狐疑的地圖,而現在打開電腦有各種地圖,卻不一定符合目的,如何從多張地圖拼湊和猜測實情呢?這是本文要分享的心得。

市場調查

看別人怎麼說,理出框架

數據科學是什麼?一無所知的我只能 Google 搜尋,看了一些人說,粗淺理解如下:

數據產業雖然新,也不小,不是一個人能搞定的,它有不同角色,從數據取得、分析、建模,大致分工方式如下:

  1. 數據工程師(Data Engineer):開發和維護數據管道(Data Pipeline),從不同來源取得數據,放進數據庫或數據倉儲
  2. 數據科學家(Data Scientist):統計分析、機器學習…、訓練模型、建模…需要數學和統計背景
  3. 數據分析師(Data Analyst):有商業分析背景,懂分析工具、數據可視化,協助商業決策

自我盤點、找目標、訂策略

每個分工都有一棵不小的技能樹,部分重疊,以我的基礎不可能統包,所以要選方向,我問了自己 2 個問題:

問題一:我能做什麼?盤點自身技能:

  • 商業:媒介經營管理碩士,科班出身,多年工作經驗在企劃、創業、撰文,長期與商業接觸,我對商業的理解,在三者中算「高」。
  • 程式:10 年前學過 Java,太難又用不到荒廢了;5 年前自學 Python,看懂程式碼、可刷題,但還沒到可以實用來工作的程度,自評「中」。
  • 數學:如同很多人,我數學沒信心,雖然它邏輯清晰,可以慢慢理解,但學生時受到的傷害不小,雖然最近教孩子學習時覺得數學沒這麼可怕了,但還是評了「低」。

個人技能總結:商業:高/ 程式:中/ 數學:低。

問題二:我想做什麼?搞清楚目的

身為企劃人,我會得到數據,(簡單)分析後把結果和建議放在計畫或報告中,通常是 Word、Excel、PowerPoint 形式,我的需求是「以數據分析技術提高計畫的參考價值」。

  • 數據工程師需求:商業:低/ 程式:高/ 數學:中。
  • 數據分析師需求:商業:高 / 程式:中/ 數學:中。
  • 數據科學家需求:商業:高/ 程式:高/ 數學:高。
技能自我盤點數據科學家數據分析師數據工程師
商業
程式
數學
從上表看出自我盤點與數據分析師比較接近,要補的較少

訂定 自主學習 策略

分析後,我應該先朝「數據分析師」訓練著手,除了對工作立刻有幫助,要花的時間也比較少,身為工作者,不能像學生一樣花個幾年準備吧!

這是我暫定的策略:

  • 商業課刪除:比起年輕大學、碩士畢業生,我的商業分析知識經驗已經太多了,這可以刪除;
  • 程式課快補:看起來每個工作都需要 SQL 和 Python,學程式總會碰到 SQL,但沒特別重視,畢竟數據取出程式就可以操作了,高等的 SQL 跟 Python 重疊,但如果是數據專業就要學深一點,也許它有很厲害的地方?而 Python 是個包天包地的多面手語言,要學會辨識哪些是這個領域需要熟練的;
  • 數學課慢補:身為小時候很笨,越大成績越好的學生,我基礎數學有不少洞,而數學這棟大樓可不能是軟腳蝦,底下垮了上面也站不穩,但又不是一簇可及,需要時間,要先找到速成的方法,再在閒暇時慢慢補洞。

這就是我的評定標準(Criteria),用來篩選搜到的數據。

細化學習需求

如果你像我一樣有個很忙碌常加班的全職工作,你想到的一定跟我一樣,要省時!如何能在最短時間學到最實用的本領?

  1. 學校課表和線上學習平台:學術單位會列出「完整」技能樹,這種統包課什麼都學花幾個月,但實務上只用到一小部分,不常用的一陣子就忘了,費時又費錢。
  2. 搜尋專業的人怎麼說:網上文章、影片作者從他的實務講所需技能,或許產業不同,雖然看似近似,但重點相異;有好心前輩把所有領域技能都列出 Coursera 相應課程,對想簡化的人來說,完整列表最沒用了。
  3. 最實際的是企業:很少老闆想要員工會「所有」技能,他要的是實戰技能(如果企業經營國軍,一定會刪除「刺槍術」),我決定去分析企業招聘的工作內容(JD, Job Description),這些就是企業界的「必要」技能。

看了十幾個 JD,把結果輸入 Google 試算表,因為我小白,工程類 JD 充滿術語,看不太懂,查出意思,也不知在實戰中的角色。雖然看不懂,這一輪分析至少看到幾個關鍵字:SQL、Python、Pandas、視覺化、數據清理、AB Test,好吧!至少這是共通部分,先從這裡選擇。

因為自學 Python 時心曠神怡的經驗,對 Python 比較不怕,但看似重要的 SQL 反而很陌生,決定從它開始!

Coursera 課程平台的特色是學不要錢,領結業證書要錢,像試用到爽才付費,我發現一門「用 Python 操作 SQL 和資料庫」(Databases and SQL for Data Science with Python)課!對要省時的我來說,這個「一兼二顧,摸蛤子兼洗褲子」的課程,學 SQL 又同時複習 Python,正是我的需求!

我很急,5 週課程只花 5 天就完成,每個測驗幾乎都滿分,表示我的學習效果不錯,早知道該付費拿證照!

自主學習 和 被動學習 的筆記差異

在學校時有很多機會從零學起,但那是我還不認識卡片盒筆記法(Zettelkasten),離開學校就少有從零學起的機會,多在既有基礎上持續加新資訊,像滾雪球越滾越大,所以是我第一次用 ZK 實踐「從零學起」,結果是這樣:

  • 學習費時是課程計畫的 20%
  • 學習效果達到課程測驗的 100%

我覺得效果很好,所以分享給你。

被動學習的筆記結構

小時候所謂筆記,是照老師的教學結構抄,第一課、第二課…,課本提供了基本素材,而我的筆記是把老師講的而課本上沒寫的速記下來,這種筆記很有點「逐字稿」的味道。

如果這一次還是這樣抄筆記,那結構會是這樣:

  • Week 1:開始學 SQL
  • Week 2:介紹關聯式資料庫及資料表
  • Week 3:中級 SQL
  • Week 4:用 Python 操作 SQL
  • Week 5:課程作業

這樣的筆記,主軸是老師的架構,上 20 門課就有 20 種不同架構,當然就有 20 本筆記,厚厚一疊看來很有成就感,老師教什麼我學什麼,就是「灌食法」(填鴨式教育)的被動學習,主人餵什麼就吃什麼,主動權在老師。

但當我實際在工作上遇到問題時,卻想不起來到底要從哪一本裡找到參考答案,因為每個老師都把 Data Analyst 這個領域的知識用他的方式規劃成不同課程,那麼每個課程講的應該是大同小異,遇到問題時,覺得每一堂課似乎都有講到這個內容啊!就很難找到了。

自主學習 的筆記結構

在電腦上做筆記沒有「本」的概念,前者,我會為每一門課開一個筆記,後者則把所有的筆記記錄在同一篇裡。

心裡對要學習的領域帶來「問題」,再去找素材獲得「答案」,像野生動物,想吃什麼就去打獵,主動權在我,既然學習專案中所有學習都是因為想了解「Data Analyst」,那筆記應該也只有「一本」,而且未來對這個領域所有的答案追尋過程,就算上了一年課程,都是筆記一章節。

拿這堂課來說,它主要談 SQL,Python,和 Jupyter SQL Magic,我梳理它們之間的關係:

  • SQL:它是資料庫共通語言,用它從資料庫提取、存入資料;
  • Python:資料取出由 Python 語言組合、清理、分析、運算,再用 SQL 存回資料庫;
  • Jupyter:業界常用的 Python 工具,為了 SQL 設計一套方便指令叫 SQL Magic。

老師把課程拆成 3 部分傳授,而學生要把這 3 部分組合起來,少一塊就無法作業。

管理大師的筆記法

我曾讀過大師的管理學教科書,厚達三四公分,就是大師一生對管理學的理解,比如我讀到「系統動力學」時,發現書店裡這主題有好幾本專著,甚至還有五六套專用軟體,但在教科書中,只佔一頁!

我猜,大師研究系統動力學時想「這要放在知識樹的哪裡呢?」,所以把專著中有創見的部分,用他自己的話重述成一頁,寫在他的知識樹中。

卡片盒筆記法就是這樣,同一主題只有一篇筆記(可能內含千張卡片),如管理學大師一生所學就是「一本」筆記,而累積足夠時出版,就是一巨冊教科書,當這部筆記充分回答當初他從事管理學的提問時,他就成為大師了。

當然不是說管理大師很貧乏只記一本筆記,假設他閒暇愛釣魚,可能寫另一本《釣魚》筆記,但說不定與管理學高度重疊:例如,(我胡扯的)大師用管理學市場調查方式分析漁場後,漁獲量增長 30%…。當你深刻了解一門,一定影響你其他門,如果彼此不相連,說明沒學好。

課程筆記的結構就變成:主軸(樹幹)是我想回答的問題,而筆記(樹枝)是我從不同來源取得的答案,兩者組合起來,就是我對該領域的了解。

  • SQL
    • SQL 工具
      • 課程A筆記
      • 課程C筆記
    • 資料庫種類
      • 課程B筆記
  • Python
    • Python 工具
      • 課程A筆記
      • 課程B筆記
    • Python 操作 SQL 指令
      • 課程A筆記
      • 課程C筆記
  • 資料分析流程
    • 資料取得
      • 課程B筆記
      • 課程C筆記
    • 資料分析
      • 課程B筆記
    • 分析結果視覺化
      • 課程C筆記

上述筆記只回答了我一部分的疑問,整個我想到的如下面這樣。

技術課程學半年,其實只是數據分析的「技術」那一小塊

我從網上課程學到的技術「數據產業 3 大件兒」(SQL、Python、JupyterLab,取個名字比較親切),但它應該只是一小塊。

身為常被老闆問問題的企劃人員,我相信數據分析會從「問題與假設」開始。例如,老闆會問「如何提高啤酒的銷量?」,你想出可以分析發票,把與啤酒一起買的商品列出比例,兩者放在一起提高啤酒銷量。要經過思考,你才能有這個假設。

接下來你要「找到數據」回答問題,公司內可請資訊部幫你把最近幾個月發票數據調出來。但也有很多外界數據要想辦法取得,這一定是各顯神通。

發票很規範,但很多數據需要「數據清理」把髒的數據變乾淨,不然會出錯。例如:會員網站要求填生日,有人寫 2000/1/2,也有 2000-01-02、02 01 2000、Feb-01-2000、20000102、民國89年1月2日…,這下糟糕了,你要把它們整理成相同格式,不然程式不認得。

現在你終於可以進行「數據分析」了(上課學到的內容),例如把 1000 種商品跟啤酒比,發現「30% 有啤酒的發票中也有尿布」。

分析完成,要把它們變成美美的圖表,是「數據視覺化」,這部分有專門的課程。

最後,你要用「數據說故事」,用圖表跟 Stakeholders 說個有說服力的故事,它們才知道到底發生了什麼事。例如你猜想情境是「老婆叫老公去買尿布,老公順手帶一手啤酒」,所以建議把啤酒跟尿布放在一起,提醒所有老公別忘了買啤酒啊!

啤酒與尿布是個有名的案例,不是我創造的。

我並不只想知道「Data Analytic 用什麼技術工作」,我想知道他的工作情境,從上面的流程中,課程教的「數據產業 3 大件兒」只佔了非常小的一部分,其他的問題還不知哪裡有解答。

就像如果你想懂得行銷,不可能只會投放 Facebook 廣告,要有宏觀認識。

不停反芻筆記

既然一個學門只有一本筆記,那它一定不像買來的書早就編好頁碼,它是活的、不停變動,隨著你理解越多長出更多樹枝、樹葉,需要不停重整。

寫程式有個術語叫「重構」(refactoring,改善既有程式的設計),筆記上也很適用,例如:

  • 課程用一個專案教學,用到很多「語法」,而每個語法都有使用「情境」。
  • 語法不配情境很難看懂,但語法跟情境描述混在一起不好搜尋,我希望記性差的我,可以有效在筆記內查到要用的語法和情境。
  • 於是我把散佈各處的語法都剪貼到同一節,再從專案筆記連結過去,以後查詢「語法」可連到「情境」,查詢「情境」也可連到「語法」。

一天上的課,隔天要花一小時重構,不是很浪費時間嗎?是也不是,因為每次重構都在思考筆記章節的邏輯關係,不但加深印象,而且每次都有新理解,這樣整理邏輯,比背書印象深刻,難怪學習效果好!

ZK 軟體可以用各種不同方式重構,例如:

  • 建立一個「#語法」標籤,建一個 Table 把所有貼上「#語法」標籤的筆記變表格。
  • 怕搜到「語法」還要連到「情境」麻煩?用 Portal 把「情境」筆記貼在「語法」下一層,就不用按下連結了。
  • 聽不懂去網上搜尋解釋,把搜到的網頁、PDF… 用 RemNote Web clipper 或 PDF Reader 嵌入筆記。
  • 我是把課程章節都打散了,如果想把筆記跟課程章節串起來,你可以另外建立一篇筆記列出章節名稱,把章節名稱當標籤貼在筆記段落上。
  • 你還可想到其他方法,每次對它加工,就在整理邏輯,加深印象。
如果你忘了這些工具如何使用,請參考這篇文章

一次次重複迭代

這個「上完課反思」很重要,每次多了解一點點,就可以再進行一次迭代,每一次迭代都可以調整一下課表,就像我發現了下面的迷思:

迷思1: 證照課程需要嗎?

我發現花了 5 天上的《Databases and SQL for Data Science with Python》是 IBM 的一門證照課,如果上完這些課程,會獲得 IBM 頒發的認證。

  • 這種證照課,Google、微軟也都有提供,但上完它們的課程至少都得要半年一年,不符合我的現況。
  • 但假如它可以學到很多,而且變成業界標準呢?上完這些課程也會讓我對情況有更深的理解!

迷思2: 視覺化課程需要嗎?

以我工作多年的經驗,就算數據分析合情合理,但老闆是看不懂的,他會說「你簡單點說」,視覺化很重要。

有 Tableau 視覺化平台,可以畫出美麗的動態圖片,但價格不便宜,我想不是每個公司都願意採購,要達成類似的動態圖片,其實可以用一些 Python 庫,例如 Blotly,免費達成,對新創公司應該受歡迎吧?

於是我買了一堂 Plotly 課程《Data Visualization with Plotly Express》滿分通過。

事實啪啪打臉!

學了一個禮拜,縮寫我現在看得懂了,於是把一週前找的 Data Analyst 工作 JD 重整分析,此時我赫然發現一件事‒‒在我收集的 15 個 JD 中:

  1. 只有 1 個工作要求證照,有的連學歷、科系都不要求,只要求經驗,看來這行業實戰多過理論。
  2. 只有 1 個工作要求要用程式畫圖表,另外 14 個中有 10 個強調要會 Tableau 這個昂貴的視覺化平台!

之前的假設被啪啪打臉,但這是很好的發現,省下更多時間了!

如果不迭代,我可能會悶頭把 IBM 半年課程上完,卻發現只學到技術的那一小塊,可見迭代多重要。

後記

本文試著要以實作說明「摸著石頭過河」的學習流程,如果你學習時覺得難,表示正在突破「舒適圈」大幅成長中,恭喜!如果覺得很簡單,就表示還在「舒適圈」中緩步前進。

如同去爬沒爬過的大山,不仔細可能會發生山難,就小心翼翼,而紀錄、迭代、重構筆記,就是我的小心翼翼,有些領域,特別是科技類,少一小塊就會卡關,然後覺得挫折,然後半途而廢,這是我的經驗。

十年前學 Java 太難放棄,又要學程式,但這次我有卡片盒筆記法這個「種樹神器」,很容易把老師腦中的樹「移植」過來,自學就是腦中長出新樹的過程,ZK 被稱作第二大腦,是因為當我把筆記整理成大腦結構樹時,一面建立了外接大腦,一面也整理了內建大腦,對我來說這個技術很好用,也分享給你。

讓我們保持聯繫

推送 Push:有個資疑慮的您,按下網址列左方「鎖頭」開啟「通知」會收到通知

電子報 Subscribe:在上方框或側邊欄框中訂閱電子報,我會看到信箱,但不會發垃圾郵件。

合作 Cooperation:行銷、課程合作 請到 About 中填寫表單,留言、臉書專頁聯繫也可以

臉書專頁:疑問或聊天,請留言,或到臉書專頁「Simpro 學習控」關注及留言

讓我們保持聯繫

推送 Push:有個資疑慮的您,按下網址列左方「鎖頭」開啟「通知」會收到通知

電子報 Subscribe:在上方框或側邊欄框中訂閱電子報,我會看到信箱,但不會發垃圾郵件。

合作 Cooperation:行銷、課程合作 請到 About 中填寫表單,留言、臉書專頁聯繫也可以

臉書專頁:疑問或聊天,請留言,或到臉書專頁「Simpro 學習控」關注及留言

訂閱電子報

約雙週更新,絕無垃圾郵件|記得到信箱查看驗證信

最有人氣

探索更多來自 六叔觀察站 | Uncle6 Observer 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading