ACM零基础到亚洲区金奖,这才是正确的入门方式

前言

每一个计算机专业的同学都应该听说过ACM竞赛,这是全球最具影响力的大学生程序设计竞赛。

小熊大学零基础入门编程,拿到ACM亚洲区金奖后成功保研了清华,而我选择工作的队友,更是拿到了年薪60w+的大厂offer。

这次就来讲讲如何零基础入门ACM竞赛。

前期的心态调整

零基础入门时,你可能会发现圈内有很多中学有基础的大佬。

可能当你正在摸索OJ刷题的输入输出格式时,

大佬们已经在群里交流着各种看不懂的算法,刷着Codeforces上分,

这时很重要的一点是时刻保持一个平和的学习心态。

不要陷入无谓的焦虑,这不仅无益于缩小与大佬们的差距,还会影响每天刷题训练的效率。

另外要知道,在ACM圈内,人与人之间的差距比人与狗之间的还要大。

但是通过努力,我身边也有不少大学零基础入门拿到银牌及金牌甚至进入final的选手。(这不是鸡汤,只是需要正确系统且勤奋的训练方式)

踏踏实实学习算法,勤奋刷题,借助公开免费的学习资源足够支撑我们提升到非常高的水平。

入门C语言

完全零基础的话,首先需要简单学习一下C语言的基础语法,

我当时在高考后的暑假在中国大学mooc刷完了C语言程序设计-翁恺这门课,

课程链接

课程内容简单有趣,非常推荐作为C语言学习的入门课程。

在学习的同时,可以在 HDOJ-11页上刷简单的入门题,熟悉C语言基础语法和算法题目的输入输出格式。

题库链接

对于不会的题目可以直接百度,网上会有大量的博客可以参考。

度过语言学习的阶段以后,就可以开始系统地学习算法和刷题了

书籍

这是我在训练过程中收集的一些算法书pdf版本(其实自己也没有全部看完过),有需要的可以直接下载:

在这里插入图片描述

可以关注公众号「新熊君」,专注分享:算法 | 实习 | 学习方法 | 思维提升。公众号后台回复「算法书」,免费领取56本算法经典书。

因为这些书都比较厚,携带不方便,我都是通过pdf的方式保存在ipad pro里面,通过Apple Pencil来做笔记,进行学习

主要推荐以下几本:

  • 啊哈!算法:非常适合完全零基础时的入门书,用故事和图来讲解简单的算法,学起来轻松有趣,我当时学最短路就是通过这本书理解的,不到一个小时看完书就能自己敲代码过模版题了~

  • 挑战程序设计竞赛 :圈内经典的入门书(大家都称之为「白书」),知识点比较全面,有丰富的例题和习题,可以配合「挑战程序设计竞赛习题册攻略」进行食用,体验更佳

  • 算法导论:不建议从头看到尾,但可以用于系统学习部分算法。答主当时学「快速傅立叶变换」在网上看了很多博客都不得甚解,最后自己静下心看了一遍「算法导论」才完全明白。

分享一个我常用的算法学习小技巧:

对于才开始接触的算法,常常是有一大堆文字或者代码,

我会自己构造一些小数据,按照描述或者代码流程来手写模拟数据的处理过程

(ACM算法题目的本质也可以理解为对输入数据进行处理得到输出数据)

多模拟几次过程会慢慢加深对算法的理解和认识。

视频学习

我看书学习算法时常常会感觉枯燥,

这时在b站和YouTube看算法讲解视频来学习就显得更加有趣,

特别对于一些比较难入门的数据结构(比如后缀数组、主席树等),通过看视频来一步步模拟算法的运行过程,讲解原理,会比文字的学习更容易理解和掌握。

推荐的b站up主:

推荐的YouTube:
https://www.youtube.com/channel/UCBr_Fu6q9iHYQCh13jmpbrg
@Errichto

当时看了他的Dynamic Programming lectures入坑,这是他的自我介绍:

I’m Kamil Dębowski, better known as Errichto. I compete in and organize programming competitions. I make educational streams on Youtube and Twitch. I'm a finalist of ACM-ICPC, Topcoder Open, Facebook Hacker Cup and Google Code Jam. I got a second place in Google Code Jam 2018. I am/was nutella in Codeforces and target in Topcoder.

PPT

看PPT也是一种很好的学习方式

比如「莫比乌斯反演-PoPoQQQ」「线性筛法和积性函数-贾志鹏」等就是很好的入门莫比乌斯反演的学习资料

当有想学的算法时,可以百度或者Google一下相关的PPT文件,可能会有所收获。

推荐博客

很多大佬喜欢在博客记录和总结自己刷过的题目

有时候你也能从他博文的发表时间中借鉴他的学习成长路径

同时遇到不理解的算法和没思路的题目时,可以直接去几个博客平台搜索,推荐:

  • CSDN、博客园、简书

另外再推荐几个网站和博客:


欢迎关注公众号「新熊君」,专注分享:算法 | 实习 | 学习方法 | 思维提升。公众号后台回复「算法书」,免费领取56本算法经典书。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容