|
我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。4 d1 @9 v4 L" E3 w- x6 J
8 K& M$ g7 o3 h1 M& Y
我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”8 z7 w5 C, O8 w4 \) u
+ Q: Y4 K8 v; ~; f: [
所以我也在想一个问题,什么时候可以让我儿子,从 Scratch,Kitten 这种少儿图形化编程工具,过渡到 Visual Studio Code 这种更专业的编程工具去?
; \) _' _# f' D* Z/ l+ h) M: G* a
最近火出圈的 ChatGPT,被很多程序员用来作为自己工作中的代码生成辅助工具。我也在思考如何将 ChatGPT 用到少儿编程领域。由于众所周知的原因,ChatGPT 在国内使用有一定的门槛。但我最近了解到另一款基于人工智能的代码生成器,叫做 Amazon CodeWhisperer, 我已经将它用来辅导我儿子学习编程了。
% T6 U% H7 T, z8 r M& X. z! b, O3 P, p6 Q
我和儿子用的开发工具是 Visual Studio Code,我教他在里面写一些最基础的 Python 和 Node.js 代码。8 R4 }' K* O6 D3 ?
: E3 E3 R# o. }
Amazon CodeWhisperer, 属于 AWS Toolkit 的一部分,在 Visual Studio Code 打开 Extension Marketplace 面板,通过搜索关键字 AWS tool 即可安装。; Z/ J& U$ |$ y4 `% m! d
: |; J% q/ @9 a/ Y I
安装完毕后,在 Visual Studio Code 左侧多出一个 Developer Tools 的面板,展开 CodeWhisperer 下拉列表,点击 Start,然后选择 Use a personal email to sign up and sign in with AWS Builder ID 即可在 AWS 网站上注册一个帐号并登录:6 L L) e& n( ~
, z# {" Q7 j8 P0 o3 [) [1 z" J$ R
等到我们看到 Developer Tools 面板里,CodeWhisperer 下面显示出 Pause Auto-Suggestions 显示,说明这个基于 AI 的代码生成器已经成功启用了。/ M7 h3 }9 w! S' l
0 x* D/ Z6 u0 C: o& p9 F
https://www.infoq.cn/article/tE4JARIoKzaSVav57McG
* L' i" V' o6 P9 E3 _# }: @0 |* u4 p" G* y9 w! L
https://www.infoq.cn/article/TprcKvXyB5fsKgC4SaLx# b$ d4 H6 x, Y, T! M% s8 y
y- b2 ?6 h" g8 ^7 o7 e) v
https://www.infoq.cn/article/B0JNSlJPFxY5eebdIOZE
: N7 Q% k# [9 ?2 ]; c E$ @2 e% K7 t# y i) [
https://www.infoq.cn/article/uPxOOxgMPdhVsFGsgUwD
, ?8 V2 W! U" z. d! L; a N1 S4 Q- {2 u. F" H! x. d" [1 ~/ c* ^
https://www.infoq.cn/article/sEM2KRuq2BAaiPtIGNHx* e4 P' C6 H" a+ }/ t6 S
9 P( ]: Y# |" X2 \' \7 N% e4 M1 ^
https://www.infoq.cn/article/jE2rzViqAgM8MJYAYWHV8 O& j4 u4 e2 E3 T1 P+ L9 l
& Y* z# `& l$ _" y6 G. @
https://www.infoq.cn/article/W5RzCzfZ6imJQrCk2lW9
; E+ f9 N7 G6 k$ U" p- x2 D2 m7 Y- ^" J. B' N/ v
https://www.infoq.cn/article/QHhWqeXmAQYQahEFMN9j
1 z; ]/ E% O& J( F& E) U" m8 j. `0 z3 A2 b! a
https://www.infoq.cn/article/Z5kqO0J3Yq7bt3IiUsCE# ?) L' I. b& k5 M1 k5 P
% C1 W, W8 z7 d https://www.infoq.cn/article/8mTxLzES8Hrx7gHH1x3t# i( s$ ], D ?1 @" U: Z8 ^! W% M& N
: v" w$ P( p V, n' u# Z1 q https://www.infoq.cn/article/O6qHtFBMoJUubbIz4MQw1 {, x/ G' D8 W# x |! d
% ^8 e/ m6 Y+ \) J https://www.infoq.cn/article/iCUjvWTzGm68ui4WbqFX
- L& @% x- {9 ~) w9 [: K3 @8 v2 s. a& K( W% D
https://www.sohu.com/a/731659594_3551401 m" }0 s# p4 j
# L0 Y8 d9 _( y% L https://www.sohu.com/a/733252389_355140 k& x4 C* P0 e) ]8 C! V
* E& d2 e( I! q. X+ Z- r
https://www.sohu.com/a/734898243_355140& Q0 S) {! v( C0 V! O
, O) |- A+ g! ~- h6 k
https://www.sohu.com/a/736322447_355140
( r, z/ r0 @. i- n: [3 j
% l8 y8 \1 X3 Y. y5 _ https://www.sohu.com/a/738502918_355140, q2 u2 N' W: y0 A( q ^4 l3 u
9 Y8 h6 h; C/ ^
https://www.sohu.com/a/739977693_355140
& |5 a# N+ f# @: h* r- r) }& j- h. V2 X
https://www.sohu.com/a/740505240_355140
1 D) h2 I4 @6 c1 U" Z1 B! m+ Y" L$ ?) D- B3 [* R% o% v& w
https://www.sohu.com/a/742114784_355140
3 O7 _& r/ }" \5 u' b8 M1 K' A& C9 F0 \1 Y# t; j1 F9 T0 M6 `
https://www.sohu.com/a/742438806_3551402 C" f6 o( V" ]) f
/ `2 f* D' R1 w. c8 j) H- N
https://www.sohu.com/a/743480374_355140
8 I. w$ r d" ?/ C2 F- T% W# H# b6 i4 ~' s% O4 A
https://www.sohu.com/a/744302752_355140
5 o, a, W, {5 j( d8 O# n; {; K
https://baijiahao.baidu.com/s?id=1780877864244787727' J0 }8 f2 L$ }3 T, C7 x
1 n. Q' G! R( i1 Z* I
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
" _7 `+ T2 l4 M) S( k" Z+ j
, F: B0 ]! u1 p https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D \5 E/ E4 o; w+ ?0 @+ Q
+ w' Q# O) ], O$ J
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D+ V( W' b5 s9 V. |: K
, w: |9 `: D* m0 b https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D2 V* z( m3 P! Y+ O# U0 |8 b
7 I, l+ t1 n; T https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D) `6 H7 X9 W9 J) I7 V
2 U5 R2 [4 m, W6 n8 ^, j/ ?
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
: m4 i" i) i; j' W3 w0 N" Z
+ K5 {3 ~+ C8 i- l https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D0 |) h2 k1 X6 a: [3 ~/ O$ w
; k r6 k7 U: l" _' D% v. ~* I
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D5 g, m. d+ r' Y3 M0 ]( @* s
4 v6 D3 {: b7 Q" @ https://baijiahao.baidu.com/buil ... 1785327415605564374$ I, n a: E1 q9 u L' \4 H8 ?0 E
, K1 P7 x" V+ d 下面就是孩子们发挥自己的想象,随意向 CodeWhisperer 发出指令进行编程学习了。
1 F) J6 E. _4 t& Q/ _0 g6 \" { Z) x$ c2 X: V! z T1 Z# @
为什么 CodeWhisperer 可以用来辅助孩子学习编程?职业程序员都清楚,包括 ChatGPT,CodeWhisperer 这些 AI 工具,生成的代码仅仅用来作为参考,绝对不能直接用在生产系统里,因此这些 AI 自动生成的代码,可能存在安全风险,缺乏足够的出错处理等等。而相对来说,孩子通过工具自学编程,不需要考虑这些软件产品开发需要注意的产品标准,只需要把注意力放在工具生成代码的语法,编程逻辑和 API 的调用上就行了。
0 J2 y, i! q4 y# k/ B
* Q% \: @; i* V! S4 R6 S 另一方面,CodeWhisperer 的安装和配置非常方便,也不需要像 ChatGPT 那样科学上网。, |: B9 x P+ s# ?3 U' n
( @" X: f# A9 H5 _3 n& b
下面是一些具体的使用例子。
, P- ^' r0 H' o7 p$ h. a* c* h7 l2 m: R! E
假设小朋友想用 Python 编程,打印出当前目录下所有文件的列表。8 W: k: t2 ~" j% k# `3 D" }$ _- ~% C
5 T! K8 h# C$ [* [' p# K e
在 Visual Studio Code 里新建一个 1.py 文件,然后录入如下注释,可以类比成是 ChatGPT 里的 Prompt:
7 `7 L0 c; u. Y5 o$ D
, l+ E; @; d5 C( ` list all files in current folder
H! t1 T2 R) i g4 Y* ~0 u3 Q! E2 e! w5 M' T7 X( v, V# L5 Y
我孩子的英语学习我是全程陪伴的,我觉得现在少儿英语的教育比我上学的时候卷多了。现在小学五年级就已经开始学很多我以前初中才学到的复杂语法,什么定语从句,被动语态,各种完成时等等。这种内卷倒也有一个好处:小朋友用英语编写简单的 Prompt 没有什么障碍:这些 Prompt 都是简单的命令式短句,无非是动词+名词即谓语+宾语的搭配结构。1 k6 o- j9 w+ G. j) W1 B* ?
$ ^& Q; o" u6 v9 I5 k" n7 |) d 我们在 1.py 里输入 # 开头的 Prompt,回车之后,稍等片刻,CodeWhisperer 就会以灰色的字体颜色,显示出完成这个 Prompt 所需的第一行代码:import os% m; Y( a w7 o M* H. C
" s! y" {* a) W3 O1 f 如果我们觉得这行代码能够接受,敲击键盘 Tab 键,就能将其正式书写在 1.py 文件里。
# q* y! O' X5 F6 d/ O( F. j
) F* O5 `% @( g 这种一行一行交互式的代码生成方式,适合家长和小朋友坐在一起,出来一行,给孩子讲解一行,也就是逐行理解。
$ I' E4 h4 _! L: `
6 W( p5 m% n# F& M. ^% U 我们在 import os 之后点击回车,稍后片刻,会看到 CodeWhisperer 给我们生成的下一行代码:for file in os.listdir("."):
\6 U* G" {, p' t: M1 e/ Y" U
7 G. \( N: Q" g& `# J* D! w 同理,点击 tab 按钮之后,for file in os.listdir(".") 这行代码也被我们选定。继续按回车,就会出现下一行代码提示:print(file)
' o4 I* d F' H9 l K) [" Z3 [0 Q" w F3 x6 P% @
就这样,三次回车和三次 Tab 键,就完成了这个需求的编码工作。直接使用 python 命令执行这个编辑好的文件,能得到期望的正确输出。+ ~& b# K, f, O @1 i
: g; q J, X9 t4 F( p' v 我又继续做了测试,针对 Node.js,使用同样的 Prompt,也能得到令人满意的代码和执行结果:
4 M1 M/ }9 g& Y) v4 u
3 s6 j' L/ x: O: }" I 总结% ]( Z& V# ?6 I8 z3 W! G" y
3 ?9 m4 L# o k% [ Amazon CodeWhisperer 作为一款免费使用的基于 AI 的代码生成工具,不仅能够帮助专业的程序员减少机械的代码编写时间,同时也能作为少儿图形化编程的一个补充,给那些学有余力又对编程感兴趣的小朋友,打开一扇新的通往编程世界的大门。
% i; I5 J. w9 l- y; `! F8 N+ m/ d- P' P1 U1 E* N! {3 Y, g
|
|