您的位置:首页 > 理论基础

有哪些值得推荐的计算机专业的竞赛?

2017-07-23 14:30 561 查看
作者:李陶冶

链接:https://www.zhihu.com/question/48762643/answer/114818468

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

咦,被人邀请了。其实我是不太适合回答这个问题的,毕竟都是看自己的孩子好!而我自己用过的OJ、参加的比赛也不多,只能凭感觉点评一下,也许并不公正。一、经典算法竞赛平台TopCoder:TC大概是全球题目质量最高的了,智商题为主,做题时间短,在我眼里TC堪称完美。要说有什么体验上的不足就是:得装个专门的客户端。有些可惜的是:TC马拉松这几年风头被Kaggle盖了。当然,TCO仍然是最有分量的比赛。CodeForces:CF的题目质量也很高,但经常有些奇怪的题目,不过大部分的D或E都还正常。有时会涉及一些代码量大的题目,除了智商要求,代码能力也挺重要(大家都是套板子么?),这2年的新题不是很了解,相信CF会一直保持高质量。CodeChef:CC这两年毒瘤题泛滥了,好在CC的比赛给了你足够的时间,你可以想尽各种办法来解决这些问题。难题当然各有各的难点,其实难一些的高质量题反而相对好出,你可以把一些奇怪的知识点放进去,有时再组合一些极为难写的,那么一道难题就诞生了,这些知识点如果有什么巧妙之处,那么题目质量也会随之提高。然而最难出的大概还是TC那种的题目,他们之间的差别就好像技术含量极高的制造业与文化创意产业,创新总是可遇而不可求的。Hackerrank:HR最初从面试起家,后转型做竞赛实属不易,HR的题目质量还可以,但参差不齐。既有7k+的神题,也有超水且无趣的题目。不过HR的题有一个好,就是样例解释清晰,题解完整。适合初学者学习进阶。以上为国外常年办比赛的一些平台,相比国内的平台还远不如以上几家专业,大家都在努力做,目前比较有影响力的大概是:BC,HihoCoder和我们(51nod)吧,很惭愧,只是做了一点微小的工作。二、算法大赛GCJ和HackerCup连同TCO,可以算作全球3大个人赛事,个人认为TCO要比另外两个更体现个人能力。国内持续在做的大赛事大概是:百度之星,编程之美。在我眼里百度之星的地位相当于TCO,编程之美相当于Hacker Cup,毕竟才办了没几年。这里多说一下,Astar尽管遭各种吐槽,几经波折,难得的是坚持下来了。而之前阿里,腾讯,网易的比赛已经没了消息。今年看到计蒜客也开始做大赛了,希望能够坚持下去,当然其中的困难是很多的,任何一家能够积极推动的企业,都应得到尊重(什么,你说赛氪娘…..)。说一下华为软件精英挑战赛,这次的题目虽然是马拉松性质的,但感觉更像出题人偷懒。最后的评分也变为了面对数据做优化,因为不是真实数据,也不是解决实际的问题,又没有多项式的解法。理论上不论什么样的程序,总可以找出一些反例让程序跑出的结果很差。除此之外,HDU等高校OJ也针对学生,常年办一些比赛,希望他们也能越做越好。三、OJ平台SPOJ:spoj把出题的工作开放给每个用户了,因此上面有很多稀奇古怪的题目,有些很难,有些甚至你都不知道是否可做……Ural:ural秉承俄罗斯人的传统,既有智商题,也有几天几夜写不完的论问题。当然最难的还是读题,俄罗斯人的英文读起来总是很怪,并且他们还特别爱写背景描述。其他国外OJ用的很少,不瞎评论了。OJ方面国内做的很出色,既有POJ,ZOJ,HDU,Vijos这种老牌劲旅,也有青橙,大视野,UOJ这种新锐(这三家的题目质量都很高)。此外需要特别说的一个是Project Euler:PE可以说是各类数学编程题的引领者,往往是先在PE出现了某类新型的题目(黑科技),然后被其他比赛或OJ平台改编,加入一些新的元素,最终放到了某场比赛当中…..四、面试笔试Codility:虽然是用作面试的,但题目质量是很不错的,毕竟创始人是某界Final大神。其中有些题目对于竞赛党来说,水过大概可以,但最优的复杂度并不是每个人都能做到,哪怕是acm final选手。并且这些题目不涉及任何高深的数据结构及算法,大概只要有基础的知识,就可以上手做。用作面试的话,我首推Codility的题目,不论考官还是考生。lintcode:我没怎么做过,只是翻过几道题,发现还是有难度的,虽然都是lt,但明显比leetcode难
4000
了不少。leetcode:适合作为算法科普和入门,对于一个完全没搞过竞赛的人,接触并学习算法是个不错的选择。五、数据挖掘及AI比赛Kaggle,TopCoder都有些数据挖掘比赛,TopCoder和Hackerrank偶尔还有些AI的比赛,不过比赛的方式不太一样,TC和HR都是提交代码,而Kaggle是提交数据。我们也想做这类比赛,但采用哪种方式还没能确定。国内做数据挖掘比赛的包括:阿里天池以及Datacastle,尽管这两年ML热,但这类比赛是很难组织并运营的。印象中,北大有个botzone,是专门做AI对战的,也很有意思!今年滴滴也办了一个数据挖掘比赛,奖金极高,相信也吸引到很多牛人参与,那么我们看明年滴滴是否还会坚持来做这样一个事情。六、商业化(不好意思跑题了)以上我列出的这些国外OJ及平台,除了学校办的之外,基本都得到了很好的商业化。TopCoder已经形成了多个领域的众包平台。HackerRank有自己的一站式电面产品,很多企业通过在上面组织比赛来招揽人才,或使用他们的在线笔试服务来筛选简历。Codility在协助企业笔试,帮助企业评估程序员能力方面,做了很多有价值的工作。Kaggle更是成为了很多企业寻找解决方案及技术人才的捷径。而我上面列举的国内的一些平台及产品,只要是企业而非学校运营的,都面临着生存的困难。商业化方面并不是国内的企业不努力,而是环境不成熟。很多互联网企业的技术部门,仍然不了解算法竞赛这个领域,且技术部门在企业内部并没有太多话语权。当你向一个业务驱动的互联网企业的HR去解释算法竞赛时,内心是崩溃的。——————————————————————————————————————————最后,对于初学者,我建议大概是这样一个学习路径:leetcode => Codility => HackerRank(HR有难度分级适合学习,当然大家来刷51nod也是极好的,毕竟我们都是中文题目,并且是精选过的) => 参加一些在线比赛 => …… 走向人生巅峰
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: