小孩子的 计算机语言 学习
发表于 : 2022年 7月 23日 14:35
1. 关于小孩子的 计算机语言学习的 启蒙教育,首推 scratch 图形化编程语言。6,7岁以上就可以开始学习一点了。官方网址是 https://scratch.mit.edu/
我家买过一个 玩具机器人 UBTECH JIMU Robot,在amazon 网址是
https://www.amazon.com/UBTECH-JIMU-Robo ... ast_sto_dp
不贵,现在70来块钱。在 iPad 或 android tablet上可以用 scratch编程。这个机器人的 各种sensor 都比较全。
但对于6周岁的孩子,按照指导书 来把机器人搭好,还是有点难度。需要大人在傍边指导。但一旦搭好后,小孩子就可以在 tablet上 学习 scratch 图形化编程了,基本的 条件语句,循环语句都有了。6岁以上小孩子 基本上都学得会的。
这个比纯粹在电脑上 学习 scratch编程要好的多,有具体的 活动的 玩具来反馈,小孩兴趣会比较高,作为初步入门不错。如果想进一步深入,那就要到 官方网站 去进一步学习了
更正: 网友 hopper指出,这个 UBTECH JIMU robot 用的是 google 的 blockly 语言,不是 scratch。我以为 图形化编程 就是 scratch了,谢谢指出。
不过,最近好像 blockly 和 scratch 正在联合起来。
我们这边中文学校 培训班,用了另外一个机器人,iRobot Root rt0 Coding Robot, 网址如下
https://www.amazon.com/iRobot-Root-rt0- ... to_dp&th=1
优点是 这个robot 已经组装好了,是一个整体,你只要拿过来用,来编程 就可以了,省事不少。也推荐这个。这个也是 scratch图形化编程,缺点是 稍微贵一点。 以上这二个robot 里面选一个 就可以了
更正: 网友 hopper指出,这个也不是 scratch,底层用的是 SWIFT,PYTHON和JAVASCRIPT。不好意思,我一直把 图形化编程 当作 scratch了。
这个 编程序 有 3层level,不过我们只用了 前2层 图形化的 编程界面,和 scratch 也大同小异。后面的 第3层 文字编程 就没有用了。
我最近还在amazon上 看到 这样一个机器人,好像评价还可以,仅供参考。声明:我没有买过 这个机器人,你们自己评估
https://www.amazon.com/Makeblock-Scratc ... to_dp&th=1
关于 Lego 的 Education Spike Prime Set,我花了点 时间 研究了一下,我收回 对它的成见。
相对于 前面推荐的 简单机器人,它可以 组合成 不同的 机器人,可玩性大增。编程模式 也跟 scratch 相近。唯一的缺点 就是贵。所以 如果 不差钱的话,就推荐这个。网址是
https://education.lego.com/en-us/produc ... 4%A2-prime
不要到 Amazon 上买,贵了 100块钱。
网友 lglg 提到:
lego Education SPIKE Prime is the current generation Robot set for First Lego League Challenge Competition. FLL is a wonderful sport for children 9-16 years old worldwide (9-14 in the US). It can be programmed in many different languages, including scratch-based and python based.
for more information, see firstinspires.org.
1.5 关于 scratch 学习的修订
刚开始写这篇文章的时候,我以为 scratch 编程 就是 上述几个 robot 用到的 图形化 编程界面,以为比较简单。
结果 在中文学校 跟着 在电脑上 学了 2个学期 scratch以后 才发现,scratch 编程 如果往深处钻研,其实 挺复杂的。有多任务,有坐标体系,有函数调用,有任务间通讯 等等。你们在scratch 网页上 看一下别人做的 project,可以做 很复杂的 游戏。
所以 强烈推荐 在中文学校 或 别的学校 上个培训班,自己 自学 还是比较 不容易,而且 没有系统性。而且,scratch 编程 至少从 小学2,3年级开始,不能更早了,要不然 小孩子 理解困难,数学储备 不够。
2. 下一步 7,8岁孩子的话,可以先学习一点 电路基本知识,有点感性认识。推荐 Snap Circuits Extreme SC-750 Electronics Exploration Kit,家长可以辅导一下。网址是
https://www.amazon.com/dp/B0002AHQWS/ref=emc_b_5_t?th=1
我家用过,还可以。
3. 再下一步,9,10岁左右,就可以学习 Arduino了。在amazon上 有官方的或第三方的 Arduino Starter Kit 来购买。我也买过,但是在面包板上连线还是一件很枯燥 很费时间的事,还很容易出错,消磨小孩子的热情和兴趣。
在这里推荐 Freenove Projects Kit with Control Board V4,导线都在印刷电路板上连接好了,省下了大量的枯燥的导线连接的时间
在amazon的网址是
https://www.amazon.com/dp/B09DNTTH25?re ... tails&th=1
我家买了,不贵,用下来还不错。
当然,这个学完后,还对 Arduino 感兴趣,可以继续用 Arduino Starter Kit。这个灵活性就大多了,可以按照你的要求 任意组合, 完成更复杂的 project
4. 10岁以上的孩子 就可以学习 正规的计算机语言了。首推 python。
并推荐IDE PyCharm. 网址是
https://www.jetbrains.com/pycharm/
然后下载 community 版本。VSCode 对于初学者 还是有点麻烦,要配置一些东西。不如IDE 比较傻瓜一点。
学习语言,首先从 YouTube上 找到课程学习,然后再学教科书,这样速度会快不少,效果也好一点。当然,最后加深记忆的 还是要多做 project.
python 的 YouTube课程推荐 Python Tutorial - Python Full Course for Beginners. 网址是
我还出了20块钱,买了他的付费的完整教程
教科书 推荐 Python Crash Course, 2nd Edition。 网址是
https://www.amazon.com/Python-Crash-Cou ... 8&qid=&sr=
我学了开始几章,还不错。
还有一本教科书,Al Sweigart 的 Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners,也非常简单实用,推荐。
可以免费看这本书的 电子版
https://automatetheboringstuff.com/#toc
还有一个付费的网上课程,
https://www.udemy.com/course/100-days-of-code/
据说 反响不错。但有些部分 稍微老了点
如果 第一次注册,价格打折到 20块 不到。
备注:网友 wyr 分享了 一些 他们 教小孩 学习 python 和 Java的 一些经验。特别是 把 python 和 Minecraft 结合起来,这是一个很好的 学习python 的切入点。具体情况 参见 他的 回帖。谢谢分享。
关于 python 和 Minecraft 结合的那本书,我在 amazon 找到一本,评价不错的。好像 就是 网友 提到的 那本,仅供参考
https://www.amazon.com/Learn-Program-Mi ... _author_dp
至于 用 python 的 pygame 编程,我在 youtube 上 看到一个教程,我看了,相当不错,推荐。
如果 学有余力的,想进一步 深入的,建议 安装一个 Anaconda package,可以干 很多事
补充:另外 强烈推荐 另一个 youtube 频道,刚发现,python的内容 很多,而且讲得很好,比如 Matplotlib,pandas。而且 全部是 免费的。https://www.youtube.com/@coreyms
他讲得关于 Jupyter Notebook 的也 非常不错
5. 如果 13,14岁以后,想进一步学习 计算机语言,我推荐 C语言。有人可能认为 C++ 或者 Java 更好,工作机会更多。见仁见智了,我认为 C 语言 比 C++ 语法简单不少,比较容易学一点,更贴近实际硬件,只是 指针方面 稍微有点绕。Java 我没学过,不好评价。
先上课,C Programming Tutorial for Beginners, youtube 网址如下。我没学过,已经不需要学了,但看上去 评价不错。
教科书推荐 C Programming: A Modern Approach. 我用过,不错。比C语言 发明者本人 写的教材 C Programming Language 要好。网址如下
https://www.amazon.com/C-Programming-Mo ... 8&qid=&sr=
IDE开发环境
一个就像 教学视频里 提到的 Code::Blocks, 然后按照他的提示 一步步安装,就可以了。
还有很多人 用微软的 Visual Studio Community 版本。但他比较臃肿,安装文件比较大。它的最大优点 是 它的 debug 功能非常强大,程序出问题的时候 比较容易找出 问题在哪里。我现在 也经常用它。它的最大缺点 是 C语言还 停留在 C89 的标准上,1989年的标准,太旧了,连 复数都不支持。当然 对 初学者来说 是够用了。以后学到 C99 或 C11 的时候再换 别的开发环境。
另外,我也用过 Pelles C, Windows 版本,支持 C99, C11 一直到 C17. 下载网址如下
http://www.smorgasbordet.com/pellesc/
我自己 现在 在Linux 上 用 QT Creator 进行 C 语言 和 C++ 开发,Windows 上 也有 QT Creator IDE 的
如果 不需要 GUI编程的话,Visual Studio Code + C/C++ plug in 也可以。可以自己搜索一下 VS Code 的教程
6. JAVA 学习
有人建议在 Python后 学习 JAVA。我本人 对 JAVA一点不懂。有懂行的 推荐一些 给小孩子 学习 JAVA的建议吗?
补充:最近二天 看了一些 Java 的网上课程,同样的用 Class 和 object, 感觉语法比 C++ 简单多了。我看的 网上课程是
他还有 全套Java课程, 需要29美元。
如果 不愿意 付钱的,网上还有 比较全的 免费课程,如以下。但我没看过,自己评估吧
IDE 就像里面 老师说的 用 IntelliJ IDEA Community Edition 版本吧,当然 要先装 一个 Java Development Kit。按视频里 老师的指导去做
课本 暂时 还没有 推荐。
我 学下来的 一点 感觉,Java 有点像 C++ 的简化版本吧,有 Class, 但是语法 没有 C++ 复杂。小孩子吗,用用 单机版的 Java 就可以了
但是对于 成年人来说,如果 Java 只是用在 单机上,其实没有 发挥它的长处。Java 用在 网站上,配合各种 框架 framework,才能发挥它的长处。但这样一来,想要用好 Java, 需要的 网络知识积累 要很多.
7.
如果 有人想让 孩子 参加 美国 电脑奥林匹克 竞赛,有点成绩,以便于 大学入学 申请。可以到他们的 官方网站
http://www.usaco.org/
这个 讲究速度 以评判 你算法的好坏。所以 python, Java 好像都 不太实用。只有用 C 或 C++了,但 C++ 语法 又太复杂,大人 都有点 搞糊涂了。所以 还是 推荐用 C 语言吧。
顺便说一下,如果不搞 usaco,其实 python 可以一直用 很久的,一般人 整个中学阶段 就一门 python 就足够了。学有余力的 可以第二门 学学 C 或 Java
一点 注意事项,如果 C语言 要用到 很大的 数组,必须 放在 main() 主函数 之外 定义,作为全局变量,放在 heap 里。要不然 放在 main() 内部定义,数据 就存在 堆栈(stack)里,堆栈空间有限,很容易造成 堆栈溢出,电脑崩溃的。这点 父母 不是这个 专业的 比较困扰,一般培训教材上 也不说。正确例子如下。
并注意,使用的时候,数组下标 不要超出 你 定义的 范围,要不然 容易引起 电脑出问题
double buffer1[1000][1000];
int buffer2[10000];
void main( ) {
buffer1[235][497] = 3.5;
buffer2[9999] = -20;
}
刚发现 有一个 华人 做 计算机奥赛培训的。我不认识她,也不想做广告。有需要的 自己去 联系她吧
8. 如果 高中的孩子 有浓厚兴趣的,想进一步 探究一下 电脑的。推荐 下面 二个 视频
数据结构的,推荐这个,讲的不错
https://www.youtube.com/user/mycodeschool
谢谢 网友 omicron 推荐
电脑CPU内部结构的,推荐这个,搭建了一个 运算 斐波那契数列的 最简单 CPU。
他的 一系列的 别的视频 也很不错,关于 数字电路的,有兴趣的 可以看一下
我在 华人e网 也 复制了 这个帖子。如果想参考一下 别的观众的意见,也可以去 看一下 这里
https://huaren.us/showtopic.html?topici ... 56&fid=398
我家买过一个 玩具机器人 UBTECH JIMU Robot,在amazon 网址是
https://www.amazon.com/UBTECH-JIMU-Robo ... ast_sto_dp
不贵,现在70来块钱。在 iPad 或 android tablet上可以用 scratch编程。这个机器人的 各种sensor 都比较全。
但对于6周岁的孩子,按照指导书 来把机器人搭好,还是有点难度。需要大人在傍边指导。但一旦搭好后,小孩子就可以在 tablet上 学习 scratch 图形化编程了,基本的 条件语句,循环语句都有了。6岁以上小孩子 基本上都学得会的。
这个比纯粹在电脑上 学习 scratch编程要好的多,有具体的 活动的 玩具来反馈,小孩兴趣会比较高,作为初步入门不错。如果想进一步深入,那就要到 官方网站 去进一步学习了
更正: 网友 hopper指出,这个 UBTECH JIMU robot 用的是 google 的 blockly 语言,不是 scratch。我以为 图形化编程 就是 scratch了,谢谢指出。
不过,最近好像 blockly 和 scratch 正在联合起来。
我们这边中文学校 培训班,用了另外一个机器人,iRobot Root rt0 Coding Robot, 网址如下
https://www.amazon.com/iRobot-Root-rt0- ... to_dp&th=1
优点是 这个robot 已经组装好了,是一个整体,你只要拿过来用,来编程 就可以了,省事不少。也推荐这个。这个也是 scratch图形化编程,缺点是 稍微贵一点。 以上这二个robot 里面选一个 就可以了
更正: 网友 hopper指出,这个也不是 scratch,底层用的是 SWIFT,PYTHON和JAVASCRIPT。不好意思,我一直把 图形化编程 当作 scratch了。
这个 编程序 有 3层level,不过我们只用了 前2层 图形化的 编程界面,和 scratch 也大同小异。后面的 第3层 文字编程 就没有用了。
我最近还在amazon上 看到 这样一个机器人,好像评价还可以,仅供参考。声明:我没有买过 这个机器人,你们自己评估
https://www.amazon.com/Makeblock-Scratc ... to_dp&th=1
关于 Lego 的 Education Spike Prime Set,我花了点 时间 研究了一下,我收回 对它的成见。
相对于 前面推荐的 简单机器人,它可以 组合成 不同的 机器人,可玩性大增。编程模式 也跟 scratch 相近。唯一的缺点 就是贵。所以 如果 不差钱的话,就推荐这个。网址是
https://education.lego.com/en-us/produc ... 4%A2-prime
不要到 Amazon 上买,贵了 100块钱。
网友 lglg 提到:
lego Education SPIKE Prime is the current generation Robot set for First Lego League Challenge Competition. FLL is a wonderful sport for children 9-16 years old worldwide (9-14 in the US). It can be programmed in many different languages, including scratch-based and python based.
for more information, see firstinspires.org.
1.5 关于 scratch 学习的修订
刚开始写这篇文章的时候,我以为 scratch 编程 就是 上述几个 robot 用到的 图形化 编程界面,以为比较简单。
结果 在中文学校 跟着 在电脑上 学了 2个学期 scratch以后 才发现,scratch 编程 如果往深处钻研,其实 挺复杂的。有多任务,有坐标体系,有函数调用,有任务间通讯 等等。你们在scratch 网页上 看一下别人做的 project,可以做 很复杂的 游戏。
所以 强烈推荐 在中文学校 或 别的学校 上个培训班,自己 自学 还是比较 不容易,而且 没有系统性。而且,scratch 编程 至少从 小学2,3年级开始,不能更早了,要不然 小孩子 理解困难,数学储备 不够。
2. 下一步 7,8岁孩子的话,可以先学习一点 电路基本知识,有点感性认识。推荐 Snap Circuits Extreme SC-750 Electronics Exploration Kit,家长可以辅导一下。网址是
https://www.amazon.com/dp/B0002AHQWS/ref=emc_b_5_t?th=1
我家用过,还可以。
3. 再下一步,9,10岁左右,就可以学习 Arduino了。在amazon上 有官方的或第三方的 Arduino Starter Kit 来购买。我也买过,但是在面包板上连线还是一件很枯燥 很费时间的事,还很容易出错,消磨小孩子的热情和兴趣。
在这里推荐 Freenove Projects Kit with Control Board V4,导线都在印刷电路板上连接好了,省下了大量的枯燥的导线连接的时间
在amazon的网址是
https://www.amazon.com/dp/B09DNTTH25?re ... tails&th=1
我家买了,不贵,用下来还不错。
当然,这个学完后,还对 Arduino 感兴趣,可以继续用 Arduino Starter Kit。这个灵活性就大多了,可以按照你的要求 任意组合, 完成更复杂的 project
4. 10岁以上的孩子 就可以学习 正规的计算机语言了。首推 python。
并推荐IDE PyCharm. 网址是
https://www.jetbrains.com/pycharm/
然后下载 community 版本。VSCode 对于初学者 还是有点麻烦,要配置一些东西。不如IDE 比较傻瓜一点。
学习语言,首先从 YouTube上 找到课程学习,然后再学教科书,这样速度会快不少,效果也好一点。当然,最后加深记忆的 还是要多做 project.
python 的 YouTube课程推荐 Python Tutorial - Python Full Course for Beginners. 网址是
我还出了20块钱,买了他的付费的完整教程
教科书 推荐 Python Crash Course, 2nd Edition。 网址是
https://www.amazon.com/Python-Crash-Cou ... 8&qid=&sr=
我学了开始几章,还不错。
还有一本教科书,Al Sweigart 的 Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners,也非常简单实用,推荐。
可以免费看这本书的 电子版
https://automatetheboringstuff.com/#toc
还有一个付费的网上课程,
https://www.udemy.com/course/100-days-of-code/
据说 反响不错。但有些部分 稍微老了点
如果 第一次注册,价格打折到 20块 不到。
备注:网友 wyr 分享了 一些 他们 教小孩 学习 python 和 Java的 一些经验。特别是 把 python 和 Minecraft 结合起来,这是一个很好的 学习python 的切入点。具体情况 参见 他的 回帖。谢谢分享。
关于 python 和 Minecraft 结合的那本书,我在 amazon 找到一本,评价不错的。好像 就是 网友 提到的 那本,仅供参考
https://www.amazon.com/Learn-Program-Mi ... _author_dp
至于 用 python 的 pygame 编程,我在 youtube 上 看到一个教程,我看了,相当不错,推荐。
如果 学有余力的,想进一步 深入的,建议 安装一个 Anaconda package,可以干 很多事
补充:另外 强烈推荐 另一个 youtube 频道,刚发现,python的内容 很多,而且讲得很好,比如 Matplotlib,pandas。而且 全部是 免费的。https://www.youtube.com/@coreyms
他讲得关于 Jupyter Notebook 的也 非常不错
5. 如果 13,14岁以后,想进一步学习 计算机语言,我推荐 C语言。有人可能认为 C++ 或者 Java 更好,工作机会更多。见仁见智了,我认为 C 语言 比 C++ 语法简单不少,比较容易学一点,更贴近实际硬件,只是 指针方面 稍微有点绕。Java 我没学过,不好评价。
先上课,C Programming Tutorial for Beginners, youtube 网址如下。我没学过,已经不需要学了,但看上去 评价不错。
教科书推荐 C Programming: A Modern Approach. 我用过,不错。比C语言 发明者本人 写的教材 C Programming Language 要好。网址如下
https://www.amazon.com/C-Programming-Mo ... 8&qid=&sr=
IDE开发环境
一个就像 教学视频里 提到的 Code::Blocks, 然后按照他的提示 一步步安装,就可以了。
还有很多人 用微软的 Visual Studio Community 版本。但他比较臃肿,安装文件比较大。它的最大优点 是 它的 debug 功能非常强大,程序出问题的时候 比较容易找出 问题在哪里。我现在 也经常用它。它的最大缺点 是 C语言还 停留在 C89 的标准上,1989年的标准,太旧了,连 复数都不支持。当然 对 初学者来说 是够用了。以后学到 C99 或 C11 的时候再换 别的开发环境。
另外,我也用过 Pelles C, Windows 版本,支持 C99, C11 一直到 C17. 下载网址如下
http://www.smorgasbordet.com/pellesc/
我自己 现在 在Linux 上 用 QT Creator 进行 C 语言 和 C++ 开发,Windows 上 也有 QT Creator IDE 的
如果 不需要 GUI编程的话,Visual Studio Code + C/C++ plug in 也可以。可以自己搜索一下 VS Code 的教程
6. JAVA 学习
有人建议在 Python后 学习 JAVA。我本人 对 JAVA一点不懂。有懂行的 推荐一些 给小孩子 学习 JAVA的建议吗?
补充:最近二天 看了一些 Java 的网上课程,同样的用 Class 和 object, 感觉语法比 C++ 简单多了。我看的 网上课程是
他还有 全套Java课程, 需要29美元。
如果 不愿意 付钱的,网上还有 比较全的 免费课程,如以下。但我没看过,自己评估吧
IDE 就像里面 老师说的 用 IntelliJ IDEA Community Edition 版本吧,当然 要先装 一个 Java Development Kit。按视频里 老师的指导去做
课本 暂时 还没有 推荐。
我 学下来的 一点 感觉,Java 有点像 C++ 的简化版本吧,有 Class, 但是语法 没有 C++ 复杂。小孩子吗,用用 单机版的 Java 就可以了
但是对于 成年人来说,如果 Java 只是用在 单机上,其实没有 发挥它的长处。Java 用在 网站上,配合各种 框架 framework,才能发挥它的长处。但这样一来,想要用好 Java, 需要的 网络知识积累 要很多.
7.
如果 有人想让 孩子 参加 美国 电脑奥林匹克 竞赛,有点成绩,以便于 大学入学 申请。可以到他们的 官方网站
http://www.usaco.org/
这个 讲究速度 以评判 你算法的好坏。所以 python, Java 好像都 不太实用。只有用 C 或 C++了,但 C++ 语法 又太复杂,大人 都有点 搞糊涂了。所以 还是 推荐用 C 语言吧。
顺便说一下,如果不搞 usaco,其实 python 可以一直用 很久的,一般人 整个中学阶段 就一门 python 就足够了。学有余力的 可以第二门 学学 C 或 Java
一点 注意事项,如果 C语言 要用到 很大的 数组,必须 放在 main() 主函数 之外 定义,作为全局变量,放在 heap 里。要不然 放在 main() 内部定义,数据 就存在 堆栈(stack)里,堆栈空间有限,很容易造成 堆栈溢出,电脑崩溃的。这点 父母 不是这个 专业的 比较困扰,一般培训教材上 也不说。正确例子如下。
并注意,使用的时候,数组下标 不要超出 你 定义的 范围,要不然 容易引起 电脑出问题
double buffer1[1000][1000];
int buffer2[10000];
void main( ) {
buffer1[235][497] = 3.5;
buffer2[9999] = -20;
}
刚发现 有一个 华人 做 计算机奥赛培训的。我不认识她,也不想做广告。有需要的 自己去 联系她吧
8. 如果 高中的孩子 有浓厚兴趣的,想进一步 探究一下 电脑的。推荐 下面 二个 视频
数据结构的,推荐这个,讲的不错
https://www.youtube.com/user/mycodeschool
谢谢 网友 omicron 推荐
电脑CPU内部结构的,推荐这个,搭建了一个 运算 斐波那契数列的 最简单 CPU。
他的 一系列的 别的视频 也很不错,关于 数字电路的,有兴趣的 可以看一下
我在 华人e网 也 复制了 这个帖子。如果想参考一下 别的观众的意见,也可以去 看一下 这里
https://huaren.us/showtopic.html?topici ... 56&fid=398