第二届微软“编程之美全国挑战赛”冠军李雪

第二届微软“编程之美全国挑战赛”冠军李雪

只是因为在人群中多看了你一眼

说起李雪和编程的缘分,这还要回溯到她的高中时代。当时李雪就读的唐山一中开设了程序竞赛班,专门培养对编程有兴趣和天份的孩子。爱好广泛的李雪报着试试的心情开始接触了编程,而后一发不可收拾,狂热地爱上这个大部分女生都不是太感兴趣的活动。2010年的夏天,李雪由于在全省程序竞赛中获得一等奖,而被保送进入了全国计算机相关专业排名靠前的高校——北京邮电大学,自此开启了她另一段精彩的编程人生。

值得一提的是,李雪与微软亚洲研究院的缘分其实在她的高中时代就开启了。当时还是高二学生的李雪到北大参加夏令营,除在北大举行的讲座外,主办方还为夏令营的同学们安排了一项额外的参观活动——参观当时位于海淀区知春路希格玛大厦的微软亚洲研究院。李雪回忆当年的情境时,关于比赛的细节好多都记不得了,但唯独对于参观微软亚洲研究院,她到此刻依然记忆犹新。当时研究院展示图片搜索技术着实让还在读高中的她开了一把眼界。她也在心中暗暗的把微软亚洲研究院尊为计算机领域的圣地。

误打误撞?还是冥冥中自有定数?

关于大学的专业,李雪没有选择计算机而选择了通信工程,原因竟然是她上网查了一下,看大家都在说北邮的信息通信工程(以下简称信通)专业排名较计算机高。因为这样,她就成为了北邮信通院的一名学生。北邮大一的学生都会在位于昌平区的宏福校区学习一年,然后再返回海淀区的本部校区。处在城乡结合部的宏福校区的生活较本部单调了许多,基本是宿舍、教室和食堂三点一线,活脱脱是高中生活的延续。在完成学业之后,还会有大块的空闲时间剩下,因此在看到学校程序竞赛的宣传海报时,李雪也没多想就报名参与了。当时,信通专业的学生刚刚开始学习C++课程。而参加程序竞赛要求能够熟练地使用C++,所以当时李雪没少啃课本。

来北邮本部参加校赛的过程中,李雪被北邮ACM队的教练看中,邀请她加入,而李雪也欣然地接受了。这个不经意的决定,后来可以说是改变了李雪后半部分的大学生活。

ACM,为你而生!

ACM程序设计大赛(以下简称ACM)是大学级别最高的脑力竞赛,素来被冠以”程序设计的奥林匹克”的尊称。大赛自1970年开始至今已有30年历史,是世界范围内历史最悠久、规模最大的程序设计竞赛。

自大二回到本部的那个暑假开始,李雪的ACM生涯就真正开始了。炎炎夏日,大部分同学都已回家度假了,而ACM集训队的同学们却还待在学校,开始了紧张和高强度的集训生活。一场训练下来往往就是5个小时过去了。回忆起那些日子,李雪丝毫没有觉得辛苦。她反而认为那是一段酣畅淋漓、简单却又无比充实的生活。在结束了一天的训练后,集训队的朋友们总会一起伴着落日夕阳走向北邮南门外的饭馆小巷,嘻笑打闹,和赛场上认真专注的他们判若两人。

此时,李雪虽然接触程序竞赛已经有几年了,也不算是新手了,但ACM对于她来说,完全又是一个陌生的东西。这时候,贵人出现了。大三的学长于翔主动找到当时刚入大二的李雪和另一位男生,希望能和他们组成一队共同参加比赛。有了有经验学长的领路,李雪和她的另一位队友省去了不少入门的时间。三个人的队伍,一个有经验的学长,一个细心的女生,一个常有好点子的男生,可以说得上是完美的组合。也因为有了队友,李雪的训练比之前更加的刻苦了。很快的,他们迎来了在复旦大学举办的ACM大赛。复旦大学的比赛较其他学校更注重创意,而李雪队里正有一位“点子王”。那一次比赛虽然是他们的首次出战,却由于整个团队的配合十分默契而最终获得了银奖的好成绩。第二次的比赛,他们出战金华,斩获金奖。

北邮为ACM集训队的同学提供了专门的机房供他们训练时使用,常常是深夜十一点了,你还会发现训练的机房里灯火通明,同学们还沉醉在编程的世界里。在李雪获得编程之美冠军后,小编第一次与李雪约定采访时间的时候,就被告知当晚要训练到十一点而改期了。由此可见,ACM对于热爱她的人来说,是一段永不停止的征程。它融入血液里,流淌在身体里,令你如痴如醉。

编程之美全国挑战赛总冠军,无心插柳柳成荫

3月份的时候,李雪偶然间在北邮校园里看到了微软俱乐部对“编程之美”活动的宣传,她一时兴起就报了名。本届的“编程之美全国挑战赛”一共吸引了13000多名来自全国各大高校的优秀学子报名参加,其中不乏来自清华、北大、上交大等以计算机专业而闻名的顶尖院校的学生。万人竞技,竞争的激烈程度可想而知,但这难不倒平日里就以算法见长的李雪。她一路从13,000多人参加的资格赛打进了仅有60人晋级的全国总决赛。旁人看来这可谓是过五关斩六将,十分不容易。李雪自已说起这事儿来,却是云淡风清,“ACM队里好多人都报名参加了,比赛时间到了,在机房里大家就扯一嗓子,然后大家一起开始比赛。其实就跟平时训练没什么差别。”回忆晋级决赛前的比赛,李雪说让她印象最深刻的是,微软在细节工作上做的十分到位,组织有序又贴心。对于比赛的时间,总是会发好几封邮件提醒,以防有些同学忘了时间,错过了比赛。

最后的决赛是在微软的云平台Window Azure上进行的。由于大部分选手都没有在云上编程竞赛的经验,微软也是给选手们在决赛前就提供了详细的Window Azure的上手指南。拿到指南后,李雪研究了好些天。

激动人心的比赛终于来临了,来自全国各地的决赛选手齐聚位于海淀区中关村丹棱街5号的微软大厦,展开一场在云端的终极对决。此次最终来北京决赛的60名选手中,只有李雪和另一名来自中山大学的同学是女生。微软(亚洲)互联网工程院首席开发经理,同时也是本次大赛的评委会主席的邹欣老师对此就半开玩笑地说,“据说今年女生进入决赛的数量比去年增加了100%”。所以,李雪能够从13,000多人的激烈角逐中晋级全国总决赛就足以说明“这个女生确实不简单”。

5月13日上午9点,微软亚洲研究院学术合作经理吴国斌在对决赛规则进行了简单的介绍后,决赛环节的组队活动就正式开始了。根据比赛规则,每位同学需要在一小时内找到一名同学和自己组成一队,共同完成决赛的题目。同时,为了保证比赛的公平性,来自同一个城市的同学不能组成一队。我们希望通过这样的一种方式让参加决赛的同学体验到在未来的工作中可能会遇到的需要主动的去调动资源、寻找合适的人来完成相应任务的情境。时间一分一秒的过去,李雪聊了几个同学,但都不是特别的满意。最后,来自中山大学的陈泽裕同学主动找到李雪,两人聊了一下,觉得双方的能力非常互补,所以马上就结盟组成了队伍。

组队结束后,接下来进行的选题环节。本届大赛,组委会为参加决赛的同学准备了两道题目,一道是云上的大数据日志分析;一道是利用云平台绘制分形图形。而选题的方式也是别出心裁,每队在0-100间任意选择一个数字,最后哪支队伍更接近所有队伍说出数字平均数的0.618,就可先选择题目。这就意味着有一些数字偏差较大的队伍将无法自由选题。李雪小组最后选择了云上的大数据日志分析那一题。

10点整,比赛正式开始。提交最终结果的时间定在晚上11点,最终展示的PPT的提交时间定在晚上12点。庞大的数据存储在Windows Azure上,如何想到一个办法能够随意的从云上调用这些数据呢?这是摆在李雪和他的队友面前的第一个难题。对于同学们在编程中间可能会遇到的关于Windows Azure的技术问题,微软为参与决赛的同学们邀请到了微软亚太研发集团的资深工程师们为大家答疑解难。除了集中答疑外,同学们在比赛的过程中也可以单独请工程师们到跟前解答。

对于如何解答这道题,李雪和队友商量了很久。他们首先进行了几轮头脑风暴,把想到的点子都列了出来,然后逐一分析其可行性。之后两人进行了分工,便着手开始编写代码。在比赛的过程中间,两人也遇到了许多意想不到的问题,比如说对云技术不熟悉,调用方法不实际,中间代码出错等等,这些都靠着他们之间的相互信任和协作成功解决了。

团队协作中除队友间的相互信任外,还有一项非常重要的影响因素就是对时间的掌控。在晚上8点30分的时候,李雪编写的一段代码出现了问题,怎么调试都通不过。如果继续耗下去的话,可能会影响到后续的PPT制作环节。这时候,队友陈泽裕主动的站了出来,对李雪说,你先去做PPT,这个问题交给我。最后,队友用另一种方法成功地编写了这段代码,在规定时间内提交成功。而由于李雪有充分的时间制作PPT,再加上之前课余时间在北邮学生会中担任设计师时积累的设计经验,在隔天的展示环节中,精美的PPT给评委留下了深刻的印象。邹欣老师在之后的个人微博中给予了李雪团队很高的评价——“评委们都认为李雪小组的云计算项目完成的质量非常高, 展示也非常深入全面。这都是在12小时完成的, 非常不简单。”

第二天,所有的决赛队伍向评委会展示了最终的成果。李雪和队友在展示中的配合也十分默契,相互补充,体现出了优秀的团队合作精神。最终,由于综合项目完成的质量和展示的成绩,李雪团队排名第一。根据复赛成绩的高低,李雪复赛排名较队友靠前,摘取了第二届“编程之美全国挑战赛”的桂冠。

编程之美全国挑战赛”的官方微博和人人网官方账号在第一时间公布了这个消息并贴出了李雪的获奖照片。随后,这则消息在微博和人人网上迅速传播开来。大家都向这位看上去文文静静的女生投去了赞美的目光。一次无心的报名参赛,却让李雪这个名字深深地镌刻在了编程之美的历史上,真可谓是“无心插柳柳成荫!”

“编程之美”的赛事已告一段落,回顾李雪夺冠的整个过程,主管微软亚洲研究院学术合作部的副院长宋罗兰女士总结道:“李雪的成功与其说是无心插柳,倒不如说是再一次印证了‘机会总是留给有准备的人’这句话。从李雪同学的经历中我们可以看到,找到自己的兴趣点并为之努力,你就有可能获得成功。”此外,宋女士也谈到,她希望同学们在看到他人的精彩故事之后,也记住他们此前所付出的辛勤汗水。不费吹灰之力就可以成功的故事,是没有普遍适用性的。因此,同学们要注重培养自己多方面的能力,尤其对学习计算机的同学来说,除过硬的编程能力外,还要注重培养自己与人沟通的能力和团队协作的能力。

后记:编程生活还将继续,向ACM世界总决赛进发

虽然李雪现在是社交网络上的红人了,走在北邮的校园里,不时会有同学惊呼“那是李雪!”,但她自己却丝毫没有改变原来的生活。除完成课业外,还是会在约定的时间和队友在机房训练;空闲的时间还会画画。(李雪还曾是学生会负责宣传的一把手呢!)这个暑假,她将前往俄罗斯圣彼得堡参加ACM世界总决赛,目前正在紧张的备战状态。

最后,让我们一同祝福李雪,祝福她在ACM世界总决赛的赛场上继续绽放光芒!