程序设计竞赛专题挑战教程
上QQ阅读APP看书,第一时间看更新

正确看待算法竞赛

在大学学习过程中,既有面向学位要求的专业课程,又有面向非学位要求的竞赛、创新项目、课题等学习活动。虽然参加竞赛活动是课余的、非强制性的,但是竞赛活动能有力地帮助参赛者强化巩固所学的专业知识,提高思维和动手能力,提升专业水平。不少竞赛活动的含金量也足以证明学生的专业能力,从而使学生在保研、找工作时获得优势。

在权威的全国普通高等院校的学科竞赛排行榜上,蓝桥杯大赛名列其中,是广受欢迎的信息类专业竞赛。其中,蓝桥杯软件类大赛目前已成为参赛人数最多的大学计算机编程竞赛,获得了高校和就业单位的广泛认可,其奖牌是大学生计算机编程能力的一个有力证明。

通过本书的学习,读者不仅有能力获得蓝桥杯软件类大赛的奖项,也有能力在其他算法竞赛中获奖,而且将来在找工作面试时遇到算法题也不用紧张。

从就业需求看,算法竞赛可以说是十分实用的,甚至是带些许“功利色彩”的竞赛。其他类别的一些竞赛活动也能有助于参赛者提高思维能力或锻炼动手能力,但不一定能将这些能力的提升直接体现到就业竞争力上,而通过算法竞赛培养出的计算思维能力、编程能力,则能直接服务于计算机专业工作中,因而算法竞赛的获奖者是企业非常欢迎的人才。常看到这样的新闻:有人在中学时参加了全国青少年信息学奥林匹克竞赛,上大学后从大一开始就能找到公司实习,并且能力超出一般的大学毕业生。不少非计算机专业的学生,在算法竞赛获奖之后,也能从事计算机程序员的工作,并且能力很强。更何况计算机专业的学生,他们在学习算法竞赛后则如虎添翼,能力上升一个大台阶!

算法竞赛具体培养哪些能力?从就业角度看,一名出色的程序员需要经过以下几方面的锻炼。

1.编写大量代码

编程不是纸上谈兵,而是动手写出合格并高效的代码。在编写代码上进行大量的训练,是成为杰出程序员必下的功夫。

2.学习各种算法知识

算法是计算机程序的灵魂,每个计算机问题都需要采用适当的算法来解决,例如分析算法的时间复杂度、空间复杂度,从而通过代码来高效地完成任务。竞赛主要考核如何根据具体情况灵活地应用算法,这能很好地促进参赛者对算法的理解与掌握。

3.培养计算思维和逻辑思维

一道竞赛题往往需要参赛者综合运用多种知识与方法,例如数据结构、算法知识、数学方法、流程和逻辑等,这是计算思维和逻辑思维能力的体现。

4.掌握多种编程语言

对于蓝桥杯软件类大赛而言,其用到的编程语言就有C/C++、Java、Python。其中,C/C++因运行效率高、拥有丰富的STL函数库,最受参赛者欢迎。Java和Python也很常用,特别是Python,其上升势头越来越明显。当然,对于这几种编程语言,就业市场上都有大量的相应岗位需求,参赛者掌握得好,就业要容易得多。