|
我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。) j- ~- Q1 {' U+ y
$ `* j {& m! l* F/ F8 i. m
我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”- T( n7 {" U5 y8 r: V& {
2 h0 i. V8 n4 Q2 e: d1 p" l
所以我也在想一个问题,什么时候可以让我儿子,从 Scratch,Kitten 这种少儿图形化编程工具,过渡到 Visual Studio Code 这种更专业的编程工具去?
# Q* W, S* D1 `% _
; Q$ B+ ]. y8 Z$ ` 最近火出圈的 ChatGPT,被很多程序员用来作为自己工作中的代码生成辅助工具。我也在思考如何将 ChatGPT 用到少儿编程领域。由于众所周知的原因,ChatGPT 在国内使用有一定的门槛。但我最近了解到另一款基于人工智能的代码生成器,叫做 Amazon CodeWhisperer, 我已经将它用来辅导我儿子学习编程了。
- N6 _1 Z A, b
9 b9 c( b" g) G0 M" c 我和儿子用的开发工具是 Visual Studio Code,我教他在里面写一些最基础的 Python 和 Node.js 代码。 w( v: o. U2 Z$ |& g. H9 J
2 Z4 c B& H1 e# q* x7 P Amazon CodeWhisperer, 属于 AWS Toolkit 的一部分,在 Visual Studio Code 打开 Extension Marketplace 面板,通过搜索关键字 AWS tool 即可安装。
' C; X' p, w& g$ v3 u# c k$ _+ r- H$ b; t) w+ ^) q6 c
安装完毕后,在 Visual Studio Code 左侧多出一个 Developer Tools 的面板,展开 CodeWhisperer 下拉列表,点击 Start,然后选择 Use a personal email to sign up and sign in with AWS Builder ID 即可在 AWS 网站上注册一个帐号并登录:
! t- k& O+ W, k% q c5 T f; j( _( W) v: @$ G0 d9 d' g
等到我们看到 Developer Tools 面板里,CodeWhisperer 下面显示出 Pause Auto-Suggestions 显示,说明这个基于 AI 的代码生成器已经成功启用了。
7 P. Y' G; t4 u
1 l5 p6 u) V2 e$ ?- Q https://www.infoq.cn/article/tE4JARIoKzaSVav57McG
' u5 ^ L8 Y+ Q) r$ a! ~; M! U' ^& Z1 H/ |( {! C5 e
https://www.infoq.cn/article/TprcKvXyB5fsKgC4SaLx
8 W+ K, f' j2 D0 h! P+ B, v) J* _; z" ]: T; G
https://www.infoq.cn/article/B0JNSlJPFxY5eebdIOZE1 M3 v1 o$ z1 [# u8 S7 @
5 M1 b3 t! Y7 J) H8 ? https://www.infoq.cn/article/uPxOOxgMPdhVsFGsgUwD( Z3 \0 s4 d) f# p& t: g4 x8 A
- ~4 F% L1 D9 t! Q2 _6 { https://www.infoq.cn/article/sEM2KRuq2BAaiPtIGNHx
2 a/ L) T) T3 ]) {: ~) l0 n _* T* }, R/ f) t6 y
https://www.infoq.cn/article/jE2rzViqAgM8MJYAYWHV
6 O) l0 e+ r7 O$ F
, e# c* V! X) V6 R6 ?1 a https://www.infoq.cn/article/W5RzCzfZ6imJQrCk2lW9
$ _1 `# j2 P" ?5 }
3 a, M( B+ X8 R% G( } https://www.infoq.cn/article/QHhWqeXmAQYQahEFMN9j
: W$ }: c& Z$ |/ y3 G) l( r) X1 Q4 L: W$ D* j( r3 v8 d
https://www.infoq.cn/article/Z5kqO0J3Yq7bt3IiUsCE5 R$ t& Q2 Q$ Z' D9 v* I* l; ^! R
! B1 R$ v8 Q. X, O
https://www.infoq.cn/article/8mTxLzES8Hrx7gHH1x3t
4 A( @) d1 q; w' s6 b3 n
# U: R- j% a0 X* ]. j5 u https://www.infoq.cn/article/O6qHtFBMoJUubbIz4MQw
) p0 f) S* s' c3 o$ Y U
" i# ~6 l2 t# W6 N' `+ m https://www.infoq.cn/article/iCUjvWTzGm68ui4WbqFX- D* G4 \) b3 I
: S# w5 ~5 ]& E& z) h https://www.sohu.com/a/731659594_355140) `) \) D7 R; ], g
5 K# i5 R4 t3 M! b3 X
https://www.sohu.com/a/733252389_355140+ \: c6 I4 O: k! } o" P! Q
5 {2 W6 ~$ Q( ~# G* ]& D. P https://www.sohu.com/a/734898243_355140
9 u& l- C$ G( F6 M( [* D4 S7 L8 z7 X9 ^; Y: _
https://www.sohu.com/a/736322447_3551403 B' S& H" B; X
8 X0 P; o0 f3 I( ~" p. O* X9 ` S https://www.sohu.com/a/738502918_355140, W- D5 i% M( W4 d1 w9 u
& [4 i, W! \- q8 | https://www.sohu.com/a/739977693_355140 c* E- E z/ d" ? Z8 r1 C* _
& \6 ~. d+ x: S2 T, A% {
https://www.sohu.com/a/740505240_355140( ^2 X8 Q$ z! v) O
. O" \% `3 O8 n0 b' {. Y
https://www.sohu.com/a/742114784_355140. q5 U% Y% w; ?# x' n
6 Q2 v/ J( n; C6 g+ { https://www.sohu.com/a/742438806_3551406 B9 ^: v' R! n/ K- l* v
! |# _' K' D5 ~1 D9 W1 x
https://www.sohu.com/a/743480374_355140& a8 {: P# `. m0 n8 V6 o
& [( B0 G% e; h$ H S https://www.sohu.com/a/744302752_355140' v" g( Q- W4 X2 M: E
" _8 B& E* `; _3 u9 \8 N, G5 Z https://baijiahao.baidu.com/s?id=1780877864244787727
7 a9 E' i. u% l2 V" U% _
8 I0 t# W' g: t9 K: { https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
, G+ l+ `8 T( J) y* |. v$ K$ y# \ H1 q# e' a; N
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D" ~6 N: j3 K; h1 ~# G
; n7 R, h1 R0 |/ d https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
9 V! z: i) [/ K: a0 X) W/ s) C) Y5 E8 M7 a- K) S& d
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
8 O$ `5 ^; i c, ?; b3 H/ z* w" E, ]5 V$ ~/ j6 Q2 F# s
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
: T2 F6 W" j$ D1 y1 Z) p) P3 X- t Q1 |. s+ {/ |
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
L. o4 t$ U: A, K4 \( y* m; }- v# T$ o: Q0 g5 D* e
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D- ^, {2 x; [2 \' u% T
8 q# H3 Q* E. O; {- Z7 n, ^
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
+ t5 L( G$ [/ j' L Z* s' D) I8 J$ x9 j) k' q2 V! {1 c# n1 X
https://baijiahao.baidu.com/buil ... 1785327415605564374
: l! k6 }, X- ?, q5 E. O8 g! I0 w
& G, H0 W/ U; N$ A 下面就是孩子们发挥自己的想象,随意向 CodeWhisperer 发出指令进行编程学习了。
1 h$ @1 P. k- u6 u
- Y! O* E1 O: _1 e' A. @) }, D 为什么 CodeWhisperer 可以用来辅助孩子学习编程?职业程序员都清楚,包括 ChatGPT,CodeWhisperer 这些 AI 工具,生成的代码仅仅用来作为参考,绝对不能直接用在生产系统里,因此这些 AI 自动生成的代码,可能存在安全风险,缺乏足够的出错处理等等。而相对来说,孩子通过工具自学编程,不需要考虑这些软件产品开发需要注意的产品标准,只需要把注意力放在工具生成代码的语法,编程逻辑和 API 的调用上就行了。, E( E9 X+ m0 R# e2 @: Q1 A
" K" C% T: X1 M( p/ Y( c0 V) d# ? 另一方面,CodeWhisperer 的安装和配置非常方便,也不需要像 ChatGPT 那样科学上网。7 c1 g- ~/ G: |5 ~& C+ F3 B, o, T
7 [6 F" |. }8 r; a1 T9 e
下面是一些具体的使用例子。+ B2 Y* M' r3 V( Z( r' Q
5 r' q |) {& S0 J/ a! r; p X* v# P
假设小朋友想用 Python 编程,打印出当前目录下所有文件的列表。. ~8 `: e! \3 f; o2 \, `+ M6 f
$ M5 E7 C# j, @0 H$ {: X, t
在 Visual Studio Code 里新建一个 1.py 文件,然后录入如下注释,可以类比成是 ChatGPT 里的 Prompt:- x2 ]; `7 ^, q5 N
9 m4 M I4 `4 Y! R( ` list all files in current folder# ]8 d+ Y- ?7 @& _- f
7 W' ]4 c6 L; S* j1 \" @0 ^
我孩子的英语学习我是全程陪伴的,我觉得现在少儿英语的教育比我上学的时候卷多了。现在小学五年级就已经开始学很多我以前初中才学到的复杂语法,什么定语从句,被动语态,各种完成时等等。这种内卷倒也有一个好处:小朋友用英语编写简单的 Prompt 没有什么障碍:这些 Prompt 都是简单的命令式短句,无非是动词+名词即谓语+宾语的搭配结构。
1 p* l- @6 h( `& G7 v
" J4 Y2 X9 k E0 Q 我们在 1.py 里输入 # 开头的 Prompt,回车之后,稍等片刻,CodeWhisperer 就会以灰色的字体颜色,显示出完成这个 Prompt 所需的第一行代码:import os
1 v- U9 B5 {# j1 W
. S; `. n7 G! M8 \( Z 如果我们觉得这行代码能够接受,敲击键盘 Tab 键,就能将其正式书写在 1.py 文件里。
' p! d/ ^6 O8 f8 H6 M# A: T3 g- l0 S$ v$ G# x; R' i$ ^. D/ \
这种一行一行交互式的代码生成方式,适合家长和小朋友坐在一起,出来一行,给孩子讲解一行,也就是逐行理解。0 p- I- x* Y, I- e1 D
$ y1 E0 D; O% }7 ~- @! y
我们在 import os 之后点击回车,稍后片刻,会看到 CodeWhisperer 给我们生成的下一行代码:for file in os.listdir("."):; J# O; X4 { c4 j
. y/ ?, v ^8 h0 E7 g% u 同理,点击 tab 按钮之后,for file in os.listdir(".") 这行代码也被我们选定。继续按回车,就会出现下一行代码提示:print(file)9 \* K5 {. [$ l
2 x1 l# ~' K' `' E
就这样,三次回车和三次 Tab 键,就完成了这个需求的编码工作。直接使用 python 命令执行这个编辑好的文件,能得到期望的正确输出。2 ~' H$ b0 u3 v9 o3 W: p
) Z" B$ i. U% l$ t- E' P: V 我又继续做了测试,针对 Node.js,使用同样的 Prompt,也能得到令人满意的代码和执行结果:
; z5 a' V6 j P {8 V3 g. W$ b0 Z- w9 A: H
总结6 i5 x1 ^1 Y: n/ B6 q, R
: t* S, b, }6 W
Amazon CodeWhisperer 作为一款免费使用的基于 AI 的代码生成工具,不仅能够帮助专业的程序员减少机械的代码编写时间,同时也能作为少儿图形化编程的一个补充,给那些学有余力又对编程感兴趣的小朋友,打开一扇新的通往编程世界的大门。
6 T$ G' k9 w" B$ [7 a' V+ s2 V1 ]+ W+ d0 k) W, g
|
|