Shaoyi Peng

在42學校的四週寫程式洗禮

結束了為期四週的C語言學習/考試,我從0基礎小白,到能夠脫網獨立寫出8個functions 160行代碼,除了在42學校,可能也沒有其他地方能辦到了。要知道,在三週前的第一次考試上,我只拿了10分。

42是一個2013年從巴黎誕生,現在在全球31個國家有54個校區的programming school,雖說是學校,但事實上他沒有老師,沒有課堂,只有題目、同儕、和你自己。

校名42來源於,在科幻小說"銀河漫遊指南"裡,42是生命、宇宙及萬物的終極答案。

我參加了今年7月份在巴黎的入學考試,考試叫做piscine,是法語"泳池"的意思,每次同時有4、500人在這個大泳池裡。每週一到週四學習、做題、同儕評審,週五4小時上機考試,週末可選擇參加小組作業,不斷往復,直到最後一週為期8小時的期末考收尾。

學習即交作業,系統會按照主題給你一個又一個從簡單到困難的題目,你要自行上網自學,或者詢問左鄰右舍,然後按照規定完成。單是做完系列題目還不夠,用git push提交作業之後,還要讓兩名系統分配的同學來評審代碼,你需要向他們解釋為什麼這麼寫,然後互相評分,都完成了,最後才會由系統根據史上最嚴格規則打分。

打分只有過和不過,第一次提交代碼便喜獲0分是家常便飯的事。系統不會告訴你錯哪了,該怎麼做,所有規則都得自己摸索,上網該搜啥關鍵字甚至要自己猜,不知道就問左邊同學,還不知道就問右邊同學,你們總會探出來條路。

不只是交作業,考試也全靠摸。想要考試你得提前幾天在系統裡提交申請,當天按時到達,以與平時不同的方式登入系統,打開終端,找到電腦裡的readme,了解運行規則,再打開終端,輸入對的指令,登入自己的帳號密碼。考試期間斷網,不可交談、不可走動。以上操作需要在15分鐘內完成,否則直接喪失考試資格。

在第一週的考試裡,到了這一步,15%的人已經因為80種原因被請離場了。至此,第一道考題才正式出現。

由於需要不斷與同學互相評審,我每天平均會與至少5名陌生同學交流。跟我一樣0基礎的人很多,生物醫藥行業想要轉換跑道的挽髻大哥,在車企做車殼製造的華裔二孩媽,看我穿NTU tshirt從吸菸區跑進來說他曾在那交換的西班牙通信技術小哥,本來就是程序員來這兒進修的人也不少,做遊戲開發的加拿大小哥,寫智能合約的非洲小哥,iOS軟件開發的我的飯搭子等等。

儘管背景各異,語言有時不太通,但相同的是,我的這些同學們,不只是在去請教他們時樂於提供幫助,甚至你長時間盯著電腦沒動,還會主動來問你是不是哪裡有問題卡住了。有個女孩曾經在期末考前一天,我的Makefile還在反覆出錯時,耐心跟我一項一項測試,探討可能是哪一行讓系統打回了。有一次我的飯搭子午飯期間沒出現,後來跑來說,前面給人講解指針花了一個半小時。

就在這樣神奇的環境裡,我不斷打怪升級。第一週還在努力搞懂write(1, &c, 1)什麼意思,第四週已經會做"寫一個程序,能夠獲取參數,判斷在不在某base裡(例如8進制),接著轉換成任意自訂義字母的base(例如16進制),並用write輸出"這種數學混合程序邏輯的複雜題目了。

我的進步肉眼可見,第一週只考了10分,第二週60分,到第三週時已經拿到90分了。最後一次考試前,我在400多人裡排名57。

42的門檻看似很低,所有18歲以上的人,都可以申請考試,然而門檻也高,在於這一套學習方式,只適合有自驅力的人。它不逼你學習進度,我一週七天每天睜眼就是寫代碼,C系列題目,最後完成到C9,有的大佬做完C11了,有的人還在C4,也無所謂。它也不逼你出席,沒有課堂沒有老師沒有打卡,大家都成年人,你愛來來愛走走。

它其實特別像生活,想要做什麼或不做什麼,全是個人選擇,也沒有人能保證結果。你可以在水面上漂浮休息,也可以潛下去一直游,看看水流究竟會把你帶到哪裡。

我只是想看看不一樣的海底風光所以選擇了往前游一游,然後發現,我的水性比自以為的還好一點。