備考復健科專科考試的這段日子,我用工程師的方式幫自己解決了一個老問題:考古題到底要怎麼練,才不會練完就忘?最後做出了一個小工具,叫「題庫領航」,想說整理一下、也開放出來分享給有需要的人。
🔗 線上 Demo(內建示範帳號,開啟就能玩):https://exam-demo.drpwchen.com 🔗 原始碼:https://github.com/drpwchen/exam-practice

為什麼想自己做一個?
準備筆試時,最有效的方式之一就是反覆練歷屆考題,並針對「會錯的」加強複習。道理大家都懂,但實際做起來有兩個痛點。
第一,單純看著題目考自己很容易疲倦,而且你會不自覺一直練「已經會的」,真正的弱點反而被跳過。
第二,「什麼時候該複習哪一題」這件事,靠人腦排程根本排不來。今天練的這題,三天後還記得嗎?一週後呢?沒有人知道,於是只能全部重練,效率很差。
我想起在背英文單字時用過的記憶演算法,心想:考古題不也是一種「要記住的卡片」嗎?於是就動手了。

它能做什麼?
把 PDF 考題變成可練習的題庫。 歷屆考題多半是 PDF,我寫了一條匯入管線,自動把題目、選項、答案切出來,圖片題(X 光、超音波、量表)也會一起抽出來。詳解直接以「該頁截圖」呈現,避免文字辨識誤植選項或答案。

用 FSRS 安排每一題的複習時間。 FSRS 全名是 Free Spaced Repetition Scheduler,是一套間隔重複演算法。它會根據你每次作答的「對錯、信心、花了多久」,推估你對這一題的記憶曲線,然後在你「快要忘記、但還救得回來」的甜蜜點,把它再丟回來給你練。


和科內夥伴一起練。 你看得到同儕的進度,也看得到「大家最常錯的題」。一個人讀書很孤單,知道大家都卡在同一題,反而有種莫名的安心感 😅。

預測你考試當天大概會考幾分。 這是我自己最喜歡的功能。系統會用你各科的正確率、乘上該科在真實考試的配分權重、再乘上 FSRS 推估你「到考試那天」還記得多少,算出一個落點分數,還附上信賴區間,以及「持續複習」和「都不複習」兩種情境的對比。看著預測分數隨著複習慢慢往上爬,是很實在的回饋。


一些設計上的小巧思
做著做著,發現有些細節還滿有意思的:
錯題不是一視同仁。 我把答錯的題分成四種型態:死穴(反覆錯)、易忘(記憶留存率掉太快)、盲區(明明很有把握卻答錯,也就是過度自信)、新錯(最近一次才錯)。你可以只挑某一種弱點來補,對症下藥。

出題用三個池子混。 到期該複習的題 70%、沒看過的新題 20%、自己加星的題 10%,兼顧鞏固舊的跟攝取新的。
選項每次重新洗牌。 避免你背的是「答案在第三個」而不是真的會。
開放出來,但加了一點規矩
我把它整理成原始碼公開的版本,順手清掉了院內的真實資料,換成合成的示範資料,任何人 clone 下來就能看到完整功能。也歡迎其他專科的朋友 fork 過去,改成你自己科別的版本,引擎和排程都不用動,換掉題庫和分類就好。
授權我選了一個比較特別的:非商業使用完全免費,個人讀書、和同學一起練、學校或醫院等非營利單位的教學研究,都可以自由使用、修改、自架。但如果是要拿去商業營利(補習班、付費平台那種),就需要另外取得授權。算是給自己一點保障,也讓這份心力不會被無償拿去賺錢。
寫在最後
這原本只是一個為了讓自己(和身邊夥伴)考試輕鬆一點的 side project,沒想到做一做變成一個還算完整的系統。如果你也在準備某個專科考試,歡迎點開 Demo 玩玩看,或直接 fork 改成你的版本。
如果它有幫到你,回來跟我說一聲、或在 GitHub 上給顆星 ⭐,都會讓我很開心。一起把考試這條路走得聰明一點吧!
