我在今年11月的時候,參加了4間學校的特殊選才,3間的面試(元智大學沒有面試)
然後在這裡分享一下我的經驗
我的背景
我想先簡單介紹一下我在參與特殊選才的當下那個我 的背景。
| 經歷/專案 | 級分 | 連結 |
|---|---|---|
| APCS | 3+3 | |
| Discord Bot | YinXi Discord Bot |
| 我也不知道怎麼說,反正就是我大概會的東西 | 一些例子 | 連結 |
|---|---|---|
| Python | discord.py, fastapi, json, motor(MongoDB), redis, chromadb, pyqt6, bs4, playwright | |
| GitHub | GitHub | |
| Docker | 基礎 docker 指令 & docker compose | |
| HuggingFace | 微調了gemma3 270m & 上傳幾個 |
這用太爛了就算了吧:) |
特殊選才結果
呃我想先說結果,因為我感覺有些人看到這種結果大概也不會想繼續往下看了:<
| 學校 | 結果 | 總備選人數 |
|---|---|---|
| 台南大學 | 備24 | 25 |
| 逢甲大學 | 備19 | 27 |
| 淡江大學 | 備28 | 36 |
| 元智大學 | 備42 |
(2026/03/07 更新!)
前幾天(3/3)我收到逢甲大學的通知我備19上了
好扯喔
他在錄取生放棄的最後一天,趁我在上課的時候通知我的 (約11點)
umm...
說實話我到現在都沒想清楚為什麼會慘成這樣
我花了一年的時間去增加指令、修復我最一開始寫的屎山 (雖然現在還是有一堆)
就算我花了那麼多的心力,但結果感覺還是沒什麼區別:(
不過我很確定我的自我介紹稿是有問題的,
寫程式的經歷...
經歷 - Bot
因為這個 Bot 是我最開始學 Python 就開始寫的,所以難免會有點屎山。
儲存
那時候我還是用 Json 做資料儲存的,也沒有什麼架構優化,就單純建一個全域的 function 去讀取/寫入 json,也沒有async。
大概過了幾個月吧(我也不知道多久),我也想到了這個問題,所以我改為讓他先把資料放在一個變數裡面,然後再用一個 @tasks.loop 去讓他看那個變數裡面的內容有沒有變。
變數部分(雖然也不是單純的只有變數)大概就像這樣: GitHub info.py
裡面那個 HistoryData 就是我最後一次使用這個架構的結果,一堆用來存路徑的變數,還有一個超級長的 class,裡面放了一堆 classmethod
到最後用起來只讓我感覺 他就是一坨屎,這也是為什麼我後來選擇了找個資料庫來用,因為那時候我已經把整個架構都搬去 Docker 了,所以再加上一個 MongoDB 也沒什麼大不了的。
音樂播放
當初我花了差不多半個寒假的時間去做我的音樂播放功能,加上寒假那時候的版本,我應該做了3次,但基本上最後寫出來的都是難維護到爆的垃圾代碼。
後來到了6月,我去用了 MongoDB,接著到了暑假,我去再次試著重構我的音樂功能 (第4版),最後也是很成功的把他寫出來了。
這個 commit 就是我那時候寫出來的音樂功能,基本功能在那時候大概都有了,也因為整體架構從都是一堆 function,改成多個 class,所以很容易去做擴展,因此到現在也有再持續慢慢優化。 (更多關於這個 bot 的資訊/歷程,可以去看我的另一篇貼文)
經歷 - 微調
最一開始我也是出於好奇,然後想著去微調看看,正好那時候碰到 Google Gemma3 270m 剛出那時候,阿沒基礎的我大概也只能抄抄別人的代碼來用。又正好 Google 提供了代碼範例(還是 colab 的代碼 我有點忘了),所以我就把他載來我電腦上用了。
我可以說就算到現在,我對這部分還是不太了解。原本的我很天真的覺得,我大概可以從代碼裡面找出一些規律,不過後來發現並不會:)
我微調出的那個模型,主要是用來生成對話的標題。
類似這樣,雖然這張圖片是 DeepSeek 的標題生成
我原本是預計他可以在我那台 CPU 比較差的 NAS 上跑的,結果發現根本不行。
等使用者都要進行下一輪對話了 他還在生成,而且生成的同時還會把我 CPU 使用率佔滿,所以後來我就把他改成只要使用者 prompt 長度 > 15 時才去生成。
呃有點偏題了
我想講講我在調參數的過程
就像我剛剛說的,我對這方面基本上完全不懂,我原本打算是去問問 gemini 2.5 pro,讓他幫我改改代碼,結果發現他改出來的代碼也很大概率是用不了的。
後來我就轉向去問他 SFTConfig 裡面的那些參數是幹嘛用的,因為我發現它最後會傳入 SFTTrainer,所以我猜那些應該很重要。
於是我就在每次結果一出來,就把它貼給 gemini,讓他直接幫我改 SFTConfig。
最後也就大概做出了一個還算能看的生成標題模型。
經歷 - 爬蟲
爬蟲在大多數的時候不難,只要能找到固定的 class,或是固定的資料來源就可以了。
Threads
我之前做過一個 Threads 的爬蟲,主要是用 playwright 去 scroll,然後再用 bs4 去整理資料。
一些 locator 大概長這樣
page = 'div.xrvj5dj.xd0jker' # 用於獲得每則貼文 | post_blocks
author = "span[class*='x1lliihq'][class*='x193iq5w'][class*='x6ikm8r']" # 用於獲得作者名稱
time = "time[class*='x1rg5ohu']" # 用於獲得貼文時間
comment = page
retry = 'text="重試"'
我現在 GitHub 上開源的那個版本是我的初版,整體用同步的方式爬取,然後不能抓留言內容。
後來我做了一個可以抓取留言的版本,不過他非常不穩定,通常點幾個貼文的留言後就會卡住了,就算 refresh 網頁也一樣,所以我就沒有再把它 push 到 GitHub 上。
面試場景
台南大學
台南大學好像有分區域(我不太確定),因為面試的是資工系所以當然就是去那區。
在大樓之間有一個看起來(可能)有點年代的榕樹,休息室則是一個很長的教室。我感覺是不是大學的教室都有種會議室的感覺,每次要形容都不知道怎麼形容 然後只能說是會議室
台南大學的教授人都滿好的,因為這是我第一次去面試,所以我可以感覺的出來他很努力的在問一些讓我比較放鬆的問題。
他會在一間類似一間小會議室的地方問你問題,不過桌子的擺放跟會議室不一樣。
然後椅子有椅背,我看了以前很多的心得都沒說有沒有椅背,害我一直以為沒有椅背。
面試場景大概是這樣:
|-------------------|
| ----------- |
| | 教授 教授 | |
| ----------- |
| |
| |我| |
|-------------------|
一開始是一個沒有特定時間限制的自我介紹,後面就是教授開始問問題。
左邊那個教授會先問一些比較輕鬆的問題,右邊那個教授則是後來開始問的。我可以說左右邊的教授都個問了一個我其實會的問題,但當下太緊張了一時想不起來。
- 左邊那個問我: dp(dynamic programming) 的原理,大概解釋一下。這問題其實很簡單,就跟他說會將大問題拆成小問題,並且會紀錄前幾步的狀態就好了。
結果我當下啥都忘了,我只記得 dp 在大多數情況下比遞迴快
現在想起來真的超白癡: - 右邊那個問我: 我的物理競賽(我去參加過全國物理競賽,但複賽沒有再往上晉級)的主題是什麼,能不能大概解釋一下。
阿我當下只記得我做的空氣肌肉(Air Muscle),中間的過程全忘了。
我真的不懂為什麼我都會忘記這些那麼基本的東西...
我覺得這大概就是為什麼我只有備24的原因,其他問題我應該都已經在我能夠回答的極限了。
逢甲大學
逢甲大學是我第二間去面試的學校,第一次進去就覺得他們學校是真的很大。先提一下我的第一階段書審資料的分數是能進裡面最低的 (逢甲大學會在通知的PDF裡面去寫最低錄取分數,還有我的分數)
進去之後會有一間休息室,整個環境很像那種會出現在外師教室的教室(?
我去的時候外面那個負責點名(還是記名)的人跟我說很快就會輪到我(我已經提早到了),因為前面有人沒有來。
這讓我在等的時候超緊張,因為沒有一個確切的時間,我又不知道我要怎麼去多準備。
結果他先從休息室把我叫出去後,前面還有3個人要等,他讓我們坐在面試室的外面。
我到倒數第2個的時候,倒數第3個的朋友好像過來了,然後他們兩個就在我旁邊聊天,聊他們去別的系面試的結果 (為什麼我沒朋友陪我去面試😭)
進去之後大概長這樣
|--------------------------------|
| ------------------------- |
| | 教授 教授 教授 教授 | | (教授是3個還是4個我有點忘記了)
| ------------------------- |
| |
| |我| |
|--------------------------------|
基本上我對這個面試比較沒印象,因為我感覺我一直在重複解釋我上的家教課,然後我自己又講得很模糊。
再加上我覺得我的自我介紹又太長了,所以我原本是覺得我大概結果是一坨:)
結果還是有備19。
淡江大學
(這裡之後都是我學測完,3/7後再更新的了)
基本上我對淡江大學也沒什麼印象了,畢竟是差不多3個月前的事了。
印象中淡江大學的面試地點好像比較高(我不太會形容),反正現在回想起來有一種台中金典飯店的感覺(?)。不過我可以說牆壁的感覺真的不太好,可能也跟在北部下雨、潮濕有關,畢竟是地理因素也很難克服。
總之上樓之後,我先進到一個休息室,具體的桌椅跟環境長相我也都忘的差不多了,不過那時候好像還有一個外文組也在面試,因為休息室有個很明顯就是外國人的外國人在等。
我剛剛去翻了一下我那天跟朋友的對話紀錄,我是9~10點的倒數第二個,所以說我在那裡等了可能有快一小時,我不記得,總之超無聊,我旁邊還有人在寫leetcode。
欸不是真的會有人在面試前還在寫leetcode找手感嗎???
還是寫leetcode是他的樂趣
好吧總之不管我就不知道在幾點的時候進去面試了。
我印象中我好像在一個很大間的教室,很像一個聽演講的地方。而且坐的距離明顯比較遠,不過是聽得清楚雙方說話的。
淡江大學的面試也是我去面試的3間裡面最特別的,他是唯一一個讓我可以說說我自己的Discord bot在幹嘛的學校,他問了我自己在寫這個專案的時候,有沒有遇到什麼困難。
我不太確定我當時的回答,但我印象中我是說了我在自傳裡面寫到的「我重做了音樂功能4次,最後改用class才寫出來。」 (也有可能我描述了更多,我不太確定)
當然這是一個很空泛的回答,但主要因為我大多數遇到的問題都不會特別紀錄,包括log我也只有留幾天的,所以這真的對問題真的對我來說很難回答。
總之最後就拿到了一個備28。
小結
經過這3間大學,感覺上台南的教授是最友善的,他在我緊張的時候會一直試著找我聊天,然後讓我放鬆一點。不過台南的面試時間也比較長,印象中有到10分鐘,外面還會有計時器會叫。
其他私立因為時間跟台南大學不同,所以我覺得不能直接比較。
不過我覺得淡江是最關心我寫的東西的,畢竟他有問到我在寫這個project的時候有遇到什麼困難,讓我有機會可以說一說。
心得
在基本上每間學校的特選都出來的時候,說實話我心情真的滿低靡的,畢竟對那時候的我來說,我花了快一年 接觸到了discord.py、爬蟲、FastAPI、MongoDB這些我自認為應該也不會有太多人來面試的時候會說到的東西,阿結果還是只有一堆看起來根本就不會上的備選。
因為那時候的我本來就有點容易不開心,所以我就一直在重複對自己說 自己只是個沒用的人。
包括因為特選沒上,所以我突然間要準備學測,有點被雙管齊下的感覺(?
都說壓力會促使人學習(好像沒有這句話其實),所以那時候我也大概學了一些typescript的基礎語法和一點點的html跟css,也造就了這個網站的誕生。不過我對typescript還是一整個都不熟,我今天才用AI去稍微改了一下我的一些代碼和css,讓我可以直接更容易去編輯,也順便改好看一點。或許我還是更適合Python吧。
不過我還是覺得很好笑,我當初突然一直去刷歷屆,結果考得還跟我裸考模考差不多(除了數學,模考數學是真的難),我國文甚至還讓了一級分給英文。
反正前幾天逢甲大學通知我上了嘛,然後我就想說直接去了,畢竟我最後的結果大概也會是逢甲或是比較低分的國立大學,中字輩大概也都沒可能了 所以不如直接去。
同時我也是校內繁星的21%,但其實查過的人大概也看得出來,21%要去好一點的學校(只看資工)是真的挺冒險的,例如長庚,在113的時候就變成19%,台中教育大學我也只有去年的%是有符合到的,113甚至都去到11%了。
假設我繁星沒上的話,我就得再多花很久 來去準備一些學習歷程之類的。
所以我最終考量的結果還是直接去逢甲了。