少儿编程
鱼老师的少儿编程课
让孩子用编程表达自己的想法
不是考级、不是刷题,而是像画画和音乐一样,用程序讲故事、做动画、做游戏。
我是谁,为什么开始教少儿编程?
你好,我是鱼老师,一位有近 30 年经验的老程序员。1996 年中专毕业后,我靠自学进入软件行业,在北京、珠海做过多年的后端开发,2025 年从珠海金山办公离职,开始走独立开发这条路。
离职后,两位上三年级的孩子都对编程产生了兴趣,我就在家里办了一个小型的“私房编程班”,先教自家孩子,再带邻居和朋友家的孩子。几轮课下来,我对少儿编程的困惑、坑和乐趣,都有了更直接的体会,也更清楚家长真正关心的是什么。
少儿编程是智商税吗?
很多家长会问:学了少儿编程,多久能做出一个 App?能不能马上做一个小程序?当发现短期做不到这些,就会怀疑“是不是被割韭菜了”。
在我看来,少儿编程更像少儿美术、舞蹈、围棋,它不是职业培训,而是一种长期的兴趣培养:
- 像画画一样,孩子可以通过动画和游戏,把脑子里的创意做出来;
- 像围棋一样,锻炼的是逻辑思维和专注力,而不是某个考试分数;
- 顺带练习电脑操作、键盘打字,为将来使用电脑打下基础。
所以,我给孩子上的课目标很简单:不是把孩子培养成程序员,而是让他们敢想、敢做、敢动手。
为什么要学少儿编程?
相比奥数、围棋这些传统的“训练思维”的方式,少儿编程对普通孩子更友好:
- 聪明的孩子,可以在里边学算法、做复杂游戏;
- 普通的孩子,也能做出属于自己的动画、故事和小作品,有成就感;
- 在 Scratch 里,编程、绘画、音乐可以融合在一起,兴趣点更多。
更重要的是,在 AI 普及的未来,编程思维很可能会变成一项“通用能力”。不一定人人都要写底层代码,但能把问题拆解成步骤、和电脑“说清楚该做什么”,会越来越重要。
孩子到底该学什么语言?
少儿编程大致可以分两类语言:
- 图形化编程语言:比如 Scratch,用拖拽积木块的方式来写程序,直观、好玩,很适合低年级孩子;
- 文本编程语言:比如 Python、C++,需要用键盘敲代码,能力更强,也更贴近日常开发。
麻省理工大学开源的 Scratch 提供了非常友好的图形化编程体验,市面上大多数少儿编程平台,操作方式都和它类似。我给小朋友上课用的图形化系统,也是基于 Scratch 改造的。
简单的年龄建议可以这样记:
- 四年级之前:建议都先从图形化编程开始,重点是兴趣和动手;
- 四年级以后:可以根据孩子的情况,逐步尝试 Python 或 C++。
没有基础的孩子,完全可以—and 也更建议—先从图形化编程入门。直接上来学 Python / C++,反而可能因为枯燥和难度,一开始就被劝退。
Python 和 C++ 怎么选?
给孩子选语言,其实可以用一个很简单的判断:
- 如果目标是走竞赛路线(信奥赛),争取中考入学加分 → 选 C++。
- 如果目标是培养兴趣、做一些实用的小项目 → 选 Python。
走竞赛路线的前提是:数学成绩非常好,主课之外还有大把时间刷题,能承受长期枯燥训练。可以把 C++ 竞赛理解为“多了一门要考试的主课”,并不适合大多数孩子。
Python 则是一门“万金油语言”。从网站开发、数据分析到 AI、自动化脚本,都能看到它的身影。对于以兴趣为主的小朋友来说,Python 既好玩,又足够实用。
别被短视频里的“C++ 焦虑”带着走
短视频平台上,有很多机构为了拉客,会不断强调:“四、五年级还没学 C++ 就晚了!”这种说法容易制造家长焦虑。
事实上:
- C++ 不是比 Python 更“高级”的语言,只是适用场景不同;
- 大多数孩子学 C++ 是为了参加信息学奥赛,而不是为了日常生活和工作;
- 信息学奥赛本质上是筛选少数顶尖选手,对绝大多数孩子来说,性价比并不高。
如果孩子本身就对算法、刷题很上头,那可以支持他走竞赛路线;否则,大可不必被“别的班都在学 C++”这类话语裹挟。
学编程会不会更容易近视?
这是几乎所有家长都会问的问题。现实情况是:电脑和手机已经是未来生活的标配,我们无法完全回避,只能想办法降低风险。
在我的课上,一节课大约 1.5 小时,中间会安排孩子们出去活动、看远处、上厕所,尽量避免长时间盯着屏幕不动。家长在课外也可以配合:
- 控制额外的电子设备时间;
- 鼓励户外运动和球类活动;
- 定期做视力检查,及早干预。
我自己做了一款少儿编程软件:FunCode
为了更好地给孩子上课,我开发了一款自己的少儿编程软件 FunCode,它既是课堂上用的教学工具,也是我独立开发的一个长期项目。
- 基于 Scratch:界面对孩子非常友好,依然是拖积木的方式;
- 本地运行,部署简单:使用 SQLite 文件数据库,一键运行,无需复杂环境配置;
- 跨平台:支持 Windows / macOS / Linux,适合家庭和小型编程培训机构;
- 功能丰富:除了图形化编程,还集成了流程图 (Excalidraw) 和 Python 支持。
在实际课堂上,我用 FunCode 带孩子们做动画、做小游戏、画流程图,也逐步引导高年级孩子接触 Python。它既是一款软件,也是我对“少儿编程应该是什么样”的一次尝试。
如果你对这款软件的功能、安装方式和开发过程感兴趣,可以点击导航栏的「我的软件」,或直接前往 FunCode 项目的 GitHub 仓库查看详细说明。