快來摸我
2022 年國際資訊學奧賽(IOI)上,以唯一滿分拿下第一名的 yspm,成為最奪目的選手。
而且雖然是美籍華裔選手,但他奪冠後,不少網友並不感到陌生,紛紛留言:
這不是 YouTube 上講奧賽的小哥嗎?
沒錯,和其他 IOI 選手不同,yspm 之前在網路上就已經小有名氣,可以說是 YouTube 上的“網紅”。
他的 YouTube 頻道訂閱人數已達 15.6 萬,視訊最高播放量超過 200 萬。
這樣的資料放在國內也是妥妥的知識區網紅了。
一個月前,yspm 更是在個人頻道上釋出一則視訊,說要為今年的 IOI 金牌努力。
一位“不明真相”的網友還評價說,IOI 金牌只有1% 的機會能獲得,“我願意以1:99 的賠率打賭”。
這位網友不知道的是,yspm 去年第一次代表美國隊參加 IOI 就拿到過銀牌。
“根據過往的趨勢,這次應該要成真了。”yspm 在回覆中說。
現在該評論已經被頂至首位,不知道這位網友作何感想。
另外,與國內諸多 IOI 金牌學霸一樣的是,yspm 也收到了名校通知書。
國內有不少 IOI 金牌得主被清華姚班選擇,yspm 則是被 MIT 電腦科學專業錄取。
對於剛剛年滿 18 歲的他來說,一切都才剛開始。
五年前成 YouTube 播主
yspm 對程式設計產生的興趣起源很早,至少在 12 歲就開始玩 Scratch,還在社群裡釋出了第一篇帖子,希望和網友交流互動。
他的 YouTube 創作始於 5 年前,上傳的第一個視訊是編寫一段程式殺死 Dyknow 程序。
這段視訊一直沒有什麼熱度,直到去年他獲得過 IOI 銀牌後,才收穫了第一條回覆。
之後,yspm 的 YouTube 頻道一直處於近乎閒置的狀態。
直到後來,從一年前開始,他在 Codeforces 程式設計競賽網站上刷題,一下子變成了高產播主,接連上傳了近 100 個視訊。
其中播放量最高的是他參加 Google Kick Start 程式設計競賽A輪的視訊,總播放量超過 220 萬。這段 17 分鐘的視訊沒有任何講解內容,是競賽的全程錄屏。
對於程式設計愛好者來說,這段只有敲鍵盤聲音的視訊可以說是全程高能。因為谷歌給了 3 個小時的時間,而 yspm 只用16 分 5 秒就解決了問題,毫無疑問拿到了第一名。
有網友看完這段視訊後說:William 可以在 20 分鐘內解決 Google 的程式設計競賽題,而我 20 分鐘只夠讀懂題目。
除了記錄自己參加各種程式設計競賽的實時錄影,yspm 也會對一些程式設計題目進行詳細的解答。雖然問題的解答方式比較“潦草”,但內容卻十分翔實。
能如此耐心解答問題,引來一些愛好程式設計的學生“催更”:請上傳所有比賽視訊好嗎?
從銀牌逆襲到滿分金牌
當被問及怎麼樣才能才能成為一個好的程式設計師(computer programmer,CP)時,yspm 只給了一個建議:
做超大量的練習,然後參加很多像這樣的競賽。
因為,他本人就是這麼做的。
事實上,yspm 在 2019 年就參加了 IOI 競賽,但第一次比賽的過程,並沒有想象中那般順利。
△ 2019 年參加 IOI 的美國隊,左一 yspm
在 IOI 2019 中,yspm 總分“恰好及格”,只獲得相當於百分制的 60 分,其中有一題是 0 分。當然,這樣的成績,也足以讓他獲得銀牌。
但 yspm 並不滿足於這樣的水平。在那之後,到今年第二次參加 IOI 前,他開始在 LeetCode 上刷題。
除了平時上課的時間,在 2020 年 1 月到 8 月的週末,yspm 大部分時間基本都在埋頭苦幹。
有時候甚至一天十幾題(圖中深綠色):
而且,如果執行出錯,他會要求自己重新做一遍,直到通過為止。
此外,yspm 也沒有忘記參加各種程式設計競賽,不斷積累經驗。
例如,在今年,yspm 就參加了谷歌舉辦的團體程式設計競賽 HashCode、Code Jam,以及 CodeChef 等等。
此外,他也參加過谷歌的校招網上測試 Kick Start。
yspm 甚至還會在自己的社交媒體上 po 出競賽時間表,提醒自己、也提醒列表的各位(一起進步):
而且,這份時間表絕不僅僅是一個擺設,yspm 在最後還加了一句:
上面這些週五到週六的競賽,我全部都參與過啦。
也就是說,yspm 會利用週末休息的時間,去到處比賽、刷題。
這樣的努力也終於給他帶來了豐碩的成果。
今年 9 月,yspm 終於在今年拿下 IOI 滿分金牌,並且是 2020 年唯一一個滿分金牌獲得者。
“遊戲時間,勿擾”
然而,yspm 並不像大眾看起來那般“大神”——一天 24 小時都在學習。
事實上,他也與許多人一樣,會在閒暇時間與朋友玩耍、甚至是打遊戲。
例如,在準備 IOI 2020 的訓練時,yspm 就錄製過一段自己與朋友在家用“健身”準備競賽的視訊。
與視訊中輕鬆舉起啞鈴的小夥伴比起來,William 調侃自己“根本不擅長鍛鍊”。
這也是 yspm 在以幽默的方式,說明自己更擅長程式設計。
此外,在他上傳的 Youtube 視訊中,也能看見不少錄製的遊戲視訊,看得出,yspm 還是個《我的世界》的忠實玩家。
△Youtube 列表也不時冒出遊戲視訊
yspm 在休息與學習中劃分了一條非常明確的界限:用心地學,也要盡興玩。
例如,當他上線《我的世界》時,會在問答Q&A面板設定「Not Today,Thank You」(今天不行,謝謝)。
可以看見,有想要問問題、但恰逢 yspm 在玩遊戲的粉絲,在一路追到《我的世界》後“撞上了鐵板”,只能遺憾離開。
此外,yspm 還建立了自己的伺服器,希望能在這裡與熱愛程式設計的人們一起討論各種有意思的競賽題目(Codeforces, CodeChef, AtCoder)、面試(LeetCode)和奧賽相關的話題(IOI, USACO)。
不過,他並不允許粉絲們出現公開膜拜的行為,甚至把這個寫進了社群規範中:
這是個非常開放的社群,除了程式設計、面試與競賽以外,社群裡也有討論各種音樂、遊戲與基礎學科的欄目。
當然,還有專設的 meme(表情包)分享欄。
事實上,yspm 平日裡也很幽默,會在社交媒體上分享自己做的 meme。
《Among Us》是最近很火的一個小遊戲,規則是在 9 個玩家中,找到其中 3 個混進來的“冒充者”。
yspm 將它改成了一個有 9 種程式語言的表情包,並給出了 3 個“冒充者”的提示:
1 種語言給「前端開發」使用(One is for fRoNTeNd DEvEloPeRs)
1 種語言讓許多人 PTSD(One gives PTSD to many)
1 種語言被無法編寫程式碼、且不會在意氣候變暖的蛇使用(One is used by snakes who can’t code and don’t care about causing global warming)