2024年4月

昨天晚上听了个抖音直播, 里面这个主播老师半夜11点多跟家长讲小孩子应该学什么才有利于以后的升学考试. 家长都可爱听. 其中注意到一个现象,就是大多数家长对编程的兴趣很高, 不停的在问多大年龄应该学编程, 怎么学. 主播简单的说了下乐高不要学, 图形编程不要学, 其他的等下让我讲两分钟其他学科再说. 可结果过了20多分钟也没讲到编程. 感觉主播有意吊着大家胃口. 主播反复说的是英语和编程晚点再讲.
从热度上感觉到编程正在快速在家长身上建立认知.
这里面两个方向:

1. 实物编程/实物代码

现在有几个品牌,但在淘宝上似乎都没有看到销售: 包括
GOBOThttps://show.chinaculture.org/SeeChinesedesign/cn/show-1-537.html
芒果乐联Egobot-少儿实物编程http://imangokid.com/egobot/index.html
"趣思维"实体编程桌面游戏https://www.jianshu.com/p/b76fad1a7c8d
石头村儿童编程益智积木https://www.163.com/dy/article/DEIEJ8S80511A0BH.html
Tangiplayhttps://www.tangiplay.com/?lang=zh
MatataLabhttps://www.sohu.com/a/500505601_121140523
途道编程机器人(积木机器人),淘宝可搜索 https://www.zhihu.com/question/523450964

我觉得在其中又有两点值得注意: 一是玩具化以后, 其实提供了很多可能, 因为玩具可以有很多种形式, 目前还没有固定下来; 二是与机器人的结合. 因为程序必须要操作一个什么东西才行, 机器人/小车就成了最好的载体.
玩具化有好几个的形式其实和lightbot游戏很像, 都是方块指令.

编程教育

这个方向讲了其实好些年, 最早我觉得从邓小平开始了, 在1984年邓小平参观上海一个微电子展的时候说"计算机普及要从娃娃抓起" http://cpc.people.com.cn/n1/2019/1030/c69113-31428714.html. 我记得谭浩强的C程序设计书的前言还提了这句话.
近十年steam教育提出后, 这方面又有很多创业公司, 但似乎都活得不咋样. 我记得四博最早也是做这个创客产品, 没有做下去但倒是积累的技术. 包括seeed(到底几个e😂).最后这些公司能活下来的似乎都是要靠卖芯片,做方案, 做电子产品才行了.
但三年前(2021年)的双减http://www.moe.gov.cn/jyb_xxgk/moe_1777/moe_1778/202107/t20210724_546576.html似乎又给了这个赛道新的机会. 这一次编程似乎作为素质教育之一, 列入了升学类考核了.
目前从各方面资料来看, 是各个学校, 或地方政府先行实施将编程列入中考和高考项目. https://www.sohu.com/a/437728806_99950984

  • 2020年11月25日北京将信息技术(含编程)列入中考范围
  • 2018年, 教育部的新课标将信息技术从兴趣课改为必修课, 并且多个高校给信息技术赛事获得名次的学生加分(这似乎也引起了很多歪风, 变得为竞赛而竞赛, 甚至假竞赛)
  • 2018年, 南京增加了中考的科技特招生
  • 2018年, 浙江省将信息技术作为高考3+7选3的"7选3"之一, 并且多所大学的工科类专业都将信息技术列为必须选考的科目
  • 2022年5月, 《2022年版中小学生信息素养与编程能力测评白皮书》发布
  • 教育部发布《中小学生信息素养提升手册(2024年新版)》,同时许多地市也有自己版本的信息素养提升手册
    我觉得科班出身的体系内的编程教学实力不见得很强,原因是这个与实践结合非常紧密,科班出身的其实缺乏与实践结合的机会,比如编程的最佳实践,软件工程,SCRUM之类对实际非常重要的内容,不做几次项目失败几次是体会不到的。说到项目,我记得似乎有一种项目式学习法,近几年也被提起过。
    下面说下社会方面对编程师资的培养

行业协会的认证和师资培养

我发现主要有三个行业协会,包括中国电子学会、中国软件行业协会、中国计算机学会

中国电子学会 CIE

主要认证是青少年软件编程指导教师证,需要登录后缴费学习.官网https://www.cie.org.cn/ .
并且学会有专门给儿童的考级网站 https://www.qceit.org.cn/bos/default.html

中国软件行业协会 CSIA

官网https://www.csia.org.cn/
这个协会是给企业做双软评定和证书的, 跟企业的关系比较密切.
针对青少年的是NCT考试.

中国计算机学会 CCF

有三种认证, 针对青少年的GESP, 教师资格的PTA, 普通人的CSP

另外, 针对普通人的全国计算机等级考试 NCRE https://ncre.neea.edu.cn/ 是由教育部考试院直接举办的.现在这个考试与时俱进, 下分的门类也是非常丰富了.

通过二级调研,有如下结论:

欧美

收款方面, 欧美国家虽然没有那么强大的移动支付, 不过由于信用卡系统非常发达, 所以在线支付并不是问题.
物流方面, 虽然物流费用比较中国更高,但可靠性可以保证, 也有较好的时效.
品牌方面, 既接受强势的大品牌, 也接受创新的新品牌
增长方面, 近几年电商发展迅速, 增长已经不如前几年迅速, 正在趋于饱和

东南亚

不同国家发展不平衡, 比较有潜力的国家包括印尼(人口最多),马来, 菲律宾, 泰国, 越南,新加坡. 新加坡虽然地方极小,只有1/3个深圳大,但人口有560万, 相当于大半个香港, 而GDP却比香港还高30%左右, 与深圳GDP相当.
其中印尼人口2.7亿, 且出生率几乎是现在中国的两倍, 人口结构比较年轻. 但是人均GDP比较低, 物流不方便.但好在一半人口都居住在JAWA岛上, 物流配送费用较低.
从同样的3C产品height meter(stadiometer)在shopee的马来西亚,印尼,新加坡三站的价格对比来看, 印尼和新加坡支持从国内发货, 产品价格大约是国内的2倍,而印尼产品价格与国内几乎相同.

在阿里的无影云电脑中, 因为安装Uibot Creator无法启动运行, 于是看了下自带的软件商店中有两款RPA软件, 一个是实在RPA,另一个是朗思数字员工. 下载试用感受如下:

实在RPA

跟界面和使用和UiBot有些像的, 相对有这些优势:

  • 基于Python开发, 可视化界面可转为代码界面, 可以看到代码是python形式
  • 新版本有一个IPA模式, 相当于操作录屏, 能加快操作速度(不过Uibot也有录制, 但易用性上差一些)
  • 看其命令菜单,还能操作配套机械臂, 这点很赞
  • 和手机的连接有读取短信功能. 但似乎仅限于此了
    劣势方面:
  • 不能以纯代码方式编辑, 也就是代码界面只能看. 额外的代码需要以插入python代码的方式工作, 或者直接在可视化界面对应的输入框中写. 这样就可能比较别扭, 可视化界面的中文表述有些啰嗦, 而且还不容易看懂.

朗思数字员工

这个界面倒有些像是Blender的节点编辑器, 据说国外的著名UiPath RPA也是类似界面.
优势:

  • 可视化卡片界面
  • 支持微信的操作, 包括信息的读取,发送, 文件发送
  • 支持手机端控制操作
  • 有一些专业化组件, 比如适用于程序员的, 可惜都是企业版才有的功能, 需要付费
    从特别支持微信和手机端操作来看, 朗思的扩展性最强.
    缺点:
  • 并不是所有组件都开放使用, 很多只有企业版才有
  • 没有源码界面, 全部需要通过鼠标点击操作

今天看uibot的时候发现有个友链指向讯鸟软件这家自动化呼叫软件, 其中提到他们可以做BPO外包, 也就看了下什么是BPO外包, 虽然是业务流程外包的简称, 国内似乎和呼叫中心外包几乎等同. 也问了下GPT4还有哪些外包形式. 以下是GPT4的回答.

除了常见的业务流程外包(BPO)和信息技术外包(ITO),还有其他几种服务外包形式,它们根据专业领域的不同而有所区分,包括:

知识过程外包 (KPO) - 这种外包服务涉及更为复杂和专业化的任务,例如法律研究、市场调研、数据分析、高级工程设计等。KPO强调专业知识的深度和复杂性,通常要求服务提供商具有高级专业资格和能力。

法务外包 (LPO) - 法务外包是KPO的一个子集,专注于提供法律相关服务,如合同审核、法律研究、案件管理等。

人力资源外包 (HRO) - 这种外包涉及将人力资源的某些功能或整个HR部门的职责转交给外部服务提供商。常见服务包括员工招聘、薪酬管理、培训与开发等。

工程外包 (EPO) - 工程外包指将工程相关的设计、分析和支持任务交给外部专家。这可以涵盖从机械设计到软件工程等多种领域。

研发外包 (R&D Outsourcing) - 一些公司选择将研发任务外包出去以降低成本并加速产品开发流程。这涉及到科技创新、制药研究以及其它科学和工程领域的任务。

客户支持外包 - 包括呼叫中心服务、技术支持、客户关系管理等。通过外包这些任务,企业能够提供24小时支持,并能使用更多语言来服务全球客户。

这些不同类型的服务外包可以帮助企业更高效地利用全球资源,优化成本结构,并专注于其核心业务领域的发展。

两种模块

  1. 使用命令库, 发布后, 在任何一个项目中使用
  2. 在项目中建一个任务, 直接通过import 任务名导入模块
    我觉得项目少的时候用第二个就好了. 因为第一种命令库的方式似乎总是出错, 并且每次更新很麻烦: 关闭当前项目, 进入命令库项目, 改完代码再发布, 在进入原项目使用. 而方式1直接修改对应任务就完事了, 立即生效.

    使用

    官方对于模块描述比较简单, 主要讲了对模块内的函数使用和模块全局代码的使用.
    以下以建立一个叫tools的模块举例, 在main的任务中调用tools

导入模块

import tools

函数调用

比如其中有一个add(a,b)函数, main中调用方式为
Dim result = tools.add(1,2)

全局代码调用

main中全局代码调用方式:
tools()

官方没讲的, 全局变量和全局代码的返回值

如果在tools模块中定义了一个全局变量Dim g = 1, 这个全局变量会有如下特点:
在main引入了tools并运行了全局代码tools()后, 可以被tools中其他的函数使用, 但不能被main直接调用, 如:

// tools.task
Dim g = 1 
Function getG()
  return g
End Function

// main.task 正确调用方式
import tools
tools()
log.Info(tools.getG()) // 输出1

// main.task 错误调用方式1
import tools
log.Info(tools.getG()) // 输出错误: 名字 g 没有找到. 需要先运行全局代码,才能初始化g

// main.task 错误调用方式2
import tools
tools()
log.Info(tools.g) // 输出错误: 名字 g 没有找到. g已经被初始化但是只能被tools中的函数访问, 类似私有变量

全局代码也可以有返回值, 如

// tools.task
return 10

// main.task
Log.Info(tools()) //打印10

将一个模块当成一个对象来使用

上面的用法暗示了这个tools.task模块可以作为一个对象使用. 其中的全局变量是模块的私有变量, 全局代码是模块的初始化(构造)函数, 模块的函数全部是公有函数. 这个对象不存在公有变量, 需要用类似set/get()公有函数去模拟公有变量. 也没有私有函数. 私有函数可以通过编码规则去模拟, 如前面加下划线_, 外部函数则不要去调用.

很多海外软件下载速度经常只有几个k,这是要用国内镜像下载。从什么莫名其妙的下载站下载担心带毒,可以从华为云下载。

华为云

可以进入其镜像站搜索:
https://mirrors.huaweicloud.com/home
也可以后面直接加软件名

https://mirrors.huaweicloud.com/xxx软件名/
如:
https://mirrors.huaweicloud.com/git-for-windows/
https://mirrors.huaweicloud.com/git-tortoise/
https://mirrors.huaweicloud.com/python/
https://mirrors.huaweicloud.com/nodejs/

阿里云

主要作为库管理器。如python:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
nodejs
npm config set registry https://npm.aliyun.com