参加什么比赛挣钱?
作为前ACER,现在已入职Intel的工程师。 先说自己的亲身经历吧: 在大学时期(2013年),由于当时CPU计算性能提升很快,但是能效没有跟上,所以那个时候很多论文都是关于节能或者降低功耗的方法论,于是我就想当然的用Python写了个爬虫去爬一些论文网站,把相关的论文下载下来进行分析并编写代码实现降耗。那时候ACM-ICPC的官网还没有改版,直接就可以在线提交,而且那几年网络也超级的好,所以只要你的算法能够过ACM的审,基本上速度都不错。
那一年ACM-ICPC中国赛区的总决赛是在我母校举行的,我和两个学长代表学校出征,最后获得了铜牌(第三名),并且是当年唯一一对全部过ACM审的银牌选手,因此收到了 Intel 的offer。
后来,因为一些个人的原因,没能在英特尔工作,去了另一家半导体公司,在面试的时候也聊到了ICPC,面试官问我是否有兴趣加入他们在美国设立的计算机竞赛队伍,如果加入的话可以获得一些技术上的支持以及工资加成等等。 再来说比赛: ICPC的比赛题目由7个题目组成,每个题目由一个课题组提供解决方案,最终会选出一个最优解。其中前5个题目属于比较单纯的数据结构、算法题,后2个是系统设计、优化的题目。每一道题都有O(n)和O(logn)两个解法,所以总共就是42(n)+28(logn)种组合。一般来说前三题都是纯算法、数据结构的题目,比较难,时间复杂度很难把握;四五题是系统设计、优化的题目,相对比较简单。每一题都有时限,总共5个小时,答完所有题目。 每题答对加20分,有解题步骤给10分,答错或不答题0分。按总分数排名,满分400分。
按照我的经验,前四题拿到满绩点(300分),基本是可以拿到金奖的,第五六题拿一到两分,第七题蒙对,也可以拿到银奖。如果发挥出色,全部做对可以拿到金(400分)。 但真正比赛的时候,因为紧张等各种原因,大部分选手只能发挥出自身水平的70%左右,所以大多数都是拿到铜奖。如果有机会能跟ACM教练多训练,提高编程水平和心态,会有更好的表现。