ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

C++和Python,孩子学编程先学哪个?别跟风

C++和Python,孩子学编程先学哪个?别跟风 我是汪阳青。我从事青少年编程教学工作, 时间已经接近十年了在后台的客服工作中被频繁询问的一个核心问题就是: “汪队, 我家小孩子刚刚开始接触编程知识, 究竟应该首先选择C课程学习, 还是应当先进行其他编程语言的学习”许多家长的决策模式通常是盲目追随社会潮流, 他们观察到周围其他儿童正在学习某种特定内容, 便立即模仿这一行为, 如果听闻C语言能够获得竞赛奖项, 他们就立刻报名参与如果听说某些课程较为简单且容易入门, 他们也毫不犹豫地选择报名。我必须说出一番坦诚实在的话语: 编程语言工具自身并不存在高级或者低级的分别性, 为孩子选择具体学习对象的行为, 绝对不应当依据外界风向来进行决策, 这一决策的唯一合理依据, 应该是家长为学生孩子所明确制定的长远教学目标。因为目标和目的存在着差异, 所以起始的点与行驶的轨迹便会有着完全不同的状态。在当前这个时间点, 我把这一件事情进行极其细致的拆解与说明, 以便能够将其讲述得更加清晰透彻, 当你在阅读完这一段文字之后, 你的内心大体上就能够对情况有所认知并且有了明白的掌握。先用一张表格, 把那两个目标以及对应的语言状况给对齐匹配好, 然后再对照一下你自家孩子的实际情况, 从而初步确定一个大体的方向。观察项家长要看什么孩子的目标方向更适合的语言主线走信息学竞赛、信奥主线(CSP-J/S、GESP等)C是主流主线语言纯兴趣、做小游戏小应用、培养计算思维上手友好、成就感来得快年龄小、还没定方向(一二年级)先图形化打基础,不急着选语言咱们先来谈一谈那个最关键的点, 那就是孩子究竟走不走信奥竞赛的路子, 这确实是一个特别重要的分水岭。要是你为孩子定下的目标就是信息学竞赛这一条路的话, 那最终期望的成绩是拿到CSP-J/S的奖项, 并且打算对孩子进行算法和数据结构方面的系统性训练, 那么这个时候选择的主线语言基本上就会确定地指向C了。这个背后的原因并不复杂, 主要就是因为在国内主流的信息学比赛的评测环境里面, 还有相关的参考资料, 以及教练员们建立起来的教学体系当中, 大多数时候都是紧紧围绕着C这一种语言来展开工作的, 所以它成了不二的选择。这句话的意思并不是说C语言本身高人一等, 而是因为在这一特定的赛道里, 它实际上扮演着通用语言的这样一套标准协议的角色。你如果提前选择去使用其他的编程语言, 那就像是绕远路的走法, 那么在后来的阶段里面终究是还得要切换回到C上边的路径中来, 如此的话反而是白白地多走了不必要的弯路。所以对于这种方向非常明确就是需要直接去面对参与竞赛的人群来说是不应该有任何犹豫的态度的, 一定要按照关于C的这种技术体系结构来做出来合理的计划安排与部署才行。但是, 要是孩子仅仅是出于个人兴趣, 只想开发一点小型的游戏、动画或者实用工具, 并且非常享受那种能够依靠书写代码来创造出实物的快乐过程, 那么这确实可以作为一个比较友好的起步选择。因为它的语言结构非常清晰简洁, 仅仅借助一行简单的指令就可以迅速呈现出可视的效果, 这样一来, 孩子在完成两堂课的学习之后就能够马上看到自己所编写的内容转化为具体的成果, 这种迅速的成就感更容易帮助他们长久地维持住最初的兴致。我接触过非常多的儿童, 这些孩子刚接触这一领域时, 我会先把“编程这件事情是特别有意思的”这种体验给他们建立起来, 至于后续他们是不是愿意朝着参与竞赛的方向去发展, 这还要依据孩子的个人兴趣以及自身能力, 然后慢慢地去进行观察和考量。对于这类家庭而言, 我不赞成在一开始就非常强硬地把C语言塞给孩子们, 因为这种做法比较容易出现的情况, 就是会把孩子们的热情和积极性给慢慢消磨掉。在这里, 我要把话单独说清楚一句给各位听, 千万别被那种声称信奥是一个低成本捷径的说法给带偏了思路, 信息学竞赛其实是一条高质量而且需要长期坚持下去的路径, 但它绝对不是什么花很少的钱、走很近的路就能快速成功的事情, 这件事真正需要的不是别的, 恰恰是孩子本人有愿意长期坚持投入的心志, 能够一点一点地去啃那些复杂的算法内容, 并且要有足够的耐心去扛得住那种反复调试程序所带来的枯燥感。C本身的难度本来就比较高, 如果孩子的发展方向还没有确定清楚, 兴趣点也没有稳定下来, 你为了所谓的“拿奖”而去强迫孩子硬上手学习C, 这种情况很可能出现孩子还没有体验到学习的乐趣, 就先产生了畏惧心理。所以我一直强调要先看方向、再定语言, 顺序绝对不能反了。针对那些年纪比较小、编程方向还没有确定的孩子, 我的建议是千万不要着急去做出一个非此即彼的决定, 也就是不要在这门语言和其他某个未明确指选项之间仓促地进行挑选。对于处于一二年级阶段的孩子, 首先应当采用图形化的方式来搭建地基, 以便把关于逻辑、顺序、循环以及条件这些底层的思维方式梳理清楚等到差不多到了三年级的时候, 需要进行一次从图形化界面向文本代码形式的过渡工作, 这个步骤堪称关键的桥梁, 旨在帮助孩子们从拖动积木块的操作状态中, 比较平滑地转换为敲击代码键盘实际操作的模式而在四年级以后再以C语言的普及作为主要线索和方向, 并且逐渐地去联系信奥赛事的相关要求。按照这个路径走下来, 孩子的思维是连贯的。语言只是工具, 至于什么时候上、上哪个, 都跟着他的成长节奏来, 而不是跟着别人家的节奏来。竞赛的方向应该明确, 如果走C这一条主线去参加竞赛。如果仅仅是出于个人兴趣, 可以从入门阶段开始学习。整体的顺序是先确定参赛方向, 然后再选择具体的编程语言。年龄小的孩子不需要急着在两种编程语言之间做出非此即彼的抉择。可以先以图形化编程作为基础入门, 随后逐步过渡, 最终再转向C语言的普及性教学主线。整个学习过程需要紧密跟随孩子自身的节奏进行安排。有几位家长问了非常多的问题, 我现在就一个一个地来解答一下他们的疑问。问: 已经先学习了, 未来想要参加竞赛, 现在还来得及吗?答案是, 完全来得及。之前培养出来的逻辑思维以及编程上的那种习惯, 绝对不会是白费的功夫。如果真得要转向竞赛这条主线去走的话, 只需要按照部就班的步骤, 切入到C这个体系里面去, 把算法和数据结构这一套重新搭建起来就可以了, 前面所打下的这些思维方面的基础, 它反而是一种助力, 所以并不算是从零开始这种状态。问: 考虑到孩子目前才处于一年级的学习阶段, 这种情形下, 选择越早去学习C这个编程语言,是否真的能够带来更为明显的竞争优势呢?关于这个问题, 我们的回答是不建议的。对于一年级学生而言, 使用图形化编程来打下牢固的逻辑思维基础, 这一点是更重要的。C这种编程语言难度较高, 而且比较偏向抽象思维, 如果让孩子过早地强行学习, 很容易产生畏惧困难的心理。等到了三年级左右的时候, 应该做好从图形化编程向文本编程过渡的准备。等到四年级之后, 再继续进入C这个普及型的主线学习, 这样的节奏会更加顺畅一些。大家都会问说, 看着别人家的孩子都去学习C语言, 那我家里面的孩子如果不学这个程序代码的话, 是不是就会落在后面呢。关于落后与否的问题, 其实并不取决于学习了哪一门语言, 而是取决于孩子有没有切实地把底层思维*基础给打扎实, 以及方向是否安排得正确。如果一味地跟随潮流去选择语言, 那么在学习的过程中很容易发现这样并不可行。建议先想清楚孩子是打算为了参加竞赛而学习还是仅仅出于兴趣爱好再做出决定, 这样的做法肯定比盲目地去跟着大众跑要更加稳妥一些。说到底, C从来就不是那种非黑即白的单选题, 它会根据孩子的目标而改变。如果目标是竞赛, C就是主线如果是为了培养兴趣, 那么它就是友好的起点如果孩子方向还没定下来, 那就先用图形化把思维打牢, 留足够的过渡余地。不要盯着别人家孩子学什么, 先想清楚自家孩子要往哪里去, 语言的选择自然就有了答案。
返回列表