|
我是一个程序员,也是一个父亲。工作之余我会经常和儿子聊他们小学信息技术课学习的 Scratch 和 Kitten 这两款图形化的少儿编程工具。* g+ M6 f/ y4 o9 R
9 c$ u" U# e6 q
我儿子有一次指着书房里显示器上显示的 Visual Studio Code 问我,“为什么我们上课用的开发界面,和爸爸你每天工作用的样子不一样?”8 o# \/ m: c' {$ ?
; ~$ R1 ]7 j2 g9 d! E5 U" x 所以我也在想一个问题,什么时候可以让我儿子,从 Scratch,Kitten 这种少儿图形化编程工具,过渡到 Visual Studio Code 这种更专业的编程工具去?
! P7 f, }% h) c; Q4 x' J1 R1 U6 x' ?4 i+ H* }7 {; J
最近火出圈的 ChatGPT,被很多程序员用来作为自己工作中的代码生成辅助工具。我也在思考如何将 ChatGPT 用到少儿编程领域。由于众所周知的原因,ChatGPT 在国内使用有一定的门槛。但我最近了解到另一款基于人工智能的代码生成器,叫做 Amazon CodeWhisperer, 我已经将它用来辅导我儿子学习编程了。
' x; U( }9 U0 _8 V- d/ [* t. S, b
& o/ @) r# Q# A' e 我和儿子用的开发工具是 Visual Studio Code,我教他在里面写一些最基础的 Python 和 Node.js 代码。2 u2 H0 y3 K- e
1 R- B l8 T9 A+ R2 P
Amazon CodeWhisperer, 属于 AWS Toolkit 的一部分,在 Visual Studio Code 打开 Extension Marketplace 面板,通过搜索关键字 AWS tool 即可安装。
_9 S7 |7 H& Q2 e/ r4 p2 h+ v3 Y3 V4 X# g/ x0 Q: l. l' M
安装完毕后,在 Visual Studio Code 左侧多出一个 Developer Tools 的面板,展开 CodeWhisperer 下拉列表,点击 Start,然后选择 Use a personal email to sign up and sign in with AWS Builder ID 即可在 AWS 网站上注册一个帐号并登录:* p6 @2 K( B0 ~3 c+ ]
' r) Q7 \2 R$ u5 U T- U! V
等到我们看到 Developer Tools 面板里,CodeWhisperer 下面显示出 Pause Auto-Suggestions 显示,说明这个基于 AI 的代码生成器已经成功启用了。
+ W& l) H( _; \8 I6 c
* @1 G/ D& o2 I5 X* X- M https://www.infoq.cn/article/tE4JARIoKzaSVav57McG ` I) x. k3 F# R1 _# x
* h( |5 J0 E2 h, J0 P* @
https://www.infoq.cn/article/TprcKvXyB5fsKgC4SaLx) d, K$ N. h( F% @/ y
$ S+ E5 e, \8 A https://www.infoq.cn/article/B0JNSlJPFxY5eebdIOZE
- ]8 a1 g8 b' Y
4 Z1 P- g8 i0 q7 L; ?0 y https://www.infoq.cn/article/uPxOOxgMPdhVsFGsgUwD
; O# F5 m* g k* d4 w( N, {8 j0 y4 U/ J n$ W5 ]- c5 Q
https://www.infoq.cn/article/sEM2KRuq2BAaiPtIGNHx) G& @( z# H3 C5 @) \
! b( y( K4 c! h8 ]3 d https://www.infoq.cn/article/jE2rzViqAgM8MJYAYWHV
! {% A/ s+ _$ ]6 P1 A& K2 [9 m
, N3 G7 c. C6 B$ Z. a https://www.infoq.cn/article/W5RzCzfZ6imJQrCk2lW98 x9 a1 ~9 R3 ^. H) z
" I$ d% t) ^( g1 t F/ o https://www.infoq.cn/article/QHhWqeXmAQYQahEFMN9j
) G. v+ l+ b6 ]5 g8 ^7 N7 F) ]9 O9 E. D3 S( p
https://www.infoq.cn/article/Z5kqO0J3Yq7bt3IiUsCE
& A. f$ ]* v& q4 o9 r/ c7 K% t* |1 |7 `) Y5 O7 Q
https://www.infoq.cn/article/8mTxLzES8Hrx7gHH1x3t- Q$ W* n# ?( X! E: I) ~/ x$ h
1 T) o9 \, H) T% |1 N
https://www.infoq.cn/article/O6qHtFBMoJUubbIz4MQw
- y) z, O7 `7 z# I+ ^8 X7 k& Y% Z, d/ M" I: k/ F# w. l8 V, m6 l
https://www.infoq.cn/article/iCUjvWTzGm68ui4WbqFX
5 U) ]2 }8 r5 ~4 |, b9 \6 m( R/ V9 B4 q5 k
https://www.sohu.com/a/731659594_355140
$ a0 N% Q6 C, d
/ }" n W V3 Z. { https://www.sohu.com/a/733252389_355140
: W% i2 d; T T) R2 k$ F* c4 L0 Z* ^, _! f3 P/ z% I
https://www.sohu.com/a/734898243_3551401 x5 i P5 F0 K7 E, ~ v
% \* U7 F* z3 J8 {. s
https://www.sohu.com/a/736322447_355140
4 L2 g. O, E2 ]# {3 r
$ _! o. {$ B- @ https://www.sohu.com/a/738502918_355140" I5 O k! c# T- b/ v1 z4 ^7 t5 B# r
# I! T! S0 V( @& x; M( v2 g- K( t https://www.sohu.com/a/739977693_3551406 I/ h$ t& \ |* E
& p$ L) ^* z' a" j https://www.sohu.com/a/740505240_355140
$ Y4 F6 k- I- u* q7 c; {0 a" ]8 J l+ B
https://www.sohu.com/a/742114784_355140
6 P( R1 i. x: i0 C7 Y/ X5 ?; u% F0 X0 b6 f+ s* l1 D
https://www.sohu.com/a/742438806_355140/ B7 k$ `9 Y3 {7 y2 G; D
: ~$ _* B+ ~; @+ k- |
https://www.sohu.com/a/743480374_355140
; ^, I7 t8 @& x& A- y
u1 J3 i& J, Q1 p2 U https://www.sohu.com/a/744302752_355140
, I: C$ j2 P+ O d9 L
5 p w7 c9 l0 b( G( ] https://baijiahao.baidu.com/s?id=1780877864244787727- \8 J( x+ ^+ y+ E6 ?
$ A {& t5 f6 q' b https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D N. z+ `/ W6 d6 ]
8 }4 L8 m# P; d# F https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
5 J. e, P- I1 |% n& P( T0 i5 J, h3 c# b b4 I% |; z
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
4 M" \9 m; J% H6 I2 d) M% F6 a1 m* m9 s0 e5 n# j# y% W" T
https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
6 f5 ]3 s6 t4 v* l
3 X5 L/ N- f+ O0 S2 G https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D* H: q- M; F( t% Q+ M1 M
# l3 \9 ?. E! g+ P0 c" L% ^: y https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D* x# l7 k1 x" _: }
# L6 |4 {. _* f- }1 J& U+ J https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D* v3 c5 T& f1 z: R2 i
( i" W2 ]6 g6 i. } https://mbd.baidu.com/newspage/d ... m%22%3A%22bjh%22%7D
( T# e/ j2 J( G# ]. o( n
+ ]% c2 G9 G0 O$ H" h R7 q https://baijiahao.baidu.com/buil ... 1785327415605564374
' U: H" c: d4 `. X9 Q0 T6 }
; p/ b3 M+ W$ w0 `7 j 下面就是孩子们发挥自己的想象,随意向 CodeWhisperer 发出指令进行编程学习了。& f3 e+ h0 t' @6 e! p. d& m w7 v! V
6 h! q7 r* H7 C6 P
为什么 CodeWhisperer 可以用来辅助孩子学习编程?职业程序员都清楚,包括 ChatGPT,CodeWhisperer 这些 AI 工具,生成的代码仅仅用来作为参考,绝对不能直接用在生产系统里,因此这些 AI 自动生成的代码,可能存在安全风险,缺乏足够的出错处理等等。而相对来说,孩子通过工具自学编程,不需要考虑这些软件产品开发需要注意的产品标准,只需要把注意力放在工具生成代码的语法,编程逻辑和 API 的调用上就行了。
. {7 | B0 K# q# Z0 y8 z
( O3 v4 P5 o7 V. V, z. w- l4 ^ 另一方面,CodeWhisperer 的安装和配置非常方便,也不需要像 ChatGPT 那样科学上网。0 w& E; q( D( x1 d/ k9 S
1 w* _9 I; `4 f k0 E! B
下面是一些具体的使用例子。
- n0 @2 U; e7 X x' w" i1 [4 U: n
5 Y% _6 ^- k6 n8 w$ ^ 假设小朋友想用 Python 编程,打印出当前目录下所有文件的列表。3 p; U0 I! q# m' \4 A- B+ q
$ @" R# p6 @8 p 在 Visual Studio Code 里新建一个 1.py 文件,然后录入如下注释,可以类比成是 ChatGPT 里的 Prompt:8 _3 q6 Z: k# g+ q
) m6 F3 J6 n5 W2 b% @ list all files in current folder
4 Q5 A3 r4 b' l( g R; f$ t
/ q' ~5 B. R' V. P; A# q6 X1 B 我孩子的英语学习我是全程陪伴的,我觉得现在少儿英语的教育比我上学的时候卷多了。现在小学五年级就已经开始学很多我以前初中才学到的复杂语法,什么定语从句,被动语态,各种完成时等等。这种内卷倒也有一个好处:小朋友用英语编写简单的 Prompt 没有什么障碍:这些 Prompt 都是简单的命令式短句,无非是动词+名词即谓语+宾语的搭配结构。) J; S0 B2 z y" n
% _, K1 T0 l" w) E- R, D6 L0 o 我们在 1.py 里输入 # 开头的 Prompt,回车之后,稍等片刻,CodeWhisperer 就会以灰色的字体颜色,显示出完成这个 Prompt 所需的第一行代码:import os3 }+ _! B0 s! U! K# K* T/ w
; N: `. k. c- }+ p5 N 如果我们觉得这行代码能够接受,敲击键盘 Tab 键,就能将其正式书写在 1.py 文件里。
& k6 |" x! O& r# K) b& }" R0 K9 O: g! v7 H# Z2 {; Z# x& q: U6 n
这种一行一行交互式的代码生成方式,适合家长和小朋友坐在一起,出来一行,给孩子讲解一行,也就是逐行理解。
) n: { B w1 p, W9 U# [* E: m2 A- `$ p' c
我们在 import os 之后点击回车,稍后片刻,会看到 CodeWhisperer 给我们生成的下一行代码:for file in os.listdir("."):
! s9 p; H; ^% I8 C( `
U/ J9 n8 A( I# g3 |. N9 { 同理,点击 tab 按钮之后,for file in os.listdir(".") 这行代码也被我们选定。继续按回车,就会出现下一行代码提示:print(file) a# L+ Z( E( y3 X' m0 w$ T
" g: ~ [6 z$ C n: M% K
就这样,三次回车和三次 Tab 键,就完成了这个需求的编码工作。直接使用 python 命令执行这个编辑好的文件,能得到期望的正确输出。
: W; d$ J' p+ b/ P5 b: ]
: e- c/ s! ^2 y% [8 z. A! u/ ?/ M 我又继续做了测试,针对 Node.js,使用同样的 Prompt,也能得到令人满意的代码和执行结果:# V. s/ n5 i( `
/ e8 r" ]+ H4 k6 G' S Y5 B, A
总结& `( J' u+ K1 s3 X Q* ~
4 @5 `' U; S* \# f, O" r
Amazon CodeWhisperer 作为一款免费使用的基于 AI 的代码生成工具,不仅能够帮助专业的程序员减少机械的代码编写时间,同时也能作为少儿图形化编程的一个补充,给那些学有余力又对编程感兴趣的小朋友,打开一扇新的通往编程世界的大门。
- R8 v3 c$ Q0 |! g; P" W3 R3 Z! q# J. L/ ~. K
|
|