孩子学编程到底是在学什么?

首先我们要明白一点,学习编程到底是在学什么?

是某个前端语言JavaScript?亦或者是PHP?还是当下火热的Python?

都不是,我们让孩子学习编程并不是单纯的学某个语言的语法,而是编程思维。只有掌握了正向的编程思维,我们才能真正的去应对这个语言所出现的问题。才能把这个语言相关的编程题用代码实现出来,用计算机编程思维去思考问题,而不是在学习死知。

那么什么是编程思维呢?

编程思维细化就可以分为 逻辑思维、结构化思维、创新、用户、迭代思维等。这便是我们思考问题的方式,方向,解决问题的方法。也就是说孩子们遇到问题后知道从哪里入手,从哪里着手解决问题。

很少有人不是从零基础开始接触编程的。以CSDN为例,其上的大牛也总结了很多经验、解决问题的方式。诸多前辈造就了当下中国美好的编程学习生态圈。孩子们在优质的教育资源中,在学习编程中的算法和程序设计时,然后结合自身来解决自己的问题,最终融会贯通为己所用。

编程思维是培养出来的

高效率,强工作能力的人总是会在解决问题的时候,首先把问题分解。化繁为简,此时很多小问题已经有了非常成熟的解决方案(搜索引擎可以解决大部分的问题,我们直接拿来用就可以了,并且记住这种解决问题的方案。),而剩下解决不了的小问题,我们再进行针对性的解决:比如封装个函数来解决这个问题,new一个对象,亦或者配置配置环境变量。

当每一个小问题解决后,一整块大问题自然迎刃而解。


编程思维的训练恰恰是要学习成熟的解决问题的方法:比如if语句用来做分支判断,循环用来解决反复运算、重复执行的问题。穷举法、递推、递归、排序、回溯等等(如果需要当专业程序员,需要学习数据结构和算法,设计模式等等,需要学的东西很多很多。但首先要解决的一个问题,就是自己能写代码解决一般问题。比方说写个天气爬取程序,来获取明天的出门天气情况~)

训练函数抽象,类抽象解决问题。如对有序数组,查找特定数值,没有经过训练,或者初学的人可能直接用循环遍历(相信我们班的孩子们都想到for  in循环了吧哈哈哈)

那么下次碰到这种问题,我们就可以用二分法求解。

做题,要像开发项目的流程一样

之前做一个网站之前我们就需要走走这个流程:

拿到需求---需求分析---利用Axture设计---利用Webstorm编辑代码---利用火狐、谷歌等浏览器测试---之后交付等。

孩子们拿到一个习题,还没有进行分析,就马上敲代码,这个学习方式,是不好的学习方式。

首先分析题目

再设计,用那种数据结构(数据类型)来组织或者保存数据,用那种算法让程序计算效率最高,用面向过程的c还是面向对象的编程范式,还是用函数式编程等等。设计好后,再编写代码,最后写测试。另外如果你想提升自己的编程思维可一定要把算法和数据结构学好。在我们学习Python的时候,可一定要掌握好我强调的那些:for循环,二分法,while循环等灵魂部分哦!


如何才能逐渐养成良好的编程思维思路

只有先经过训练常见的算法,分解问题,会做需求分析,慢慢训练,才会养成自己的思路。

没有人一出生就会编程,只有经过训练,才会学会编程。很多牛*的程序猿用Vim敲代码敲的啪啪响,一会一屏幕代码,为啥那么熟练使用Vim?习惯成自然。

当你训练多了之后,学会一定的套路(老师教授的解决程序问题的程序结构,也就是解决问题的方法),养成独立思考的习惯,假以时日,自然就有思路了。

所以我们不能只关注千树万树梨花开的美好景象,春风顶着冬风吹来的过程才是我们要关注的,任何需要培养的能力永远不可能一蹴而就。

养成独立思考的习惯,养成切分问题,养成大问题化解小问题,养成套用学过的算法、知识、程序才会有思路(所以编程中使用别人的代码解决自己的问题真不算生搬硬套啊)。简单的判断、循环都不会写,就想玩django,何来的思路?

万丈高楼从地起,希望大家脚踏实地的从基础训练起,先达到独立写代码解决一般的问题,再谈项目。


                                                                                                                                --------by  一十五  

你可能感兴趣的:(孩子学编程到底是在学什么?)