新手编程竞赛入门指南 [Cloned]
欢迎加入编程竞赛协会(QQ群:)
进入协会QQ群,联系纳新管理员xixu、ssmy,需提交信息(学院、班级、姓名、学号,vjudge帐号),通过审核后邀请加入“程序设计竞赛组”开展编程学习做题训练。受人数限制,一段时间不参与活动者会被移除。
新手编程竞赛入门指南
编程是程序设计的简称。计算机通过各种各样的程序来实现其功能。因此,学习编程是学习计算机专业的基本要求和技术基础。
计算机程序设计需要依赖于一种程序设计语言来表达。因此,在学习编程之时要先选择一种程序设计语言,一般是C/C++、Java、Python中的一种。然后,就像我们从小学习说话写字、组词造句、段落作文一样,勤加练习多做题,积累各种情况下编写程序的经验,自然而然的就学好了。
我们接下来介绍一个自学编程序的路径,让你从毫无经验的编程小白成长为代码高手,尽快地进入编程竞赛的世界。
第一步(1~2周)快学语法,学到循环
- 首先,选一本C语言或C++的入门书籍,或者在B站上找一套课程(例如课程1和课程2),边看视频边看书,快速地理解C语言语法上的一些基本概念(如输入输出、变量、常量、类型、运算符、表达式、语句),并且跟着看书或视频把上面讲的例子实现出来,看到程序运行结果,直到讲完程序的控制结构(顺序、分支和循环)。
- 然后,注册一个OJ帐号,直接使用vjudge也可以(OJ使用教程:vjudge使用、洛谷使用教程、怎么使用AcWing、vjudge绑定洛谷帐号、AtCoder注册使用、Codeforces注册使用),找一些入门的题单(如洛谷题单、信息学题单、HDU入门题),在输入输出、顺序、分支和循环的章节挑一些简单的有想法的题目做。在这个过程中慢慢地克服各种困难(如编程环境、语法错误,使用OJ、题目交不对等)。遇到个人解决不了的问题,逐步学会看书、网上查资料、问有经验的人,具体且尽快地解决一个个小的编程入门题。
- 这一步大概花费1至2周时间,要做20至30个题目,看书和视频的时间占30%,70%的时间用来写程序。如果每天投入4到8小时,分配2天看书和视频、3至5天做题。如果每天投入2小时左右,分配4至5天看书和视频、5至10天做题。
- 关键之处是:不要贴代码。可以多看题解,弄懂思路,模仿着写,但是不要贴代码。做不出来的题目跳过去也没关系,不追求全部自己想自己写,千万不要贴代码。
第二步(2~4周)数组函数,学完语言
- 要学习数组、字符串、函数、递归、指针、结构体等章节。方法与第一步相同,分成看书和视频、OJ做题两部分,时间分配仍是30%学知识、70%做题。如果每天投入时间较多要花费2~3周,每天投入2~3小时大概需要4周左右。整体上要做30至50个题目。
- 关键点仍是不要贴代码。针对具体的题目,多看多学他人的程序,理解程序为什么这么写,仍以模仿他人程序为主。从这一步开始,题目和程序逐渐变得复杂,要注意理解题目,注意理解程序的结构。
- 做到这里,你有足够的能力在程序设计课程中取得优异的成绩。有条件要参加合适的训练赛,锻炼在时间有限的条件下构思程序的能力。
第三步(半年左右)算法入门,数据结构
- 从这一步开始就进入到算法(枚举、递推、贪心、分治、搜索、动规)和数据结构(线性表、树和图、STL)的基础内容。学好这部分,你有足够的能力在这两门课中取得优异的成绩,并且你已经成为“算法竞赛集训队”的一员了。
- 首先,选择一套优秀的算法竞赛入门教材,读书学习知识在oj上完成例题和部分习题(要做200题左右)。这里推荐的有三本,选哪一本开始都很不错。
1. 刘汝佳《算法竞赛入门经典(第二版)》, 入门经典题目。
2. 罗勇军《 算法竞赛》,算法竞赛题目。
3. 洛谷《深入浅出程序设计竞赛 基础篇》,洛谷深基题目。 - 其次,平均每周至少参加一次训练赛,提高自己的竞赛水平,并且在赛后把适合自己提升的题目补出来,新知识点学会(要做100题左右)。这里推荐AtCoder Beginner Contest和Codeforces Round,它们每周都会有针对个人的不同难度比赛,根据比赛情况计算个人rating(能力值)。我们也会定期组织协会比赛,希望各位踊跃参加。
第四步(永无止境)竞赛选手
- 待补充
申请加入竞赛集训队
加入“程序设计竞赛组”学习训练,至少完成第二步,联系集训队管理员aries获取加入竞赛集训队要求,通过审核邀请加入。
Cloned from sdkdacm's article.