|
我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。7 T9 f# A+ Z/ q5 P ~
! U2 V) I+ \% r) t; ~
我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”
* W3 A6 T! g2 m& u/ x: }' j% j
4 H( Q# y; M4 r7 Q: N 所以我也在想一个问题,什么时候可以让我儿子,从 Scratch,Kitten 这种少儿图形化编程工具,过渡到 Visual Studio Code 这种更专业的编程工具去?
- |# x3 i9 b2 }/ q F7 Y- }( ?% f, U5 g6 l0 @0 D" q: `" p
最近火出圈的 ChatGPT,被很多程序员用来作为自己工作中的代码生成辅助工具。我也在思考如何将 ChatGPT 用到少儿编程领域。由于众所周知的原因,ChatGPT 在国内使用有一定的门槛。但我最近了解到另一款基于人工智能的代码生成器,叫做 Amazon CodeWhisperer, 我已经将它用来辅导我儿子学习编程了。8 }# k; O0 w% h& _
9 t2 |) I m8 |+ T% p
我和儿子用的开发工具是 Visual Studio Code,我教他在里面写一些最基础的 Python 和 Node.js 代码。, L9 c4 b7 W. n% d4 a* x
7 Y* m6 j" z+ i6 `( ^0 [9 p Amazon CodeWhisperer, 属于 AWS Toolkit 的一部分,在 Visual Studio Code 打开 Extension Marketplace 面板,通过搜索关键字 AWS tool 即可安装。
1 |$ D0 }: I/ B: W: X* P: f6 O: ~! `' P% R- J/ d
安装完毕后,在 Visual Studio Code 左侧多出一个 Developer Tools 的面板,展开 CodeWhisperer 下拉列表,点击 Start,然后选择 Use a personal email to sign up and sign in with AWS Builder ID 即可在 AWS 网站上注册一个帐号并登录:2 W* v+ p+ i. E/ x6 ?) u- f% _
! ?3 R! m% A, E% |0 r' x3 U9 O! E& _ 等到我们看到 Developer Tools 面板里,CodeWhisperer 下面显示出 Pause Auto-Suggestions 显示,说明这个基于 AI 的代码生成器已经成功启用了。! i6 U6 k& H$ B' J1 J, D) @
) t; h) l* P+ ^$ W https://www.infoq.cn/article/tE4JARIoKzaSVav57McG4 K6 C& I+ T/ C2 Y/ d) ?
I0 l# S% _, M( _6 M) e; M
https://www.infoq.cn/article/TprcKvXyB5fsKgC4SaLx
( Q7 o! t8 x( t; f+ P; h6 H! Z
0 k1 y: [( n( T& c, [ https://www.infoq.cn/article/B0JNSlJPFxY5eebdIOZE) i$ O- ?9 i, m' `
* g2 i) I; Z6 {& \; x https://www.infoq.cn/article/uPxOOxgMPdhVsFGsgUwD' o" Q2 W4 E5 N& W y0 @6 j
; R- D# X e" N0 K https://www.infoq.cn/article/sEM2KRuq2BAaiPtIGNHx; c+ u' B6 p4 T
! f7 U M5 U* ]5 @ https://www.infoq.cn/article/jE2rzViqAgM8MJYAYWHV; E% G7 w* M! `
6 P4 w" G. H1 G. r https://www.infoq.cn/article/W5RzCzfZ6imJQrCk2lW9
0 F9 z& E2 h2 ^2 k& @/ @' [, G) M5 _) U. @4 V
https://www.infoq.cn/article/QHhWqeXmAQYQahEFMN9j
5 ]3 f6 Q0 K% H8 r4 o" T) Z1 e6 p; Y* H' ^2 Y8 ~2 w: {" o' p
https://www.infoq.cn/article/Z5kqO0J3Yq7bt3IiUsCE% b% K5 {5 C& e4 V! b& s
4 r, ^4 o' H; O F
https://www.infoq.cn/article/8mTxLzES8Hrx7gHH1x3t
5 G6 h3 e5 U4 c8 h
0 n% V' K6 e E. g* f( ? https://www.infoq.cn/article/O6qHtFBMoJUubbIz4MQw1 s3 a5 T# K3 g3 U" f( w2 u
9 t# a3 J% p) j9 q( K https://www.infoq.cn/article/iCUjvWTzGm68ui4WbqFX: U( R2 r7 z8 Y- y
. P" _) t$ b5 n; r
https://www.sohu.com/a/731659594_355140# o6 u" R- C3 a( L; a
- F) u4 Z2 i' J5 A) \6 z https://www.sohu.com/a/733252389_355140 s/ c0 ~0 s0 L
' x1 C& y. t0 u# X) K8 E ] https://www.sohu.com/a/734898243_355140
) |, l. q- R! e6 J, E, j4 r0 F" \
7 J1 }7 x3 i7 N% X* ?8 e https://www.sohu.com/a/736322447_355140
c. @! t5 S) x N9 X
@+ T3 k5 F7 x" h# Q https://www.sohu.com/a/738502918_355140
8 i1 `4 q) ?- X$ k8 t& a- L# P4 Y6 \6 U4 o
https://www.sohu.com/a/739977693_355140# h9 p. b* F9 M" s8 k( l
& k" h$ `% J( Y# Q1 R8 Y& n
https://www.sohu.com/a/740505240_355140
% M) s t9 L/ [' `5 ]. M$ s1 c2 u7 S. H7 L
https://www.sohu.com/a/742114784_355140
+ M, x9 u) f1 `' W
* |% c; b4 M2 l1 u1 T https://www.sohu.com/a/742438806_355140: i- o J/ L; v( {: u
7 J* n0 j+ X( M https://www.sohu.com/a/743480374_355140
, o6 T; c) X5 `3 {( `3 x; p2 e# m' R( Q& C3 y; B
https://www.sohu.com/a/744302752_355140
2 u8 R7 H( g! [: ]
/ R9 ^, r9 ^! X W5 M https://baijiahao.baidu.com/s?id=17808778642447877274 H6 z8 I Z) k( g' X6 {; o
1 ]; Q2 z( k0 ] https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D4 r1 M' g9 S& U( E
1 {' Y% s; J {4 U* |4 q* k. Z https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D4 t: l$ o( Q# R4 o5 ~
: @ K5 A6 B- C" m: I9 m/ m
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
# T4 i3 E' q& I* ?
! A2 U+ M: l/ A( o- W$ U8 t https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
! P& J9 T, }) X6 V! w! D) @6 F. |+ D+ m6 _7 u
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
; E/ t. z$ @8 D2 F C! l2 _3 W0 @) N4 y7 ]3 X y6 A( v
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D7 h: k) S4 B+ K8 L2 i+ e- L
, l" \0 P' D: k, M https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D0 Q6 P- Y7 o& c: M, U2 c G
; E1 i9 f. s) G& O6 a5 j
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D9 P r7 N8 `- Z4 v
7 p9 M$ N2 p% U T, ~, ^0 } https://baijiahao.baidu.com/buil ... 1785327415605564374
- m9 d! D) H' j5 ~% t
: ^% Q2 ?& Y! _: F1 \4 n/ h- Q 下面就是孩子们发挥自己的想象,随意向 CodeWhisperer 发出指令进行编程学习了。4 p2 H% n- P; }+ ]
4 A- O2 P4 u) H" b3 \ 为什么 CodeWhisperer 可以用来辅助孩子学习编程?职业程序员都清楚,包括 ChatGPT,CodeWhisperer 这些 AI 工具,生成的代码仅仅用来作为参考,绝对不能直接用在生产系统里,因此这些 AI 自动生成的代码,可能存在安全风险,缺乏足够的出错处理等等。而相对来说,孩子通过工具自学编程,不需要考虑这些软件产品开发需要注意的产品标准,只需要把注意力放在工具生成代码的语法,编程逻辑和 API 的调用上就行了。* b9 Y5 D9 i! x7 H: I; L
e5 R2 y! _! ^ 另一方面,CodeWhisperer 的安装和配置非常方便,也不需要像 ChatGPT 那样科学上网。
* j) x6 z' c0 ^7 Z8 O7 l& t, g
5 M: ]6 k8 @9 \! g 下面是一些具体的使用例子。0 {' F2 ?, p2 T3 |' b
* K0 A3 w {4 s0 z
假设小朋友想用 Python 编程,打印出当前目录下所有文件的列表。9 q, d" Q3 y* k4 ^ v% d& D
/ y/ o+ }9 Z; s# I3 Y7 x
在 Visual Studio Code 里新建一个 1.py 文件,然后录入如下注释,可以类比成是 ChatGPT 里的 Prompt:4 v5 |% `7 e3 H
! B0 c( t7 F# B) B1 x, E list all files in current folder
/ k% \8 O$ Q u7 z& K* z. s3 F( z2 k* w) D- k7 }2 D w* k
我孩子的英语学习我是全程陪伴的,我觉得现在少儿英语的教育比我上学的时候卷多了。现在小学五年级就已经开始学很多我以前初中才学到的复杂语法,什么定语从句,被动语态,各种完成时等等。这种内卷倒也有一个好处:小朋友用英语编写简单的 Prompt 没有什么障碍:这些 Prompt 都是简单的命令式短句,无非是动词+名词即谓语+宾语的搭配结构。/ w7 K$ Q1 D7 I! R& j$ ^ q
" X8 b6 \2 C- y4 T
我们在 1.py 里输入 # 开头的 Prompt,回车之后,稍等片刻,CodeWhisperer 就会以灰色的字体颜色,显示出完成这个 Prompt 所需的第一行代码:import os) Z, I+ B; ^7 d& b M4 I" `
" S d/ c! v2 s( I3 z: Q2 I 如果我们觉得这行代码能够接受,敲击键盘 Tab 键,就能将其正式书写在 1.py 文件里。
- [ h, X; X5 N; S. p( v9 c# X Z. D$ g: M* |
这种一行一行交互式的代码生成方式,适合家长和小朋友坐在一起,出来一行,给孩子讲解一行,也就是逐行理解。
+ G( ~1 P, |1 }1 ~$ {5 q
/ `3 g5 o; ^5 b7 G; o 我们在 import os 之后点击回车,稍后片刻,会看到 CodeWhisperer 给我们生成的下一行代码:for file in os.listdir("."):8 h" `4 Y: U6 ?# h6 M5 b
9 p# D7 e! z2 C# T+ ~) s/ ^/ Z
同理,点击 tab 按钮之后,for file in os.listdir(".") 这行代码也被我们选定。继续按回车,就会出现下一行代码提示:print(file)
/ \- j3 f+ L9 y2 [: K+ Z! z- t! k, x% Z0 n1 |( F
就这样,三次回车和三次 Tab 键,就完成了这个需求的编码工作。直接使用 python 命令执行这个编辑好的文件,能得到期望的正确输出。
) x9 R' D! V* M8 \% n- ~+ X9 k7 z% O' D0 t5 h' p
我又继续做了测试,针对 Node.js,使用同样的 Prompt,也能得到令人满意的代码和执行结果:6 g2 l1 U- _9 z' v- v1 b
( A4 J) H/ _ `; |* _ 总结% |; s0 }4 M4 C- \7 ^0 k4 i
7 [$ T5 m7 {: @2 z Amazon CodeWhisperer 作为一款免费使用的基于 AI 的代码生成工具,不仅能够帮助专业的程序员减少机械的代码编写时间,同时也能作为少儿图形化编程的一个补充,给那些学有余力又对编程感兴趣的小朋友,打开一扇新的通往编程世界的大门。
% y4 H9 V' w' u: Z/ r0 u
- s' t/ x/ ~# M; n5 ` |
|