零基础学生应该学什么编程语言?

很多家长和学生在咨询的时候,都会问到应该学习什么编程语言。总怕如果选错之后,后续编程语言会影响到算法的深入学习。编程语言的选择是非常重要的,第一种编程语言对于每个人的影响,有点类似于母语对于每个人的影响一般,是会很大程度上决定了人的思考方式和代码书写习惯的。虽然后续还会接触各种各样其他的编程语言,但接触的第一种编程语言往往对于学生的影响会更大。

一种语言能够达到影响学生习惯的程度,那一定是已经使用这种语言做过不少项目,写过不少代码了,表达过不少算法思维。但据我了解,很多学生虽然从小学习 Python,但独立使用这种语言编写代码的经历却非常少,很可能是跟着老师抄过不少代码,这种编程语言学习经历,其实并不能算是掌握了一种编程语言。

一旦掌握了一种编程语言后,如果要切换到另外一种编程语言,其实是一件比较简单的事情。因为最开始学习编程语言,最搞不清楚的是一些概念,例如嵌套循环,二维数组,结构体,值类型和引用类型等应该如何应用?如果你已经掌握了一门语言,那么这些概念自然都已经理解了,此时再切换到其他语言,无非就是学习一下在另外一种语言中,这些概念应该如何用代码表述,是否有什么限制。正常情况下,掌握第二门语言的时间不会超过一个月。

那么重新回到家长的问题,如果学生什么语言都没有学习过,并且短期目标是参加USACO竞赛,那么应该学习什么语言呢? 我的建议是学习 Java 或者 C++ 语言。USACO 竞赛允许使用四种语言,分别是C++, Java,Python和C 语言。原来是允许使用 Pascal 语言的,但这种语言目前学习的人很少,相比于其他几种语言,应用领域也很少,所以目前已经被取消了。

初学者到底应该学习什么编程语言?

目前存留下的这四种语言,正好名列 TIOBE (权威的编程语言使用排名)的前四名,可见都是非常受欢迎的语言,学习其中任何一种都是很好的。但从USACO 算法竞赛的角度来看,Python 在效率上存在一些问题,并且缺少了类似 TreeSet, TreeMap 这样的数据结构,导致在高级别竞赛中会有瓶颈。而C 语言是一种非常底层的语言,缺少面向对象,范型等机制,比较适合硬件相关的开发场景。相比而言, Java 和 C++ 能更好的支撑大型项目的开发,在实际生产中应用非常广泛,并且效率高,在保证深入USACO算法竞赛的同时,对于今后的工作也是非常有帮助的。

当然,如果学生已经学习了 Python 语言,那么也不用纠结,可以直接使用 Python 参加铜组的竞赛,后续个人确实比较喜欢算法学习,准备深入学习下去,这个时候可以再考虑换一种语言,估计做这个决定的时候,很可能是你在金牌级别的时候了,到达这个能力级别的学生,相信对编程语言的理解已经很不错了,转其他语言也会非常快的。

对于算法来说,任何一种编程语言都是为了表达算法思路的,所以编程语言不重要,背后的思维才更加重要。但是,语言确实能够影响一个学生的编程习惯,从这个角度来说,又确实非常重要。所以选择一种历经考验,应用广泛的语言对于今后求学就业都会更有帮助,从这意义上来说,Java,C++ ,Python都是非常好的语言,都有各自的一片天地,不管选择哪个,都是最好的决定!

【竞赛报名/项目咨询请加微信:mollywei007】

微信扫一扫,分享到朋友圈

零基础学生应该学什么编程语言?
上一篇

2022年7-12月份国际竞赛时间规划表

下一篇

瑞典隆德大学硕士预科课程设置及申请要求

你也可能喜欢

  • 暂无相关文章!

关注热点

返回顶部