Python 太低级,我选 C++?码农奶爸带你揭穿少儿编程的骗局

2021-01-24 22:02:44 2733点赞 11136收藏 1355评论

创作立场声明:由玩牛牛原创,欢迎转载

最近在某乎看到一篇文章,大意是海淀妈妈们已经嫌弃 Python 低级,准备让娃直接入门 C++。看得我这个写了 15 年代码的老码农心惊胆战,感觉随时都会被后浪拍死在沙滩上。我其实非常赞成小朋友学习编程的,但做为一名码农奶爸,我觉得还是有必要给各位海淀妈妈们解释一下什么是计算机编程,C++ 和 Python 有什么区别,娃是否应该学习计算机编程,以及编程怎样从入门到放弃。

什么是计算机编程

学习计算机编程,简单来说就是学习怎样给计算机下命令。你说话,让计算机听明白,然后老实去做,和你平时教育娃没什么区别。不过计算机非常听话,只要你能说明白,他就一定能按你的意思执行,比带娃省事多了。

当然,想要给计算机下命令,你得先了解计算机。我们天天使用的电脑、iPhone、iPad 等等,其实遵循的都是“冯·诺伊曼架构”,简单说就是要有 CPU,内存,显示器和键盘。你用键盘给 CPU 下命令,CPU 和内存一起合作,算出结果输出给显示器就可以。如下图所示:

Python 太低级,我选 C++?码农奶爸带你揭穿少儿编程的骗局

不过 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 太低级,我选 C++?码农奶爸带你揭穿少儿编程的骗局

事实上,这个世界上无论是小朋友还是老码农,都在用 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 个条件:

  1. 对编程本身非常感兴趣,也有一定的理解力

  2. 有一个真正懂得编程的老师指导

  3. 你对娃在编程上没有过高期许

我是推荐让娃学习 Python 编程的,因为编程真的好玩,也真的能获得成就感。

少儿编程该怎样入门

从我个人经验来说,学好编程只需要两个条件:

  1. 带着目标学习

  2. 一个字一个字亲手写代码

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

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

Python 太低级,我选 C++?码农奶爸带你揭穿少儿编程的骗局

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

Python 太低级,我选 C++?码农奶爸带你揭穿少儿编程的骗局

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

总结

如果你真的坚持完整的看到这里,其实已经不需要这份总结了。对于想偷懒的,直接上干货吧:

  1. 不要让娃从 C++ 入门编程,这样只会加速娃放弃学习

  2. 学习编程不会提高娃的数学成绩,也不会提高逻辑思维能力

  3. 绝大部分娃最终都会放弃,不要对娃有太高的期许,保留乐趣最重要

  4. 如果娃有兴趣,坐得住,老师靠谱,可以从 Python 入门编程

最后,对于想入门少儿编程的家长,最重要的就是给娃设定好目标,让娃坚定的一个字一个字编写每行代码。当克服重重困难,把程序成功运行起来的那一刻,娃会明白这些努力都是值得的。

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

展开 收起
1355评论

  • 精彩
  • 最新
  • 受教了。看到的很及时,刚上完体验课,幸亏还没买。 [皱眉]

    校验提示文案

    提交
    没浪费我码这么多字,能帮一个是一个 [得意]

    校验提示文案

    提交
    非常感谢。很及时,很实用

    校验提示文案

    提交
    还有32条回复
    收起所有回复
  • if下面的执行语句竟然没有TAB空4个空格,差评!

    校验提示文案

    提交
    哈哈 发布了才发现缩进都给我弄没了 [无所谓]

    校验提示文案

    提交
    用tab差评!虽然好几年没写代码,但是也知道用四个空格,不能用tab代替

    校验提示文案

    提交
    还有34条回复
    收起所有回复
  • 看明白了。个子高的人都穿大码的鞋,所以我给娃穿大码鞋子他就会长得高

    校验提示文案

    提交
    有钱人士都花钱多,所以想成功先多花钱,现在的自媒体真就这么宣传。

    校验提示文案

    提交
    哈哈哈通透

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 少儿编程刚起来那阵子,我觉得它就是个笑话,必定会失败,我现在还抱这样的想法,我没想到的是,它竟然能够骗那么久。。。。有些家长真的是疯了。。

    校验提示文案

    提交
    家长疯的太多了,毕竟人云亦云,只是国再来一脚,更是要乱好久

    校验提示文案

    提交
    美术 钢琴不都一样

    校验提示文案

    提交
    还有20条回复
    收起所有回复
  • 有个词叫教育产业传销化

    校验提示文案

    提交
    这个词可以,学到了

    校验提示文案

    提交
    python现在就是传销大户

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 学?学个屁!我自己就是干it的,累死累活就是为了让后代不干it. 小孩子,就要好好玩,少坐,多活动,有个好身体,我现在腰椎颈椎都有毛病。学?学个屁!

    校验提示文案

    提交
    考编制?创业?做店员?好好想想吧

    校验提示文案

    提交
    果然IT男的眼里除了IT只剩下考编制、创业、做店员;不让小孩学IT的目的,就是不要如此狭窄的眼界

    校验提示文案

    提交
    还有24条回复
    收起所有回复
  • 翻了下留言,张大妈上果然互联网的人不多呢。本文的实际是作者的炫耀贴啊大伙没发现么 [欢呼] 核心“靠word和PPT”妥妥的高级总监啊大佬 [棒棒哒] 请问您手下还需要pm或者pd么?自荐下

    校验提示文案

    提交
    多数大厂组长基本很少写代码,基本靠这两混了

    校验提示文案

    提交
    excel都不用的么? [傻笑]

    校验提示文案

    提交
    还有15条回复
    收起所有回复
  • 作为现役程序员,想说与其花大力气和大量时间让孩子学编程语言,不如把这些时间给孩子练习数学和玩。

    校验提示文案

    提交
    太对了,数学高材生可以在编程路上走很远。

    校验提示文案

    提交
    真心请教为什么呢? [观察] [观察] [观察]

    校验提示文案

    提交
    还有18条回复
    收起所有回复
  • 我慢慢从床底下的纸箱里 翻出了DOS6.22入门与精通 还有装着TURBO C TURBO BASIC的威宝牌5寸软盘。准备投身培训行业了。

    校验提示文案

    提交
    DOS622不应该是三点五寸盘么?

    校验提示文案

    提交
    maxell 问威宝给你多少钱他给双倍

    校验提示文案

    提交
    还有26条回复
    收起所有回复
  • 求助各位大神,我家女儿已经3岁了,现在学c++还来得及吗?

    校验提示文案

    提交
    来不及了,邻居家孩子也是3岁,已经在造火箭了。

    校验提示文案

    提交
    哈哈哈哈哈哈

    校验提示文案

    提交
    还有17条回复
    收起所有回复
  • 已经帮娃放弃了

    校验提示文案

    提交
    说得对,双手点赞

    校验提示文案

    提交
    没高等数学做理论支撑,学这些大部分能真就图一乐

    校验提示文案

    提交
    还有11条回复
    收起所有回复
  • 编程课,就是一帮失业的码农,开始搞起传销一样

    校验提示文案

    提交
    不是失业码农,很多培训老师连对象都不知道是啥

    校验提示文案

    提交
    对象不就是女朋友吗

    校验提示文案

    提交
    还有7条回复
    收起所有回复
  • 其实培养孩子如今只有一条路,读本地排名前五最好是第一的公办小学,努力读好学校安排的,有机会有能力就多参加学校的兴趣班。其他统统都是浪费精力和金钱的事!小朋友也会浪费掉!

    校验提示文案

    提交
    公办不一定好,应该去掉公办二字

    校验提示文案

    提交
    公办不一定好,私立一定比较差。

    校验提示文案

    提交
    还有146条回复
    收起所有回复
  • 孩子好好读书,锻炼身体,培养一些兴趣艺术。父母好好赚钱,尽可能把起跑线往前推,最好推过几代人。

    校验提示文案

    提交
    你是我的真值友,教育观一模一样,我把这个都打印出来挂电脑前了

    校验提示文案

    提交
    好好读书身体重要!!!

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 就像学数学,幼儿园累死累活非学会两位数加法,到了三四年级分分钟跟着老师一节课就学会了。大一点逻辑思维发育好了,程序语言就很容易了。

    校验提示文案

    提交
    三四年级跟着老师一节课就学会?你是没见过三四年级个位数加减法掰着手指都算不对的学生 [邪恶] [邪恶] ,每个班都有几个这样的。真的一节课就学会了的也是只有几个 [邪恶] [邪恶]

    校验提示文案

    提交
    那还是在幼儿园学会的那几个

    校验提示文案

    提交
    还有10条回复
    收起所有回复
  • 你不懂。。。信息学奥林匹克比赛考的是C,C++。。。

    校验提示文案

    提交
    对,估计他没小孩,你以为家长真金白银掏出来课时费都是傻子啊。我们这重点高中招生有信息学特长生名额,都冲这个去的。

    校验提示文案

    提交
    你是明白人 [观察]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 什么都从流行的入门有必要吗?py不就是各种库,基础部分哪个不一样。能让孩子们体验乐趣才是重要的,所以我推荐html css js [脸红] [脸红] [脸红]

    校验提示文案

    提交
    [喜极而泣] [喜极而泣] [喜极而泣] 孩子们都高兴坏了

    校验提示文案

    提交
    我去,良心家长 [傻笑] [大囧] [大囧] [大囧]

    校验提示文案

    提交
    还有6条回复
    收起所有回复
  • 哎呀,学的语言乱糟糟,初中basic学起,大一学qb过二级,大二学vb,大四自学asp做网站,工作后搞SEO,SEM用php和html多。。。哦对了我曾经是高中化学老师 [喜极而泣]

    校验提示文案

    提交
    basic。。。不看您说我都忘了我还学过这个 [欢呼]

    校验提示文案

    提交
    basic都是回忆啊,大学时用文曲星自学basic,选修课有汇编,必修课有delphi,现在孩子上乐高课程后主动要求报名学习scratch [傻笑]

    校验提示文案

    提交
    还有14条回复
    收起所有回复
  • 编程学什么语言不重要,关键是要学编程的逻辑思想。通俗点说就类似你想表达某一个意思,你是用中文还是英文的关系,别人能懂就行。

    校验提示文案

    提交
    这句话感觉在那里看过 哈哈哈哈

    校验提示文案

    提交
    收起所有回复
  • 在微博上看到个同行程序员吐槽,我儿子3岁了,还不能手写链表,我怀疑他不是亲生的。 [皱眉]

    校验提示文案

    提交
    搞it比溜冰还香?

    校验提示文案

    提交
    你问他,他三岁的时候能不能写helloworld

    校验提示文案

    提交
    还有1条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

玩牛牛

Ta还没有介绍自己

发文累计获赞2733,内容被1.1万人收藏

关注 打赏
最新文章 热门文章
11.1K
扫一下,分享更方便,购买更轻松