欢迎光临散文网 会员登陆 & 注册

高考后想学编程,如何选择?

2023-06-18 17:41 作者:球菌Matrix  | 我要投稿

作为一个高中乃至更早的阶段参加过信息学奥林匹克竞赛(OI)的社畜,对于这个问题我觉得有一定的发言权。

本人的代码学习从Basic开始,然后转Pascal,最后专精于C++,进入大学后接触Python,R,Matlab等编程语言。

为了回答这个问题,需要清楚自己的需求。如果你未来想学习的是计算机相关的专业,比如CS、软件工程、AI等专业,那么强烈建议尽早地学习C++(Goto Part.1)。C++相较于Python,Java都更加底层,效率更高,同时也离操作系统更近,对后面的学习有不少帮助。如果你未来学习的是数学、统计、经济、金融等乍一看和编程关系不大、但涉及数据处理的专业,那么建议你可以稍微学习一些Python,掌握一些基本库的使用(后面具体介绍),可以省去后面临时抱佛脚的匆忙(Goto Part.2)。部分专业根据学科需要会有特定软件需求,会有专门课程覆盖,此处我们略过。如果你确定你的专业和代码无关,你可以去享受暑假。个人觉得目前几乎所有的专业的都和代码脱不开干系。当然,开学再学也不算太迟,只是学业压力较大,更建议在暑假提前接触编程。

Part 1. 计算机相关专业的学习建议

你未来的专业课程中将可能包括下面几座大山:计算机系统基础、操作系统、编译原理。不出意外的话,这些课程或多或少会使用C++或者C语言进行介绍,并使用它们完成课程作业。(当然不排除某些学校课程改革,引入Rust语言实现操作系统)

由此可见,C++是你避不开的一道坎,不妨尽早地开始学习。注意这里指代的是真C++,而不是(C with STL)。作为入门,学习C with STL是没有问题的,但是建议完整地去了解C++的全貌(modern C++)。

这里推荐听一听国外的C++讲解课程,看看一些最近更新的教材,比如《Objective-Oriented Programming with C++》。国内的一些C++教材,相对有些过时,作为语法入门可以稍微看看,不建议作为学习主力。

作为一个未来计算机相关专业的同学,你需要知道

算法+数据结构=程序

所以,在掌握语言以后,就需要学习算法和数据结构了,这是一个冗长、痛苦的过程,我相信会有一门或以上课程会cover这部分内容,所以不必心急。高考完后,认真地学习一下面向对象C++语言的语法与特性即可。学到什么程度呢,比如问你C++里怎么实现一个生成器(generator)。

Part 2.非计算机相关专业的学习建议

你未来的课程可能有一门编程语言,他可能是C语言,也可能是Python。Anyway,在高考完开始接触学习Python是不会有错的,它更像是一个趁手的工具,而不是一个死板的完成作业的软件。

当你需要处理实习、论文的数据的时候,再盲目地去学习一些数据处理软件或工具,可能并不能用的很顺手。不妨从现在开始,就接触Python,并逐渐掌握numpy,pandas,matplotlib这三个库的使用。

Numpy是Python中最基本的科学计算库之一。它提供了一个强大的多维数组对象(称为ndarray),用于存储和处理大规模数据。Pandas建立在NumPy之上,提供了更高级的数据结构和数据分析工具。Pandas的核心数据结构是DataFrame,它是二维的、标签化的数据结构,类似于Excel的表格。Pandas还提供了丰富的数据操作和处理功能,包括数据清洗、缺失值处理、数据转换、分组聚合、时间序列分析等。Matplotlib是Python中最常用的数据可视化库之一,主要用来画各式图标。它提供了广泛的绘图工具和函数,用于创建各种类型的静态、动态和交互式图表。

将这三个基本库烂熟于胸,对后面的实习、工作都有很大帮助。

写了这么多,归根到底就是选择一个和自己未来规划更贴近的语言,开始学习,Susume(前进)!

当然,最后的最后,如果看到这篇文章的是学有余力的初中生乃至小学生,那么我强烈安利你学习信息学奥赛的相关内容,当你达到能够获得NOIP一等奖的水平时,你的C++编程和算法能力也就有应付计算机包括AI专业本科二年级课程的水平,即使遇到新的编程语言也能很快上手。

如果你对信息竞赛感兴趣,不清楚如何学习规划或者想找一名好的老师,也欢迎找我聊一聊。

我是球菌Matrix,在扎实高效学习信息学奥赛方面有些心得。

高考后想学编程,如何选择?的评论 (共 条)

分享到微博请遵守国家法律