创作态度声明:由玩牛牛原创,欢迎转载

Python太始级我选 C++?码农带你揭穿少儿编程的骗局_措辞_递归 绘影字幕

最近在某乎看到一篇文章,大意是海淀妈妈们已经嫌弃 Python 低级,准备让娃直接入门 C++。
看得我这个写了 15 年代码的老码农闻风丧胆,觉得随时都会被后浪拍去世在沙滩上。
我实在非常附和小朋友学习编程的,但做为一名码农奶爸,我以为还是有必要给各位海淀妈妈们阐明一下什么是打算机编程,C++ 和 Python 有什么差异,娃是否该当学习打算机编程,以及编程若何从入门到放弃。

什么是打算机编程

学习打算机编程,大略来说便是学习若何给打算机下命令。
你说话,让打算机听明白,然后诚笃去做,和你平时教诲娃没什么差异。
不过打算机非常听话,只要你能解释白,他就一定能按你的意思实行,比带娃省事多了。

当然,想要给打算机下命令,你得先理解打算机。
我们每天利用的电脑、iPhone、iPad 等等,实在遵照的都是“冯·诺伊曼架构”,大略说便是要有 CPU,内存,显示器和键盘。
你用键盘给 CPU 下命令,CPU 和内存一起互助,算出结果输出给显示器就可以。
如下图所示:

不过 CPU 非常傻,只认识 0 和 1 两个数字。
以是如果你想让他算一道算数题,你得见告他一串 24 位的数字 1000 0011 1100 0000 0000 0001, 他才能听懂。
无论你用 Python、C++ 还是别的编程措辞,终极都会转换成这 24 个数字。
像不像平时教诲娃,无论汉语、英语还是方言,终极都得翻译成拳头,娃才能明白一样?

顺带说一下,这串 24 位数字叫做机器码,翻译成码农能看懂的措辞是“ADD %EAX, 1”,说人话便是“别玩了,快给老娘算 x+1 即是几”。

C++ 比 Python 高等吗

随着科技的发展,涌现了非常多的编程措辞,编程措辞之间也确实有高低级之分,但不是培训班 Tony 老师见告你的高低级。

像刚才说的 ADD %EAX, 1 叫做汇编措辞,是低级措辞,而 Python 和 C++ 则同属于高等措辞范畴。
他们在刚才的例子中,都可以同样的代码 x += 1 来表示,他们之间乃至还有点亲戚关系,C++ 是基于 C 措辞“改进”而来,Python 则是由 C 措辞编写的。

那么 Python 和 C++ 谁更高等呢?这个须要分领域回答。
数据科学和人工智能领域,Python 是当之无愧的王者,但在高频交易、网络游戏领域,C++ 可以说是目前的业界标准。
对付少儿编程领域来说,Python 在大略易入门方面险些没有对手。

Python 有多大略呢?写一个同样功能的网站,用汇编措辞,C++ 与 Python 的事情量比拟大约是 1000000:3:1。
这是什么意思呢,便是 Python 程序员在和女生约会的时候,C++ 程序员刚加完班,而汇编程序员已经当场去世了。

那为什么 Tony 老师说 C++ 比 Python 高等呢?当然是由于学同样的东西,他能收 3 倍的课时费,贵的就高等,没毛病。

Tony 老师大概会回嘴说 Python 只是玩具措辞,大一点的孩子都不用。
我们可以看一下 2016 ~ 2020 编程措辞盛行度排行榜:

事实上,这个天下上无论是小朋友还是老码农,都在用 Python,也都爱用 Python。

Python 和 C++ 的真正差异是编译型措辞与阐明型措辞的差异,大略来说便是 C++ 是直接变成 0101 让 CPU 运行的,而 Python 则须要随身带个翻译,这就导致 Python 在运行时比 C++ 慢 10 - 100 倍旁边。
不过不用担心,现在的 CPU 已经快到让你觉得不到任何差异。

娃该当学习打算机编程吗

对付娃是否该当学习编程这件事情,如果中高考不考,可以完备不用学。
Tony 老师每每见告你学习编程,可以演习小朋友逻辑思维,让小朋友数学更好。
但原形却正好相反,是逻辑思维好的小朋友,学编程更随意马虎而已。

编程措辞中用到的数学逻辑只有 3 个,条件判断,循环与递归。

条件判断

条件判断便是你见告娃如果要吃糖,就要先听话。
用程序表示便是

if 听话:

可以吃糖

else:

直接吃拳头

循环

循环便是娃一直的要你买玩具,买完这个买那个。
用程序表示便是

while 玩具玩腻了:

和妈妈要新玩具

递归

递归便是娃不断的问你这是什么?比如指着天上问你这是什么?你说这是太阳。
他又问太阳是什么,你说太阳是一个恒星。
他又问恒星是什么,你说恒星是宇宙中一种星球。
他又问星球是什么,你说星球便是星球,去找你爸玩。
用程序表示便是

def ask(xx 是什么):

if 问烦了:

return 去找你爸玩

else:

ask(xx 是什么)

可以看到递归和循环有点相似,在实际编程中递归和循环也是可以互换的。

看到这里,你还以为少儿编程可以提升数学成绩吗?编程不会提升娃的智商,也不能像弹钢琴、说意大利语一样拿来炫耀,从功利的角度并不划算。

编程真正的代价在于创造,你可以轻易创造一个完备属于自己的作品,可以分享给朋友,乃至可以分享给全天下。
这种创造产品的乐趣,这种被人认同的造诣感,这种一次次经历失落败但终极得到成功的喜悦,才是学习编程真正的代价所在。

以是,如果你的娃知足下面 3 个条件:

对编程本身非常感兴趣,也有一定的理解力有一个真正懂得编程的老师辅导你对娃在编程上没有过高期许

我是推举让娃学习 Python 编程的,由于编程真的好玩,也真的能得到造诣感。

少儿编程该若何入门

从我个人履历来说,学好编程只须要两个条件:

带着目标学习一个字一个字亲手写代码

学习编程实在是一个非常弘大的过程,你须要学完编程措辞、标准库、常用第三方库、网络协议、数据库、操作系统、数据构造、常用算法等一大堆内容,才能真正做一个产品级的程序。
但是对付少儿编程来说,学好编程措辞本身,一点点标准库和第三方库,也可以做出一些好玩的程序。

以是入门编程,你最须要的是给娃定一个目标,让他能带着任务学习,比如编写一个小小的游戏,或者让机器人跑起来。
有了目标,就可以按照下图一步一步开始学习:

学完蓝色部分,基本什么也做不了,但是对编程本身会有非常清晰的观点,大部分娃学到这里也就结束了。
学完橙色部分,就可以实现有趣的小游戏,或者让机器人为所欲为跑来跑去,娃会有满满的乐趣和造诣感。
绿色和紫色部分,预留给走专业路线的娃,如果上了高中依然热爱编程,并且有剩余精力,可以开始学习这两部分内容。
不过纵然学完紫色部分,也不代表编程就学完了,展示一下专业码农的路线图:

学完这些,才能差不多找一份互联网中级码农的事情,而且职业生涯还比较艰辛。
行业变革特殊快,技能每天都更新,人为全是加班费,年轻人便宜还玩命。
以是如果真想要从事职业码农,一定要慎重。
作为上一代码农,现在我基本只能靠 Word 和 PPT 混日子了。

总结

如果你真的坚持完全的看到这里,实在已经不须要这份总结了。
对付想偷不要让娃从 C++ 入门编程,这样只会加速娃放弃学习学习编程不会提高娃的数学成绩,也不会提高逻辑思维能力绝大部分娃终极都会放弃,不要对娃有太高的期许,保留乐趣最主要如果娃有兴趣,坐得住,老师靠谱,可以从 Python 入门编程

末了,对付想入门少儿编程的家长,最主要的便是给娃设定好目标,让娃武断的一个字一个字编写每行代码。
当战胜重重困难,把程序成功运行起来的那一刻,娃会明白这些努力都是值得的。

祝愿每一个娃都可以康健快乐的发展,每一位家长都少一点焦虑,多一点信心。