爱迪生说过:“天才不过是百分之一的灵感,和百分之九十九的汗水。”对于程序员来说,每一个运行成功的函数背后都有他们无悔的付出,每一块珍贵的奖牌都饱含他们拼搏的激情。老将满载而归,新羽蓄势待发,ACM集训队走过了春夏秋冬,收获了累累硕果。
2017年5月6日,由15信息朱怡阳、15国贸余晓婷和15计算机王子雯组成的“财经的MM1队”和15计算机刘小菊、16信息姚沛佳和16计算机陈松婷组成的“财经的MM2队” 分别获得第二届中国老员工程序设计竞赛-女生赛银奖和铜奖,同时在不久前的浙江省第十四届老员工程序设计竞赛中,公司同学共获得金奖2项、银奖2项、铜奖2项的好成绩。为此,公司新闻部采访了程序设计竞赛团队的同学和教练,为我们讲述成绩背后的故事。
不是一番寒彻骨,怎得梅花扑鼻香
13软件专业的吴天棋学长是公司程序设计竞赛“牛人”,曾多次获得浙江省老员工程序设计竞赛金牌和国际老员工程序设计竞赛银牌,“蓝桥杯”软件设计大赛一等奖。目前吴天棋同学已经被阿里巴巴正式录取为研发工程师。在陈琰宏老师指导下,吴天棋大一开始进行程序设计训练,从零基础开始,学习递归、栈、搜索、动态规划……进入ACM集训队后,吴天棋掌握了大量算法与数据结构知识,并将思考问题、编写程序变成大学三年中的挚爱,使之成为每天生活的一部分。天道酬勤,吴天棋学长在程序设计训练上的辛苦付出得到了回报。
14软件专业的王瑞洲学长是另一位程序设计大牛,曾获得省赛金牌3枚、区域赛银牌4枚。王瑞洲学长在高中的时候曾接触过高中信息学竞赛,大一的时候在陈老师的引导下加入了ACM集训队。当被问到天赋和努力哪一点在他的成功经历中起着决定性作用时,他表示,“之前总有人会说学ACM要靠智商什么的,但是,拼智商是大后期的事。前期大家拼的都是努力,就我们现在的情况而言,还远远没到需要考虑智商高低的时候。而努力的情况,很大程度上来说和自身定位有着不可分割的联系。所以,为自己确立一个目标(小目标也可以),给自身一个确切的定位会有挺大的帮助的。” 经过两年的刻苦努力和不断的小目标的激励下,王瑞洲同学的博客题解数已是上千题,博客的被访问量也超过二十万次。(http://blog.csdn.net/jtjy568805874)。因为在程序设计竞赛上的优异表现,王瑞洲已经顺利拿到了阿里巴巴的实习offer。
14软件专业的周甄陶学长是王瑞洲的队友,曾获得3次省赛金牌,4次区域赛银奖,1次蓝桥杯决赛一等奖,被同学们成为“周神”、“周老师”。“因为对编程的好奇,选择了信工学院,之后加入了ACM集训队,开始按照陈老师的计划,学习数据结构、图论和动态规划等知识,后来上网看大牛的博客,参加各类程序设计比赛,codeForces、bestcoder……”同样取得优异成绩的周甄陶同学目前已经正式获得京东认知感知实验室实习offer。
战队里的另一位核心成员是被大家称为“项神”的14计算机项闰冶学长,项学长从大一开始投身程序设计竞赛,一直保持做题和学习,并且参加了很多比赛。“我印象最深的是去年的比赛,通过20多天赛前的高强度训练,终于第一次在区域赛获奖”,项闰冶学长告诉大家程序训练贵在坚持。
巾帼不让须眉,一群快乐者创造的佳绩
ACM的每支参赛队伍由3名队员组成,每个小组的面前只有一台计算机,要求在5小时内完成编程解决10道来自实际生活的赛题,比赛中考察员工的不仅仅是能够完成指定任务的程序,更要求在完成程序功能的基础之上提高解题的速率。15信息朱怡阳、15国贸余晓婷和15计算机 王子雯组成的“财经的MM1队”曾两次获得中国老员工程序设计竞赛-女生赛奖牌。
在程序设计竞赛中,女生也并不少见。15信息专业的朱怡阳学姐是ACM协会的会长,也是今年省赛的银牌得主。会长大一在周甄陶学长的介绍下知道了ACM,并在张帅老师的鼓励下与15计算机的王子雯一起参加ACM集训,从此与ACM结下了不解之缘。在ACM集训队里,会长遇到了一群志同道合的朋友,这其中就有“余神”。15国贸专业的余晓婷从小学就对计算机很有兴趣,即使自己在国贸专业,还是参加了ACM集训队。因为余晓婷的编程能力很强,所以会长一直叫她“余神”。在集训队的女生们不仅深入学习的专业知识,也收获了很好的友情。
培养计算思维,让气球天天升起
气球是ACM大赛的一个特色。ACM比赛以十种颜色气球来命名ABCDEFGHIJ十道题,题目全英文。十道题任选,做完哪道题就给相应颜色的气球。做完的题目发送到ACM专用电脑,当在线评判系统显示绿色的ACCEPT表示解题正确,显示红色的ERROR表示解题错误。
15年级的楼煦旻、李秋君、王子恒、张海栋、刘小菊与李天阳等学长是今年省赛二等奖与三等奖的获得者。几位学长在进大学后便勤奋地学习编程,扎实的基础更是培养了他们一种独特的思维-“计算思维”,即站在计算机的角度上思考问题,解决问题。精通一门语言,如C语言、Java语言可以让我们更清楚地认识到计算机到底是一种怎样的工具,再学别的编程语言时就能触类旁通,很多问题便能迎刃而解。
当被问及接下来是否要学习R语言、Python或其他新技术时,几位学长表示,C语言与程序设计竞赛是一种相辅相成的存在,C语言是基础,程序设计竞赛注重于思想也注重于解决问题,所以近期将继续深入学习高级数据结构。当然,只拥有基础当然也远远不能在老员工程序设计竞赛这个大舞台上大放异彩,更多的是要在平时多刷题。几位同学都建议所有想尝试程序设计竞赛的大一同学们,程序设计的题目一定要多看多写多思考多挖掘,这样潜移默化地在脑中形成计算思维从而离成功更进一步。
夯实基础,学的更顺走的更远
13软件的沈理刚同学大一时加入集训队,不过在大二上学期的程序设计省赛选拔中落选。在陈老师的建议下学习游戏开发技术Cocos2d-x,并在08学长章玉华的推荐下大三上学期进入游戏公司实习,现在已经成为公司的开发主力之一;13计算机的林道化学长在大二下学期程序设计省赛结束后开始学习Cocos2d-x,目前在一家游戏公司从事游戏开发。问及ACM经历对自己的影响时,两位学长谈到,“在面试是常常会被问到算法问题,另外程序设计竞赛的重要性在知乎中也有很多讨论。跟大家分析一段知乎中的一段话,也是我们非常认可的观点:我曾经招过3个ACM竞赛获奖的工程师,虽然都刚毕业,但是带起来飞快,2-3个月边学边干基本上就可以顶工作2-3年的老工程师,而且质量远超;顺便说说算法的重要性,很多求职者老是问我,工作中谁会用到二叉树啊,你让我写这个根本没用,要用的时候我复习一下,或者下载个包,不是什么都解决了?素质,同学,懂不懂什么叫素质啊?你学了4年计算机,二叉树的原理都不记得,我怎么能相信在某些环境下你能发现需要用到某个算法?这些算法是有开源包,所有人都会用,但是这些算法同时也培养了你思维的敏感性,在你想一个问题的时候是否能自然考虑到更优的方案,设计一个数据结构的时候是不是不单单从完成当前功能出发。这些都决定了你的工程项目会给未来挖多大的坑。这就是为什么Google,Facebook等大公司坚持面试的时候大量算法编程题,这是基本素质。”在集训队的训练让两位员工夯实了专业基础,在学习其他技术时学的更快理解的更深。
在陈老师的建议下,笔者QQ采访了几天前回校讲座的09学长吴恩慈。吴学长在校期间获得过两次区域赛银牌、 两次省赛金牌。这些经历让他在工作中学习JAVA开发非常快速,对系统设计、常用设计模式、系统优化等方面的研究也更加深入, 在工作中也更容易脱颖而出。
时光荏苒,ACM集训队已走过十二年青葱岁月,集训队陪伴着信工,因为他的存在,信工变得更加熠熠生辉,他们用热情和努力创造出自己的新天地,他们的奋斗史和他们传承的ACM精神也感染和感动着每一位信工学子,愿ACM集训队在未来一路高歌,伴梦前行。
新闻部 夏午洋