menu
Anki 進階

用 Anki 加強專業能力

忘的少就是學的多

研究所時,我接 case 寫資料庫後端程式,寫著寫著遇到一個「從來沒遇過」的問題,但是上網查了之後卻覺得好像「有一點點印象」,翻出以前記錄在 Evernote 的內容後很驚訝的發現,這跟我一年前做作業遇到的問題「根本一模一樣」

這帶出一個很殘酷的事實:即便我們有將這些學習的筆記給「紀錄」下來並妥善「整理」,但隨著時間消逝,我們會漸漸忘記筆記的內容,最後連「有記錄過」這件事都忘記了!

各位讀者上課時或多或少都會記些筆記,不妨將這些筆記拿出來瀏覽一下,即便是一兩個月前的筆記,很多地方可能已經不知道在些寫什麼;若是一年以上的講義,更會有種「為什麼有人要模仿我的字跡,這真的是我寫的嗎?」的感覺。

亦或請讀者打開自己的 Evernote 或 Pocket,翻翻看以前紀錄的筆記或暫存的文章,有沒有一種「啊~以前好像真的有記錄過這個東西。」的感覺?

若沒使用過上述工具也沒關係,請讀者打開網頁瀏覽器中「我的最愛」連結看一看,你是不是曾經為了學英文而將 VoiceTube 或是其他網站加入我的最愛?有沒有覺得某些網站好像很久沒看過了?有沒有感到很懷念?

所以,很多時候我們不是沒有將重要資訊記錄起來,也不是沒有把重要資訊整理好,而純粹是「忘記」我們做過這些事

學如逆水行舟,不進則退。 - 諺語

學如逆水行舟,不進則退,因為學習的過程除了「誰學的多」外,「誰忘得少」更是左右學習成效的關鍵。因此,為了讓筆記的學習成果最大化,非常建議讀者將重要的專業知識也加入 Anki,利用其高效率的演算法來協助你學習。

Anki 知識資料庫

用 Anki 來當作知識資料庫跟用 Evernote、OneNote 等工具其實十分相似,新增、修改、搜尋內容都很方便,同時也有跨平台、雲端同步的特性。但 Anki 有個非常大的優勢:它會用 Spaced Repetition 演算法自動將這些專業知識卡片定時秀給你看,就跟背單字時一模一樣,即使我們想忘記都難。

將「專業知識」加入 Anki 時,一樣請把握者幾個大原則,不一定要完全符合,但值得參考:

  • 卡片的開頭應明確指出要傳達的知識重點/關鍵字。
  • 一張卡片只紀錄一個要學習的知識。
  • 如果一張卡片有一個以上的知識,將其打散成多張卡片。
  • 一個卡片長度應該在 1~5 行,超過表示有切割空間。
  • 一個卡片應該在 10 秒內理解,超過表示有切割空間。

而知識資料庫的卡片內容主要分為兩種類型,一種是需要記憶的(跟背單字一樣),另一種則是有印象就好

「需要記憶的東西」我想大家應該都能理解,例如三角函數、化學分子式、拉普拉斯轉換等等,我自己覺得考試考這些很沒意義啦,但如果教授都說要考了,你就用 Anki 把它給背起來啊!

「有印象就好的東西」就是你不用刻意去背,但是你希望可以長久擁有這些知識,大部分專業能力的卡片都會屬於此類。

上述這兩種分類只是一種概念,你不需要真的在卡片上面註明這是「需要記憶的東西」或這是「有印象就好的東西」,某張卡片內容是否需要背誦,這在你看到卡片內容時自己內心就能決定了。

例如你在上工程數學課程時,看到 拉普拉斯轉換 的卡片,因為期中考會考所以你要背誦其公式,所以它現在屬於「需要記憶的東西」;但是在你畢業之後,它就變成「有印象就好的東西」,當你再看到拉普拉斯轉換的卡片時,你不用背誦其公式但要回憶一下「這個轉換可以解決什麼問題」,這樣當你以後遇到某些問題,就會記得可以用拉普拉斯來解。

「既然不用硬背,那還記錄幹嘛?這些東西上 Google 查就可以查到了啊!」

這句話對一半,但是也錯一半。紀錄在這個「知識資料庫」的內容是你以前就「理解過一次」後「整理過」的東西,上 Google 當然也查得到類似的內容,但是你又要再重新理解一遍,就跟 少一個插座 一樣,很不方便。長久下來不僅重複浪費時間與精力,而且會覺得「奇怪,這個之前已經學過了怎麼又忘記了」而懷疑自己,並降低自信心。

如圖,Anki 是我的知識資料庫。

妥善分類

我們提到「一張卡片只紀錄一個要學習的知識」,但是「一個專業主題可能包含很多知識」,所以一個主題會需要多張卡片來配合。以下這些技巧可以有效協助凝聚主題,方便搜尋與連結知識。

1. 階層牌組

Anki 可利用「牌組」「階層牌組」有效將知識做分類,詳細用法請參考《英、日語同步 Anki 自學法》書中的 Anki 教學章節第 73、115 頁

2. 標籤

另一個好用的東西是「標籤」。例如我有兩個牌組,一個是 Ruby on Rails,一個是 JavaScript,裡面都各有一個實作 AJAX 的範例卡片,此時我將兩張卡片加上 AJAX 這個 TAG,如此一來,當我要找有關 AJAX 的資訊時,可直接透過 TAG 來尋找,不會因為他們分別放在不同牌組而找不到。詳細用法請參考《英、日語同步 Anki 自學法》書中的 Anki 教學章節的第 79、80 頁

3. 自定義標籤

自定義規範標籤其實就只是「標籤」,只是你刻意將這些標籤指定為「特殊意義」。舉例來說,有些卡片我覺得內容編排不是很適當,有待修改,但又懶得現在修改,於是我將這些「待整理」(太長、不夠精簡等)的卡片 TAG 欄位填入 TODO,這樣我之後就可以透過在 TAG 欄位輸入 TODO 來快速找出這些卡片。這個想法源自 Eclipse 的 TODO, FIXMEstub

4. 其他活用方式

例如我會將一些寫程式時常用的 Snippet 放入 Sublime TextEclipse 內,但同時也會放一份製作成 Anki 卡片,並加上標籤來分類,如 snippet_scrapy, snippet_react, snippet_gulp 等,以讓自己對這些 Snippet 保有印象,才不會每次都忘記自己有這些 snippet 可用。

5. 指向其他工具

有時候某些主題的知識量太大,無法做適當切割;亦或正學到一半,對整個主題還沒有充分了解,無法有效率地製作成卡片;此時可以先將這些知識放在前述 Evernote、OneNote 等工具內,接著在 Anki 卡片內去 reference 到該工具,也可以達到一定的複習效果。

總而言之,不要忘記 Anki 或其他工具都是屬於你自己的知識資料庫,請依照自己的需求與使用習慣來做收納。

卡片範例 - 解說

下面直接以實際範例來看我如何將專業知識加入 Anki 卡片中,由於版面限制,我將卡片內容不分正反面打在分隔線上方,分隔線下方則是說明。

CIDR (Classless Inter-Domain Routing):
139.175.152.254/255.0.0.0
192.168.1.1/255.255.255.0

equals to Net Mask:
139.175.152.254/8
203.56.6.18/24


紀錄 CIDR 以及 Net Mask 的知識。

iframe request

header("X-Frame-Options: DENY");
header("X-Frame-Options: SAMEORIGIN");
header("X-Frame-Options: ALLOW-FROM http://..");


網頁可以透過 iframe 來插入外部網站,但這可能會被惡意使用產生 clickjacking 風險,因此建議設定 X-Frame-Options

.htaccess

acts as a subset of the server's global configuration file for the directory that they are in, or all sub-directories.


紀錄 Apache Server.htaccess 檔案 的目的。

Cookies are primarily for reading server-side. LocalStorage can only be read client-side.

Cookies are sent with the HTTP header. LocalStorage stays on the client.


紀錄傳統 Cookies 與 HTML5 LocalStorage 的差異與使用時機。

Homebrew is a package manager for OSX analogous to yum, apt-get, etc

Homebrew installs packages to their own directory and then symlinks their files into /usr/local.

  • brew install wget
  • brew doctor

提醒自己在 OSX 環境內可用 Homebrew 來做如同 apt-get 或 yum 的套件管理。

The same-origin policy restricts how a document or script loaded from one origin can interact with a resource from another origin.

Two pages have the same origin if the following are the same for both pages.

  • protocol
  • port
  • host

紀錄 same-origin policy 的規則以及限制。

  • git clone
  • git commit
  • git status
  • git remote
  • git revert
  • ..

紀錄 Git 的各種基本指令,這是屬於比較統整形的大範圍卡片。大卡片的用意在統整複習,掃過這張卡片的所有指令時,在腦海中回憶它們的用法與目的。

  • /usr
  • /etc
  • /lib
  • /dev
  • /mnt
  • ..

紀錄 Linux FHS 的架構,了解那些資料要放在哪裡。這也是屬於統整形的卡片。

寫 Python 時務必確認是在正確的 virtualenv 內,命令列面要有 (虛擬環境資料夾名稱)。
source env/bin/activate
deactivate


有時我們會需要不同的開發環境,用 Virtual MachineDocker 感覺都有點 Overkill,此時可以用 Python VirtualenvNode.js npmRuby rvmPHP Composer 等套件管理工具來加速開發。

  • Margin
  • Border
  • Padding
  • Content

box-sizing: border-box;


紀錄 CSS 的 Box Model 以及 box-sizing 概念,記起來後非常實用。

CSS 屬性為順時針配置

margin: 25px 50px 75px 100px;
margin: 上 右 下 左
margin: 25px 50px 75px;
margin: 上 左右 下
margin: 25px 50px;
margin: 上下 左右
margin: 20px;
margin: 全


如標題,提醒自己 CSS 屬性為順時針配置,在快速修改 CSS 時非常實用。

帳號密碼都正確卻連不上 DB 時,檢查該帳號是否只能從 DB 的 localhost 登入。可以用 root 更改該帳號的這項設定。

但有些 shared host 的 cPanel 會鎖定 phpMyAdmin 的這項設定,使用者無法直接在那邊調整。相對的,使用者必須從 host 提供的 Remote Mysql Database Access 頁面將自己的 IP 加入白名單。


記錄自己實際遇到的問題,有些 Shared Host 會將使用者的 phpMyAdmin 部分功能給鎖住,造成帳密正確也登不進 Database,此時可到其 cPanel 修改設定。遇到問題就記錄起來,之後再遇到就知道怎麼解決。

REGEX

  • [aeiou]
  • [a-z0-9]
  • [^XYZ]
  • [0-9A-Fa-f]

Special characters lose their special meaning inside sets []. For example, [(+*)] will match any of the literal characters '(', '+', '*', or ')'.


紀錄基本的 Regular Expression 語法,開頭加上 REGEX 是為了優化搜尋,這樣之後在 Anki 直接搜尋 REGEX 就搜的到這張卡片。

javascript 以前沒有 Ruby's require 或 Sass's @import

  • CommonJS:module.exports 與 require()
  • AMD:define(),為 async
  • ECS 6:export 與 import

A library capable of supporting all of the current "standards" is said to support Universal Module Definition.


ECMAScript 6 以前沒有預設 import 或 export 方法,所以就有 CommonJS 的 require() 與 AMD 的 define();後來 EC6 生了 import 與 export,於是就把符合以上三種方法叫 UMD

卡片範例 - 截圖

大概就是這樣,各位讀者有抓到一點感覺了嗎?或請參考下面截圖範例。

此區圖片眾多,由於您目前使用的裝置螢幕太小,為節省資源不予顯示,請使用電腦觀看。

卡片範例 - 影片

用 Anki 加入專業知識範例影片。

Anki 結論

我認為一個完整的學習流程應該是:

  1. 上課時專心學習並盡可能當下吸收,同時以筆記快速紀錄知識。
  2. 下課後整理筆記進入《第二手工具》Evernote、OneNote、寫成網誌等等。
  3. 最後再將其中的重點濃縮並整理進入 Anki,利用 Anki 高效率演算法加強複習。

這套學習流程非常有效率,練起來之後你會變得非常強,請讀者盡可能把《英、日語同步 Anki 自學法》書中第 46 頁的電腦快捷鍵記熟、並加強自己的打字速度,因為你這些能力越強,輸入筆記的速度就越快、整理筆記的速度就越快、新增 Anki 卡片的速度就越快,學習效率自然就越好。就算你沒有打算使用這些工具,加強這些能力依然會是你在未來數位時代不可或缺的競爭力。

如果你有的只是一個錘子,那麼所有的東西看起來都像一個釘子 Abraham Kaplan -馬斯洛的錘子

話雖如此,但 Anki 也不是做什麼都適合,它還是有擅長與不擅長的地方,不要對它過度依賴。請回憶我之前跟你說過的,選擇一個工具,是因為你用過後覺得它適合你,而不是因為別人告訴你它適合你。

但是,如果你目前還沒有一套熟悉的學習工具,請直接試著使用 Anki 吧!不要再尋找其他工具比較來比較去了,不要再陷入「該用什麼工具」的迴圈,否則你永遠無法開始學習。等到你 Anki 用久了用習慣之後,自然就會知道它的優勢與弱勢,到時候再來配合其他工具即可。

更多 Anki 資源

更多 Anki 資源

中文資源:

英文資源:

原梗來源

原梗來源(書)

第 73 頁 新增卡片範例:「彥伯問臍 - 比喻在行家面前賣弄本事,不自量力。」
原梗來源 彥伯問臍 ,形容陳彥伯不自量力之問政行為。
第 79 頁 新增卡片範例:「共體時艱 - 無薪假能讓員工與公司共體時艱,應該得諾貝爾獎。 」
原梗來源 吳敦義稱讚 設計無薪假應得諾貝爾獎
第 80 頁 新增卡片範例:「我很滿意貴公司提出的薪資水準。」 反面:「I like to eat banana very much. 」
原梗來源 諷刺「依公司規定」的薪資常態, 只付得起香蕉的公司自然只請得到猴子
第 84 頁 插入圖片範例:「鹿茸 - 鹿耳朵裡的毛」
原梗來源 馬英九說: 鹿茸是鹿耳朵裡面的毛
第 88 頁 同步小穹、切換個人檔案艾米莉亞
原梗來源 高捷少女
第 120 頁 回復上一動!搞什麼東西啊?怎麼又是你?就你最特別!報學號!
原梗來源 成功嶺