晓查 萧箫 发自 凹非寺
量子位 报道 | 公众号 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/
— 完 —
推荐阅读
代码对比工具,我就用这6个
分享我常用的5个免费的在线 SQL 数据库环境,简直太方便了!
Spring Boot 三招组合拳,手把手教你打出优雅的后端接口
MySQL 5.7 vs 8.0,你选那个?网友:我继续原地踏步~
最后,推荐给大家一个有趣有料的公众号:写代码的渣渣鹏,7年老程序员教你写bug,回复 面试|资源 送一你整套开发笔记 有惊喜哦
来源:oschina
链接:https://my.oschina.net/u/4337191/blog/4710493