信息学竞赛初学者到底应该选择什么编程语言
很多家长和学生在咨询的时候,都会问到应该学习什么编程语言。编程语言的学习非常重要,因为后续算法的思路和逻辑,全部都需要使用代码表达出来。但针对算法竞赛来说,编程语言的入门并不需要很长时间,特别是对于初中以上学生。因为算法所需要的编程语言知识点并没有那么多,这些概念也并不难理解,重要的是通过题目练习来进行运用和巩固。家长可以根据学生的年龄段,选择更适合学生的方式,尽快打好编程基础,快速开启算法学习!
现在市面上少儿编程的种类有很多种,很多家长会将scratch 和 python这两种语言作为前置语言让孩子1-3年级学习,等到4年级以后再学习 C++,参加信息学竞赛。
其实scratch只能算是带孩子入门的一个编程语言,与主流的编码语言几乎没有相似之处,学习时间太久只会导致孩子过度依赖精美的画面以及拖拽式的“傻瓜式”操作。如果家长已经确定了想让孩子在信息学方面发展,1-3年级完全可以不用报名其他语言学习,针对性提高孩子的数学能力,也可以去免费的编程网站学习一些编程知识。
而pythoh作为目前最为流行的编程语言之一,入门学习曲线较低,上手快,但目前国内的主流信息学竞赛只支持c++语言,如果想通过信息学竞赛走升学这条路的话,肯定首选C++语言。随着编程语言开始低龄化,4 年级学开始直接学习 C++是一种很好的选择,在这以前并不是一定要学其他编程语言的,只要孩子的数学能力没问题,就可以将 C++学好。
想要通过信息学走升学的家长要清楚:CSP-J/S 获奖可以帮助孩子通过特长生政策初升高(并且高中学校并没有要求奖项,普遍获得 CSP-J/S 入门二等奖就能够达到招生门槛);高中阶段获得 NOIP 或者 CSP-J/S 提高组奖项可以帮助孩子高考时走综合评价政策;高中阶段获得 NOI 银牌就可以走强基计划升入 985 名校!
如果学生什么语言都没有学习过,并且短期目标是参加USACO竞赛,那么应该学习什么语言呢?我的建议是学习 Java 或者 C++ 语言。USACO 竞赛允许使用四种语言,分别是C++, Java,Python和C 语言。
这几种语言正好名列 TIOBE (权威的编程语言使用排名)的前四名,学习其中任何一种都没问题。但从USACO 算法竞赛的角度来看,Python 在效率上存在一些问题,并且缺少了一些内置数据结构的支持,导致在高级别竞赛中会有瓶颈。而C 语言是一种非常底层的语言,缺少面向对象,范型等机制,比较适合硬件相关的开发场景。相比而言, Java 和 C++ 能更好的支撑大型项目的开发,在实际生产中应用非常广泛,并且效率高,在保证深入USACO算法竞赛的同时,对于今后的工作也是非常有帮助的。
对于算法来说,任何一种编程语言都是为了表达算法思路的,所以编程语言不重要,背后的思维才更加重要。但是,语言确实能够影响一个学生的编程习惯,从这个角度来说,又确实非常重要。所以选择一种历经考验,应用广泛的语言对于今后求学就业都会更有帮助,从这意义上来说,Java,C++ ,Python都是非常好的语言,都有各自的一片天地,不管选择哪个,都是最好的决定!一旦掌握了一种编程语言后,再切换到其他语言,无非就是学习一下在另外一种语言中,这些概念应该如何用代码表述,是否有什么限制。正常情况下,掌握第二门语言的时间不会超过一个月。

全部 0条评论