分享到微博 分享到人人 分享到LinkedIn 分享到Email
编程之“美”:连接知识与现实的桥梁
微软亚洲研究院
2014年6月12日

bop20140611

2014年5月21日,由微软主办、电气电子工程师学会(IEEE)协办的第三届“微软编程之美挑战赛”落下帷幕,来自清华大学的王杉与复旦大学的孙祥彦获得本届冠军。之前两人素不相识,决赛当天在短短三分钟交谈后选择了彼此,临时组队,遭遇各种不顺,不过最后还是因程序运行结果最为准确而夺冠。比赛期间的惊心动魄让他们至今都觉得回味无穷。

在比赛中通过编程将想法变为现实,运用逻辑和抽象思维解决问题是他们最有成就感的地方,虽然比赛时间相当紧张,但他们都很享受整个过程。在本次大赛针对1000名复赛选手的答卷中,超过60%的选手表示实用性和逻辑性是大赛最吸引他们的地方。

利用真实数据、解决现实问题是本次“编程之美”大赛与其他同类比赛最大的不同,让大学生在提升编程技巧的同时,更能在解决现实问题的过程中享受编程的“美”。这不单是一场比赛,更是一个交流和学习的平台,不仅为来自天南海北的学生之间提供交流的机会,也在学生与企业之间架起桥梁,为学生创造了与一线研发专家亲密合作以及更多与业界交流的机会。

享受编程 之“美”

提起编程,很多人会联想到一行行密密麻麻的代码,“美“之于编程似乎无从谈起,但对于享受到其中乐趣的人来说,编程却是充满美感的。《编程之美》一书的作者,微软首席开发经理邹欣对此颇有感触,在他看来,可以从四个方面去理解编程之”美“。

首先,程序本身一定要“美“,增之一分则太长、减之一分则太短,如美好的女子一样要恰到好处,若有冗余会影响程序运行效率,若有缺失则无法解决问题;其次,在解决实际问题的过程中展现美,当用精妙的算法去解决实实在在的问题,所带来的成就与喜悦自是难以言表;再次,编程之“美“体现在平衡,在有限的时间内做出最接近用户需求的程序,同时确保体验最佳,期间算法与代码的取舍在于平衡;最后,美是一个磨砺的过程,无论多么伟大的产品和项目,工程师们都需要经历默默无闻、潜心钻研的过程。直到有一天,就像泰戈尔诗句里所说的那样:水的载歌载舞,使他们的”鹅卵石“臻于完美。

如何在看似乏味的编程过程中做到载歌载舞?邹欣强调说,一定记得编程学习是一个自然的过程,不要人为斩断,不是老师规定考什么才学什么,时刻想着自己是要用程序去解决问题,让问题带着自己去学习,才能乐享其中。与大学环境不同,在微软这样的企业,所有的编程都与实际问题相结合,同事之间相互鼓励、共同磨砺的协作氛围浓重,微软也是希望借助大赛让更多大学生体会到编程之“美“。

在邹欣看来,非计算机专业的学生其实也同样能够享受到编程之“美”,编程当中所体现的计算性思维(Computational Thinking),不仅是从事计算机科学的人需要的,也是年轻一代每个人都需要的。微软全球资深副总裁、微软研究院的周以真(Jeannette Wing)博士曾说,计算性思维是人类的一项基本技能,世界上每个人都在使用,我们甚至应该把它纳入教育计划,让它像阅读、写作、算术等一样,成为每个孩子都应具备的基本能力。

可以认为,编程和计算性思维更关乎一种解决问题的思维方式,年轻人完全可以基于兴趣从小培养。对于已经充分享受到编程之“美”的上届冠军李雪来说,编程是一件很自由的事情,像写作,每个人都有自己的表达方式和对于问题的理解,每个人解决问题的过程都截然不同,基于对问题的不同理解,充分发挥创造力,表达出不同的结果,正是编程之“美”所在。

解决现实问题,模拟真实环境

此次大赛的主题是“城市计算”,在决赛中采用了由江苏信息服务产业基地提供的来自扬州市的真实数据以及环保部所公布的气象数据。选手们可以基于这些数据建模,并从工程的角度去不断优化,选手们不仅要有强大的逻辑思维能力,还要兼顾实际问题中的各种干扰因素,最终导致解决问题的方法迥异,却也最能体现选手的创新能力。

孙祥彦此前曾多次参加ACM大赛,在他看来,ACM大赛中都是算法的较量,在学校的训练也多以算法题为主,大家对城市计算并不了解,因此参赛之前,他特意查阅了城市计算相关领域的研究,其中包括微软亚洲研究院的实时动态拼车系统和实时空气污染监测,这才深刻体会到算法理论与工程项目之间的差别有多大。应该说,这是他第一次真正利用编程来解决实际问题,比赛过程很艰难,却让他收获颇丰。他和王彬非常期待之后能到微软实习,真正进入“实战”的环境。

“我们为编程之美大赛提供扬州市的第一手数据,是希望让参赛的大学生们身临其境,感受到城市发展面临的真实环境,从而激发他们的创造力,真正尝试去解决实际问题。”江苏信息服务产业基地管理办公室主任陈栋表示:“同时也希望通过这种类型的比赛,探索利用大数据、云计算等新兴技术为城市发展和规划找到一条行之有效的可持续发展之道。”

大赛不仅决赛主题与现实问题挂钩,其形式也模拟真实环境中的项目创作,很像是创业企业成长的缩减版,充满挑战。56名决赛选手在一个房间里随意交流,通过十组五分钟交流选择自己的合作者,在随后两天的时间里一起开发、一起面对评委演示和答辩,就像是创业企业面对VC一样,完全是高手之间的协作与较量,选手们的沟通能力和团队协作能力在每个环节都展露无遗。

与就业接轨,重在经验积累

与一线专家面对面的交流,体验微软文化,乃至日后进入微软实习,是决赛选手的另一大收获。大赛的评委既有来自微软的研究员和工程师,也有来自高校教师和扬州市的政府代表,选手们可以从他们这里得到最中肯的意见和建议。

自2012年举办第一届编程之美大赛以来,已有20余名优秀参赛者获得了到微软实习的机会,在研究员和工程师的指导下参与前沿的科研研究和实际的工程项目。王彬说,他当初决定参赛的唯一原因就是能有机会来微软实习,中学时期开始对编程感兴趣的他一直使用微软平台,微软工程师改变世界的梦想也是他的梦想。

与学生就业难相对应,企业寻找人才也同样难,之间的鸿沟需要更好的解决办法,大赛因此成为连接知识与现实的桥梁。作为一种另类的“实习”经历,大赛让学生在校期间就有机会与国际领先企业面对面。哪怕没能进入到最后的决赛,过程本身便已是经验和实践的积累与丰富。正如上届冠军李雪所说的,对于学生而言,“编程之美”不单纯是一场比赛,更是一个与更多热爱编程的伙伴交流和学习的平台。

IEEE的统计数据显示,中国的IEEE学生会员现有三四千人,而在印度这个数字是中国的十倍,从这个侧面也可以看出,中国大学生与IT业界的联系不够紧密。在IEEE国际业务发展总监华宁看来,参赛学生通过“编程之美”认识到编程的重要性,提高了自己编程的技巧,进入社会后为国家科技的发展和自主创新做出更大的贡献,这正是IEEE作为一个非盈利机构非常愿意与微软在这个项目上进行长期合作的原因。此外,IEEE还将提供更多中文本地化内容,帮助中国的大学生克服语言障碍,与更多业界的国际精英实现交流和沟通。

“在微软看来,像‘编程之美’这样由企业组织的比赛越多越好。比赛的输赢不重要,了解最新的技术与方法论,了解新兴技术与现实问题的结合点,对大学生来说才最有帮助。”微软亚洲研究院学术合作部总监潘天佑博士表示:“企业需要能够解决实际问题的人才,此类大赛恰恰能够为学生们创造一个实战平台,让他们提前接触业界,学以致用,为将来的就业和发展做准备。”