我关注的编程Up主,竟然是新晋IOI第一人:18岁高中生,玩起《我的世界》来不能打扰

3小时编程题,16分钟搞定

晓查 萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI

2020年国际信息学奥赛(IOI)上,以唯一满分拿下第一名的William Lin,成为最夺目的选手。

而且虽然是美籍华裔选手,但他夺冠后,不少网友并不感到陌生,纷纷留言:

这不是YouTube上讲奥赛的小哥吗?

没错,和其他IOI选手不同,William Lin之前在网络上就已经小有名气,可以说是YouTube上的“网红”。

他的YouTube频道订阅人数已达15.6万,视频最高播放量超过200万。

这样的数据放在国内也是妥妥的知识区网红了。

一个月前,William Lin更是在个人频道上发布一则视频,说要为今年的IOI金牌努力。

一位“不明真相”的网友还评价说,IOI金牌只有1%的机会能获得,“我愿意以1:99的赔率打赌”。

这位网友不知道的是,William Lin去年第一次代表美国队参加IOI就拿到过银牌。

“根据过往的趋势,这次应该要成真了。”William Lin在回复中说。

现在该评论已经被顶至首位,不知道这位网友作何感想。

另外,与国内诸多IOI金牌学霸一样的是,William Lin也收到了名校通知书。

国内有不少IOI金牌得主被清华姚班选择,William Lin则是被MIT计算机科学专业录取。

对于刚刚年满18岁的他来说,一切都才刚开始。

五年前成YouTube播主

William Lin对编程产生的兴趣起源很早,至少在12岁就开始玩Scratch,还在社区里发布了第一篇帖子,希望和网友交流互动。

他的YouTube创作始于5年前,上传的第一个视频是编写一段程序杀死Dyknow进程。

这段视频一直没有什么热度,直到去年他获得过IOI银牌后,才收获了第一条回复。

之后,William Lin的YouTube频道一直处于近乎闲置的状态。

直到后来,从一年前开始,他在Codeforces编程竞赛网站上刷题,一下子变成了高产播主,接连上传了近100个视频。

其中播放量最高的是他参加Google Kick Start编程竞赛A轮的视频,总播放量超过220万。这段17分钟的视频没有任何讲解内容,是竞赛的全程录屏。

对于编程爱好者来说,这段只有敲键盘声音的视频可以说是全程高能。因为谷歌给了3个小时的时间,而William Lin只用16分5秒就解决了问题,毫无疑问拿到了第一名。

有网友看完这段视频后说:William可以在20分钟内解决Google的编程竞赛题,而我20分钟只够读懂题目。

除了记录自己参加各种编程竞赛的实时录像,William Lin也会对一些编程题目进行详细的解答。虽然问题的解答方式比较“潦草”,但内容却十分翔实。

能如此耐心解答问题,引来一些爱好编程的学生“催更”:请上传所有比赛视频好吗?

从银牌逆袭到满分金牌

当被问及怎么样才能才能成为一个好的程序员(computer programmer,CP)时,William Lin只给了一个建议:

做超大量的练习,然后参加很多像这样的竞赛。

因为,他本人就是这么做的。

事实上,William Lin在2019年就参加了IOI竞赛,但第一次比赛的过程,并没有想象中那般顺利。

△ 2019年参加IOI的美国队,左一William Lin

在IOI 2019中,William Lin总分“恰好及格”,只获得相当于百分制的60分,其中有一题是0分。当然,这样的成绩,也足以让他获得银牌。

但William Lin并不满足于这样的水平。在那之后,到今年第二次参加IOI前,他开始在LeetCode上刷题。

除了平时上课的时间,在2020年1月到8月的周末,William Lin大部分时间基本都在埋头苦干。

有时候甚至一天十几题(图中深绿色):

而且,如果运行出错,他会要求自己重新做一遍,直到通过为止。

此外,William Lin也没有忘记参加各种编程竞赛,不断积累经验。

例如,在今年,William Lin就参加了谷歌举办的团体编程竞赛HashCode、Code Jam,以及CodeChef等等。

此外,他也参加过谷歌的校招网上测试Kick Start。

William Lin甚至还会在自己的社交媒体上po出竞赛时间表,提醒自己、也提醒列表的各位(一起进步):

而且,这份时间表绝不仅仅是一个摆设,William Lin在最后还加了一句:

上面这些周五到周六的竞赛,我全部都参与过啦。

也就是说,William Lin会利用周末休息的时间,去到处比赛、刷题。

这样的努力也终于给他带来了丰硕的成果。

今年9月,William Lin终于在今年拿下IOI满分金牌,并且是2020年唯一一个满分金牌获得者。

“游戏时间,勿扰”

然而,William Lin并不像大众看起来那般“大神”——一天24小时都在学习。

事实上,他也与许多人一样,会在闲暇时间与朋友玩耍、甚至是打游戏。

例如,在准备IOI 2020的训练时,William Lin就录制过一段自己与朋友在家用“健身”准备竞赛的视频。

与视频中轻松举起哑铃的小伙伴比起来,William调侃自己“根本不擅长锻炼”。

这也是William Lin在以幽默的方式,说明自己更擅长编程。

此外,在他上传的Youtube视频中,也能看见不少录制的游戏视频,看得出,William Lin还是个《我的世界》的忠实玩家。

△Youtube列表也不时冒出游戏视频

William Lin在休息与学习中划分了一条非常明确的界限:用心地学,也要尽兴玩。

例如,当他上线《我的世界》时,会在问答Q&A面板设置「Not Today,Thank You」(今天不行,谢谢)。

可以看见,有想要问问题、但恰逢William Lin在玩游戏的粉丝,在一路追到《我的世界》后“撞上了铁板”,只能遗憾离开。

此外,William Lin还建立了自己的服务器,希望能在这里与热爱编程的人们一起讨论各种有意思的竞赛题目(Codeforces, CodeChef, AtCoder)、面试(LeetCode)和奥赛相关的话题(IOI, USACO)。

不过,他并不允许粉丝们出现公开膜拜的行为,甚至把这个写进了社区规范中:

这是个非常开放的社区,除了编程、面试与竞赛以外,社区里也有讨论各种音乐、游戏与基础学科的栏目。

当然,还有专设的meme(表情包)分享栏。

事实上,William Lin平日里也很幽默,会在社交媒体上分享自己做的meme。

《Among Us》是最近很火的一个小游戏,规则是在9个玩家中,找到其中3个混进来的“冒充者”。

William Lin将它改成了一个有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)

感兴趣的小伙伴们,可以在下方留言,猜猜哪三种编程语言成为了“冒充者” (无奖竞猜)~

参考链接:
https://www.youtube.com/channel/UCKuDLsO0Wwef53qdHPjbU2Q/featured
https://codeforces.com/blog/tmwilliamlin168
https://leetcode.com/tmwilliamlin168/
http://stats.ioinformatics.org/people/6990
https://www.instagram.com/tmwilliamlin168/?hl=en
http://stats.ioinformatics.org/people/6990
https://discord.gg/AneA5wg
https://github.com/tmwilliamlin168
https://scratch.mit.edu/users/tmwilliamlin168/

版权所有,未经授权不得以任何形式转载及使用,违者必究。