第25章 深夜課堂

投票推薦 加入書籤 小說報錯

  那架五塊錢的破鋼琴,成了出租屋裡除了那台拼湊電腦之外,最「昂貴」的資產。

  宋薇用撿來的碎布頭,仔細擦去鋼琴表面的灰塵和污垢。琴鍵依舊走音,缺了幾個鍵帽的地方露出黑洞洞的窟窿,但意意卻像得到了全天下最棒的玩具。只要醒著,小手總忍不住往鋼琴的方向夠,按下去,聽著那扭曲古怪的「咔噠」聲,小臉上就會露出一種介於迷惑和愉悅之間的神情。

  宋薇看在眼裡,心裡那點因花掉伙食費而生的刺痛,被一種更複雜的情緒取代。那是一種混雜著愧疚、決心和隱約興奮的灼熱感。她悄悄把接下來幾天的伙食預算又砍掉一半,清水煮菜葉里連鹽都少放了一撮。胃裡空得發慌,但看著意意對著破鋼琴「創作」時亮晶晶的眼睛,她覺得值。

  生活依舊像繃緊的弦。王經理那邊的數據錄入零活時有時無,報酬微薄且不穩定。公益中心的免費午餐是雷打不動的支撐,但周伯遠的課程越來越深,開始涉及一些簡單的報表分析和基礎的VBA編程概念。

  這對只有大學文科背景、且已荒廢多年的宋薇來說,如同天書。那些循環語句、條件判斷、變量定義,像一團團糾纏的亂麻,堵在她本就因營養不良而運轉遲緩的大腦里。

  深夜,孩子們終於沉沉睡去(現在能睡五六個小時了,是宋薇僅有的、完整的學習時間)。她蜷縮在冰冷的桌子前,就著那豆大如豆、搖曳不定的煤油燈光,攤開周伯遠給的、字跡已有些模糊的油印講義,和一本從廢品站撿來的、缺頁嚴重的編程入門舊書。

  電腦太慢,她捨不得那點珍貴的電瓶電量,更怕運行編程軟體會導致死機,前功盡棄。她選擇最原始的方法——把問題寫在撿來的、背面空白的GG傳單上。

  「如何用循環,自動將Sheet1的A列數據,乘以對應B列的係數,結果填入C列?」

  她咬著鉛筆頭(也是撿的),眉頭擰成疙瘩。講義上的例子她能看懂,但稍微一變,就無從下手。腦子裡像塞滿了冰冷的鏽鐵,轉不動。

  嘗試寫了幾行偽代碼,塗塗改改,邏輯漏洞百出。她煩躁地揉著太陽穴,凍瘡未愈的手指傳來刺痛。胃部因為飢餓而隱隱抽搐,提醒著她現實的冰冷。

  她嘆了口氣,把寫滿混亂思路的紙推到一邊,準備先沖點米粉糊給自己墊墊肚子。起身時,袖子帶倒了桌上一個空的奶粉罐(那罐珍貴的奶粉早已見底,罐子被她洗淨留著裝水),罐子滾落,正好壓在了那張塗鴉般的草稿紙上。

  宋薇沒在意,拖著疲憊的身子去爐邊燒水。

  水還沒開,暖暖醒了,發出細細的哼唧。她趕緊過去,輕輕拍撫。哄睡暖暖,又檢查了其他三個。行行睡得很沉,意意的小手在睡夢中還無意識地做著按琴鍵的動作,遠遠則咂巴著小嘴,不知夢見了什麼。

  等她重新坐回桌前,拿起水杯時,目光無意間掃過那張被奶粉罐壓過的草稿紙。

  動作頓住了。

  紙上她原本那些混亂的箭頭、潦草的文字和錯誤的代碼旁,多了一些東西——幾道歪歪扭扭的、蠟筆畫的痕跡。

  那是她之前從廢品堆撿到的一小截蠟筆頭,給孩子們畫著玩的,後來不知被誰(多半是愛到處摸索的遠遠)拿到了桌上。

  蠟筆是紅色的,畫在粗糙的GG紙背面,線條稚嫩得可笑。但那幾道線條,卻並非毫無意義的塗鴉。

  一道彎彎曲曲的線,從代表「Sheet1 A列」的方塊出發,畫了個圈,又回到原點,旁邊畫了幾個重複的小點,像是……循環?

  一條短線連接了「A列」和「B列」的方塊,上面畫了個小小的「×」。

  另一條線從「×」延伸出去,指向「C列」,線條末端打了個箭頭。

  旁邊還畫了個歪歪扭扭的、像鎖一樣的小符號,鎖旁邊打了個勾。

  宋薇拿著水杯的手,僵在半空。

  心臟在胸腔里,突兀地、重重地跳了一下。

  她盯著那些稚嫩的蠟筆痕跡,腦子裡飛快地轉動。循環……相乘……賦值……鎖定?不,那個鎖和勾,更像是……「判斷」?條件判斷?

  一個荒誕卻又讓她渾身發冷的念頭,如同冰冷的蛇,鑽進腦海。

  遠遠白天確實在這附近爬來爬去玩過。難道……這些看似隨意的塗鴉,是他在「看」了她寫的東西後,無意識留下的……「注釋」?

  她猛地搖頭,想把這不切實際的想法甩出去。一個不滿五個月、話都不會說的嬰兒,怎麼可能理解編程邏輯?還畫出帶有象徵意義的符號?


  可……行行對電子元件的直覺,意意對旋律的復現,又怎麼解釋?

  鬼使神差地,她重新拿起鉛筆,對著那張被蠟筆「加工」過的草稿紙,按照那些線條和符號提示的思路,重新思考那個VBA問題。

  循環讀取A列和B列……對應行相乘……結果填入C列……如果B列為空或非數字,則跳過(鎖和勾代表判斷和通過)?

  她嘗試著,在腦子中構建這個流程。原本堵塞的思路,仿佛被那些稚嫩的蠟筆線條,撬開了一道縫隙。

  煤油燈的光暈搖曳著,映著她蒼白的臉和因震驚而微微放大的瞳孔。

  水燒開了,發出尖銳的鳴叫。她渾然未覺。

  直到暖暖又哼唧了一聲,她才如夢初醒。趕緊沖好米粉糊,自己囫圇喝了幾口,又把剩下溫著的餵給可能夜醒的孩子們。

  躺回冰冷的床板上,她卻毫無睡意。眼睛睜得大大的,望著黑暗裡斑駁的天花板,耳邊是四個孩子均勻細弱的呼吸聲,腦子裡卻反覆回放著那張草稿紙上的蠟筆塗鴉。

  第二天,她做出了一個決定。

  晚上,當她再次被一個複雜的公式嵌套卡住時,她沒有像往常一樣煩躁地抓頭髮,而是把寫了問題的紙,故意放在了遠遠白天活動時能夠到的桌邊。

  然後,她裝作若無其事地去收拾屋子,眼角餘光卻密切注意著。

  遠遠果然被紙上那些奇怪的符號吸引了。他趴在那裡,黑亮的眼睛盯著紙面,小手無意識地抓握著那截蠟筆頭。過了一會兒,他伸出小胖手,用蠟筆在紙上某個函數括號的外面,畫了一個小小的、不閉合的圓圈。

  宋薇的心跳漏了一拍。不閉合的圓圈?在編程里,有時代表邏輯不完整,或者缺少循環結束語句?

  她走回去,拿起紙,假裝自言自語:「這個公式,總覺得哪裡不對,是不是少了個結束的條件?」

  說著,她嘗試在紙上那個被遠遠畫了圓圈的地方,補充了一個循環結束語句。

  然後,她把修改後的邏輯,輸入到電腦里(趁著電瓶還有點電,冒險開機)。運行。

  雖然因為其他錯誤沒能完全成功,但之前卡住的邏輯部分,居然通過了!

  宋薇坐在冰冷的椅子上,後背竄起一陣戰慄般的麻意。

  不是巧合。

  一次或許是巧合,兩次……絕不可能。

  她的遠遠,這個連坐都坐不穩的小嬰兒,竟然能以某種她無法理解的方式,「感知」到複雜邏輯中的斷點和錯誤,並用最原始的圖形表達出來?

  這個發現,讓她在震驚之餘,生出了一股難以言喻的、混合著驕傲、心酸和巨大責任感的熱流。

  她開始更大膽地嘗試。

  當她被一個數據透視表的欄位設置搞得暈頭轉向時,她會把問題簡化,用只有自己能懂的方式念叨出來,同時觀察四個孩子的反應。

  行行會轉過頭,黑沉沉的眼睛望向那台嗡嗡作響、運行緩慢的破舊機箱,小手指有時會準確指向機箱側面某個散熱孔——那裡通常是CPU或顯卡的位置,當程序複雜時,發熱最嚴重。

  意意會在她長時間皺眉、敲擊鍵盤節奏混亂時,忽然哼出一段簡短而急促的旋律,像是某種「警報」或「催促」,而當她終於理清思路、流暢操作時,意意哼出的調子又會變得平緩悠長。

  遠遠的蠟筆「注釋」越來越頻繁,雖然依舊抽象難懂,但宋薇開始能勉強解讀其中一些規律——圓圈代表循環或重複,箭頭代表流向或賦值,打叉代表錯誤或終止……

  而暖暖,當她因為難題而焦躁不安時,總會適時地爬過來,用柔軟的小臉蹭蹭她的手,或者給她一個能融化一切煩憂的笑容。

  冰冷的出租屋,漏風的窗戶,昏暗的煤油燈,凍瘡的手指,飢餓的腸胃,複雜的代碼,瑣碎的數據……

  這一切的艱難困苦,並沒有消失。

  但在這絕望的底色上,卻悄然滋生了一種奇特的、溫暖的、只屬於他們母子五人的「交流」和「共學」。

  宋薇不再是孤身一人在知識的沼澤里跋涉。她的身後,有了四個沉默卻無比敏銳的小小「參謀」。他們用各自的方式——行行的直覺,意意的旋律,遠遠的符號,暖暖的擁抱——參與著她這場為了生存、也為了未來而進行的艱難攀爬。

  深夜的「課堂」上,母親敲擊鍵盤的噼啪聲,孩子們偶爾的夢囈或哼唧,破舊機箱的嗡鳴,意意無意識按響的走鋼琴音……交織成一首古怪卻頑強不屈的生存交響曲。

  希望,不再是遙不可及的星光。

  它變成了煤油燈下母親專注的側臉,變成了孩子們各自獨特的「語言」,變成了紙上那些稚嫩卻神奇的蠟筆塗鴉,變成了冰冷代碼被成功運行後,屏幕上跳出的那個正確結果。

  雖然微小,雖然前路依舊漫漫。

  但在這間破敗寒冷的屋子裡,一種嶄新的、名為「共生」與「希望」的模式,正在一片廢墟之上,悄然萌芽。

章節目錄