【預見美好的自己】人形 Debug 系統的日常 - 陳嶽
【作者小檔案】
【專業證照】
-
資訊類國際證照: RHCSA (Red Hat Certified System Administrator )
-
金融類證照:金融常識與職業道德
-
體育證照:游泳c級教練證照
【榮譽】
-
113(1)擔任JAVA TA
-
113(1)靜宜大學菁英杯男子單打桌球比賽第四名
-
113(2)擔任JAVA 及統計學TA
-
113第二學期優良TA
人形 Debug 系統的日常:一位 Java TA 的爆笑求生冒險
對我來說,成為 Java 程式語言課程的TA(教學助理),是我大學生活中最特別、也最充實的一段經歷。剛開始時,我以為TA的工作大多只是回答課堂上學生的問題,或是在第二節上課時協助老師監考這樣簡單的工作。但因為老師的授課模式是第一節講解新進度,第二節進行小考,而小考的內容則是上一週的教學範圍,每週老師也會提供練習題讓學生在課後練習。所以我原本以為TA的工作會相對單純,然而正式投入之後,我才深刻體會到,TA不僅是「會寫程式的人」,其實是一台人形 Debug 系統,外加心靈輔導模式。
由於這門課是開設在大二上學期,因此對許多學生而言,這是他們第一次接觸 Java,所以學弟妹們的理解程度差異極大。也因如此,我看到的,是全班各種不同程度的困惑表情:有人被變數宣告搞到表情像背九九乘法、有人把 for 迴圈看成外星語、有人以為 while 是一種新的英文文法、還有人堅信電腦「應該懂我想要什麼」。作為TA,我必須以不同的方式與每位學生溝通,用生活化的比喻帶他們理解抽象概念,在學生快崩潰時安撫他們,在我自己快崩潰時安撫我自己,那時我才深刻明白,最具挑戰的並不是語法本身,而是如何用最簡單、最生活化的方式,來引導他們吸收這些原本抽象的概念。

印象最深刻的一次是老師上課先介紹 for 迴圈,打開他們對迴圈概念的理解,之後再銜接 while 迴圈,對第一次接觸程式語言的學生而言,這兩種迴圈往往是最難理解的部分之一。老師每週都會出練習題,而我也會在星期四下午開兩個小時的TA時間,讓學生來練習或提出問題。那週的練習題剛好全部都需要用 while 迴圈,結果許多學生在解題時都一臉苦惱地跑來問我:「助教,我明明照著老師的筆記寫,可是怎麼跑都跑不出我要的結果?」我看了一下其中一位同學的程式碼,世界安靜了,我發現他的迴圈條件永遠不會被改變,導致程式卡在無窮迴圈中,難怪他的電腦每次執行都直接當掉,螢幕亮度甚至比我未來前途還黯淡,只能重開。當我講解時,他雖然盯著螢幕,但明顯聽不懂,我知道再講語法也沒有用,所以乾脆拿起紙和筆,像畫流程圖一樣一步步帶他分析迴圈的執行順序,就在我畫出變數如何改變、條件何時為真、何時跳出時,他突然說:「原來電腦是這樣想的喔!」那一刻我心裡默默吶喊:「對啊!電腦比你老實太多,它不會猜你的心、也不會幫你補腦!」學生缺的往往不是語法,而是「如何站在電腦的角度思考」。畢竟電腦不像人類能靠直覺理解,它只會老實地照著指令走。如果沒有一步步分析,程式自然不可能跑出預期的結果。

除了迴圈之外,在TA時間裡我最常遇到的,就是各式各樣的錯誤訊息與邏輯 bug,像是 NullPointerException、ArrayIndexOutOfBoundsException…等,每次出現的時候,都像在對我說:「來喔,看你能不能猜到我又是哪裡錯了。」還有最經典的「因為少打一個分號,整段程式直接罷工」。這種錯誤通常伴隨學生的崩潰音效:「蛤?這也會錯?」,我只能在旁邊安慰他們同時心想:「同學,Java 很小氣的,它真的會因為一個分號離家出走。」對初學者而言,錯誤訊息就像上古卷軸密碼,字體越多,他們越想把整台電腦關掉。我會告訴他們:「錯誤訊息不是在兇你,它是在給你線索。」,例如遇到NullPointerException的錯誤訊息,我會讓他們檢查:「你有 new 嗎?真的有 new 嗎?你確定?」,遇到陣列或超出範圍的錯誤,我會和他們一起檢查索引我們就一起檢查索引是否偷偷超線,透過一次次拆 bug,他們慢慢從「助教救我」進化成「我好像知道問題在哪了」那一刻,我就知道:他們正式踏入 Debug 世界的大門了。

在當 TA 的這段期間,我意外解鎖了許多技能。
1. 溝通與翻譯技能 MAX:我必須把艱澀的技術概念翻成人類語言,而且還要依照不同學生調整難度有些人適合比喻成生活情境,有些人適合畫圖,有些人……需要我用靈魂演戲。久了之後,我甚至覺得自己快可以出一本《如何讓程式語言變成人話》。
2. 耐心 + 同理心大幅提升:面對初學者的重複問題,我從剛開始的「欸你上次問過喔」進化成:「沒關係,我們再一起看一次,這次一定會懂的。」(雖然內心 OS 偶爾也會想說:拜託 while 讓我放過自己。)
3. Debug 反應速度全面升級:每天拆 bug 拆到後來,邏輯思考與系統性分析變得更直覺。有時候學生還沒把錯誤訊息念完,我就已經知道癥結在哪、解法是什麼。這種瞬間洞察力,完全是 TA 生涯的隱藏寶物。
回頭看這段 TA 生涯,我終於明白教學的重點從來不只是把語法講懂,而是看著學生從「我到底在寫什麼?」一路進化到「喔~~原來是這樣!」的那個瞬間。那種迷霧瞬間散開的表情,比看到程式一次 Compile(編譯) 成功還療癒。
我發現自己默默從一個「會寫程式的人」,變成一個專門引導別人找到出口的導航系統。我陪過學生走過無窮迴圈、NPE(NullPointerException)地獄、陣列越界三溫暖,也陪他們在卡關時深呼吸,在理解時放煙火。從中練出了三大能力溝通能力 MAX、耐心Buff、Debug 直覺開眼,未來不論我走向軟體開發、教學,還是某個需要大量 Debug 的神奇產業,這段 TA 冒險都會是我最珍貴、也最爆笑的養分之一。


