感觉需要一门中文编程语言用于青少年的编程教育

2022-04-28 08:37:21 +08:00
 tinybvjk

现在很火的少儿编程大部分都是使用 Scratch 或者类似的图形化编程语言。对于小学阶段的小孩子来说,没有什么问题。但对于初中、高中阶段的青少年来说,就肯定不能满足需求。为何需要一门中文编程语言,我想到的原因主要是下面这些:

学习编程不应该和学习英语划等号

现在将学习编程和学习英语等同起来的一个重要原因是因为大部分开源软件或者基础设施都是英语系国家发明的。它们的文档是英语,源码中的注释也是英语。要想使用,在遇到问题时排错,必须要懂英语。

将英语和编程等同起来无疑增加了学习编程的负担。而且在初中的这个阶段可能英语词汇量还不足以流畅地阅读英文文章,所以会显得额外困难。

因此,这门理想中的中文编程语言应该有中文的文档,中文化的社区。使用者遇到问题可以阅读文档,也可以用中文求助。

编程如果是思想的表达,那使用中文会更加流畅

英语作为母语国家的开发者在编写代码时的感受似乎和非母语国家的开发者是不一样的。这个结论是我之前在有个地方看到的,到时候我把链接补充上。他们阅读代码很自然,几乎没有阻碍,因为使用的是他们的母语。

当我们使用英语编写代码时,会遇到两个问题。思考时,我们使用的中文,需要转换成英文写下去。阅读时,我们遇到的是英文,需要在脑海里转换成中文。假如说词汇量不足,这种转换就会出现问题。而且,转换本身是有成本的,会多耗费一点时间,结论是我们的效率肯定比他们要低。

这种理想中的用于教育的中文编程语言可能是什么样子?

  1. 简单易用。
  2. 对性能没有太高要求。
  3. 静态类型。
  4. 解释执行。
  5. 也许还需要一款配套的 IDE 。

结论

使用中文编程语言可以降低学习编程的难度,会增加许多人对这方面的兴趣,让更多的人学会编程,所以我觉得是有必要的。


只是我的一些突发奇想,欢迎大家提出自己的看法。

9087 次点击
所在节点    奇思妙想
126 条回复
guzzhao
2022-04-28 10:43:23 +08:00
最主要的问题我觉得是写代码,输入法得配套, 中英文字符切换,圆角半角,再想想写代码还得翻页找字🙄
v2ka
2022-04-28 10:43:31 +08:00
我觉得 OP 的提议很好。
dddd1919
2022-04-28 10:50:23 +08:00
条件语句是用 假设 /如果 /要是 /假如 /假若 /假使 哪个好呢🤔
renhou
2022-04-28 11:01:05 +08:00
只要华为出一个国产自主编程语言,那么就会流行起来
westoy
2022-04-28 11:04:29 +08:00
不是没有, 是都凉了

连台湾那边早年都有开发者出过一个 python 的中文方言叫周蟒的
ClericPy
2022-04-28 11:05:06 +08:00
说了半天, 感觉在说那个基于 Python 的中文编程语言...

说个不算题外话的: 青少儿编程连 Python 里面的那么二三十个关键字都记不住还学什么编程, 现在的小学生词汇量都好几百了, 家里有条件的已经三四千以上了(比我高中还厉害...)

不过楼主的本意看起来是好的, 只是有几个门槛根本过不去:

1. 让正规军去搞, 层层审批估计 Python 都入了高考了也没审批结束
2. 让大厂去研发, 不挣钱不做
3. 让教培行业做, 都快饿死了还管这个
4. 让学术部门上, 做出来就被骂 Python 套壳骗经费(之前有过一个)
5. 让开源社区玩, 玩玩就是玩玩

个人看法就是, 为了三十几个单词不学英语有点多余, 至于注释和文档是英文的, 学几个单词也没坏处. 很多家长在孩子小时候培养各种素质能力, 布局的根本不是当下, 而是十几二十年后, 所以顺便把英语学了也不冲突, 否则建议童年别学奇怪的东西好好玩儿吧, 学不进去浪费时间.
loryyang
2022-04-28 11:09:50 +08:00
就编程语言里面那几个英文单词,幼儿园的小朋友也能记下来了
编程入门的难点在于抽象思维,数学逻辑思维,这些思维是人类相对高级的能力,是随着年龄增加而不断成熟的。所以我坚持一下几点:
1. 过早的编程培训没有任何意义。多关注小朋友的数学,适时(注意不是提前)地促进数学水平的提高。随着抽象、逻辑思维水平的提升,找个时间开始学习编程即可
2. 学习编程直接从 Python 这类脚本语言入手就足够了,没必要用 Scratch 。图形化其实就解决了分支、循环、迭代这么几个概念。但是通过单步调试,大部分人就能理解里面的运作规律了。
3. 如果一个人,觉得编程难,那他就不适合学习,或者年龄太小。那就别学了,拔苗助长,徒增痛苦
4. 对于青少年非专业人员的编程培训,建议抛弃传统的教育方式,以实战,趣味为主。不要纠结于算法复杂度、树、图、编译原理这类理论知识,而是写个爬虫,写个小游戏,写个语音合成器等等。每次以一个小专题的形式教学,附带上一些专业知识即可。大部分人不要走竞赛的模式,又痛苦又没意义
afewok
2022-04-28 11:21:46 +08:00
从利益的角度反思下,中文附带了什么价值???
makelove
2022-04-28 11:33:31 +08:00
一个语言十几个关键词都记不住的废物还学什么编程??
angrylid
2022-04-28 11:36:05 +08:00
所以我感觉你要找的就是 Python + 中学生能看懂的中文教程,是吧?
ALLROBOT
2022-04-28 11:41:47 +08:00
@afewok #48
如果中文编程语言流行起来,至少能加快编程速度。。。毕竟语言障碍放在那呢
soupu626
2022-04-28 11:45:38 +08:00
```
# -*- coding: utf-8 -*-

prov_list = [{"code": 110000,"name": "北京市","level": 1,"pcode": 0,"children": [{"code": 110100,"name": "市辖区","level": 2,"pcode": 110000,"children": [{"code": 110101,"name": "东城区","level": 3,"pcode": 110100},{"code": 110102,"name": "西城区","level": 3,"pcode": 110100}]}]},{"code": 120000,"name": "天津市","level": 1,"pcode": 0,"children": [{"code": 120100,"name": "市辖区","level": 2,"pcode": 120000,"children": [{"code": 120101,"name": "和平区","level": 3,"pcode": 120100},{"code": 120102,"name": "河东区","level": 3,"pcode": 120100}]}]}]

def 打印(input):
print(input)

class 列表(list):
def 追加元素(self, __object):
self.append(__object)

全国三级区划数据 = 列表()
省级列表 = prov_list
for 省级数据 in 省级列表 :
市级列表 = 列表();
转化后的省级数据 = {'编码':省级数据['code'],'标签':省级数据['name'],'子级':市级列表}
全国三级区划数据.追加元素(转化后的省级数据)
for 市级数据 in 省级数据['children']:
区级列表 = 列表();
转化后的市级数据 = {'编码':市级数据['code'],'标签':市级数据['name'],'子级':区级列表}
市级列表.追加元素(转化后的市级数据)
for 区级数据 in 市级数据['children']:
转化后的区级数据 = {'编码':区级数据['code'],'标签':区级数据['name'],'是叶子结点':True}
区级列表.追加元素(转化后的区级数据)

打印(全国三级区划数据)
```
把前两天跑的一个转格式的脚本翻译了下,这大概就是如果要搞中文编程语言的结果,翻译下类库,进一步的话改改解释器、编译器,把关键字替换了,有什么意思呢。

编程的核心永远不是语言,所谓的青少儿编程教育,我理解其实际目的也是训练程序化解决问题的思维,*代码能力应该是最不重要的,用什么语言都是一样* 。
soupu626
2022-04-28 11:48:11 +08:00
darkengine
2022-04-28 11:50:30 +08:00
对于初中、高中阶段的青少年来说,编程用到的那点儿英文不是问题,数学和逻辑才是问题。
zhttp
2022-04-28 11:50:30 +08:00
缺的根本就不是中文编程语言,而是高质量的中文技术社区以及技术文档,就编程语言里那一点单词随便来个会 26 字母的人花个两天时间都能学会,难的是有疑问、遇见 bug 的时候,中文搜索往往很难找到有用的答案(刚开始学的时候倒是还行,一些初级问题随手就可以找到解决方法),不得不去看英文文档。
zhttp
2022-04-28 11:55:59 +08:00
另外赞同楼上的说法,变量名关键字什么的都只是符号,中英文没有区别,用这些符号按照不同的逻辑实现不同的功能,这种思维方式才应该作为小孩子学编程的目的,而不是拘泥于中文还是英文。
soupu626
2022-04-28 11:56:01 +08:00
fredli
2022-04-28 11:57:17 +08:00
知道去学编程的家庭,还搞不定英语么?
est
2022-04-28 11:59:28 +08:00
编程语言就是编程语言,既不是中文,也不是英文。

如果你说用了字母就算英文,那么很遗憾,数学公式也需要字母

如果你说小孩子学编程不需要数学,那么你编了个啥? CURD ?
v2eb
2022-04-28 12:06:28 +08:00
中文编程是一直存在的伪需求吧。
基于英文的编程环境基本是不可替代的。
中文编程的概念也许更适合解读为:需要一种更易于理解的编程方案来引导初级开发者学习?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX