|
|
博雅小学堂7 b5 |, ~/ H" O k0 H! {
给孩子受益终生的人文底色, V8 T0 m. d/ I' M3 s! X
编译 | 杰宝麻麻 来源 | 鲸鱼与蜗牛
* Y, Y n& k5 t- k7 i! [# } ~博雅小学堂专栏作者- S) N) t l1 \8 t
“每个人都应该学习编程,就像每个人都应该学习读书写字一样。” 在“未来已来 ”的当下,“编程 ”被认为是孩子适应人工智能时代的切入口之一。
6 f" i! }" @% t. a8 q然而前两天,美国知名在线杂志Slate上刊登了一篇文章——《我是程序员,我不会教孩子学编程,你也别教》。这位名叫Joe Morgon的美国程序员爸爸在文章中写道:成年人可以学习语法,但只有孩子才能学会拥抱好奇心。您是否同意文中的观点?欢迎在留言区讨论。5 @+ F, }. K& O( n
014 R% |/ P' Y" W/ x% U
父母为什么要让孩子学编程) ]) ^0 d8 `2 W, O( o
最近一次夜跑时,我路过一个很大的橱窗,里面展示的是教孩子们学编程的书。其中有些书我看到过,但我从来没有见过这么多针对小学生编程的书。- ^: S# l( j+ o* P' j0 e3 F
而这些书不过是冰山一角,市面上还有大量跟编程相关的资源——夏季编程训练营、课后编程俱乐部、教幼儿园孩子JavaScript基础知识的APP——它们都在向孩子传授面向未来的技能。
: v$ [5 w5 I) U7 |) h% u9 C" O8 v父母为什么要让孩子学编程呢?
9 R; Z' T: h* F4 d# d# c$ Y 新加坡一个编程校外班' q8 |1 g2 `+ Y- u" c J; }' M8 s- B
答案显而易见。
+ `: U/ |% m* k% |7 B4 ^+ E. g除了学习开发软件之外,还有什么更好的方法,能让我们的孩子迎接一个由软件统治的未来世界?如果一切都将自动化,那么做控制自动化的人会更安全。如果学习编程有用,那么宜早不宜迟。! y6 `) L2 ] E: J. a( \0 f1 h6 J. W
虽然这些学习编程的产品可能教孩子们特定的编程语言,但却与真正的软件开发关系不大。
0 G8 {; P! [' g$ I- m* w$ A' J4 e02
8 y# `' g: {1 c3 a6 N! V9 G不教孩子编程
# ]2 B r. k; g# o1 m! k等于不教他们读书写字?7 L }- Y; r L+ Z3 ?6 {( e/ K
我的一位前同事曾经在一个编程训练营接受过训练,这个训练营的口号是“编程是一种新的读写能力”。这种刻意营造的焦虑感是所有编程书和游戏的核心。
$ N# F8 i) B( P% Q8 W3 M2 s正如一本很火的书中所描述的:尽早学习编程“是孩子为未来做好准备必不可少的一步”。这话给人的印象是,不教孩子编程在某种程度上等同于不教他们读书写字。. A, t/ Z4 l5 x% w# _$ t' F$ N3 }+ f
这种说法显然是荒谬的,编程不等同于读书写字。虽然大多数父母都受过教育,并且知道给孩子读书,但他们大多数并不是程序员,也不知道程序员需要什么样的技能。
: ?8 B2 q! \' D儿童编程书将编程看作能够为一系列问题找到“正确”解决方案的能力。如果你的孩子能够掌握编程语法(syntax),就能够快速轻松地完成任务。
5 X( ?. K! i8 A/ u0 X" t4 N+ q u: T% ~但,这并不是程序员的工作方式。. V7 U. ?# A% h; U+ K& p
030 I. J/ A& s! ~, _+ I. {+ W k
学会编程语法$ {0 a! Y; `0 U' }4 U8 M( t8 o
就算学会编程了吗- F E, F7 d6 G+ ^5 b$ ~
软件开发是一项艰难的工程,是创造力和决心的结合。开发人员需要掌握的远远不止语法这么简单。
0 m. w# P9 a6 @2 L% ~% z杰出的程序员不光是让软件能够运行,他们还希望开发出优秀的软件。! y! `; J+ z5 d
在职业生涯的早期,我编写了一些代码来配置和运行一组远程服务器。我的代码运行得很顺利——至少我是这么想的——直到大约18个小时后,夜半铃响,我得到通知:一组服务器宕机了。
$ t D! o/ N( F5 E( n+ ]我从床上爬起来,走到笔记本前,又运行了一遍代码来替换宕机的服务器。几小时后,又有一组服务器宕机了。0 j! F, J. x* d
宕机并不是由语法引发的,如果有的话,服务器一开始就无法搭建起来。宕机的原因非常复杂,经过好几周和无数个被叫醒的夜晚,我终于解决了问题。
5 s4 R$ X, e! U- f* {! a/ {: U& q编程就是这样:先写代码,看看它是否有效。失败了就再试一次。如果问题很简单,有些开源代码就能解决。剩下的就是需要独创性的艰巨任务。没有书可以教你如何解决前所未有的问题。% j9 @4 s/ \8 K$ j3 k
这就是为什么我不希望我的孩子学习编程语法——我希望他们学会解决问题,深入研究问题,发挥创造力。
& W7 [% K9 L* @3 A; y 04
: h$ v# j' r8 t# W为什么说比起学编程4 V& X) k( Y( i
掌握这些能力更重要?9 k- [* |3 F0 `6 i v' ~* j
那我们该怎么教这些能力呢?- ]# Z$ I: O; U5 v0 v0 U( e$ m/ W1 f
有一天,我的儿子有点担心他那把摇摇晃晃的椅子。我们一起观察了下椅子,儿子帮我找到了问题:有一个螺钉松了。我在家里找到一个适合的六角扳手,并演示怎么把螺钉拧紧。
7 G6 t+ d! U$ S, w之后,儿子很好奇:如果反方向拧会发生什么?他试了试,直到螺钉被拧出来为止。最后,我们反复将椅子拆开,再装回去——中间还装错过——直到儿子满意为止。. V" ~8 I) [) ~5 [
先试试,看结果如何,不行就再试一次。* C- w; |' K# V' A2 E" F4 y
当然,让软件运行只是开发者的第一步。下一步是使代码清晰、可重复使用、简洁。
* g3 s8 S, p, n# ?' f在我职业生涯的早期,我曾经开发了一项功能,交给一位高级开发人员审核。他看了一眼我草率的间距、错乱的代码行和混乱的命名规范,说:“重写!”
8 W$ i6 u! ]( q1 |) Q# [6 |% i我编写的代码可以运行,语法有效,但仍然是错的。优秀的程序员并不满足于让代码能运行,他们希望开发出优秀的软件。+ N( @/ g1 ?* N) g8 _" {
对于许多开发人员来说,这种追求品质的感觉是最难掌握的。精心设计的代码让人赏心悦目,而丑陋的代码让人退避三舍。
' S' J/ \ a5 U) W6 Q9 J一流的开发人员学会将抽象的逻辑与艺术家的敏锐融合在一起。程序员也要学着信奉一点,那就是代码的美感,与算法以及代码模式一样重要。3 U. H7 N' z& ]- V0 W' q
最近,我和妻子与儿子一起制作糖饼干。每次把配料混合在一起,我们就会停下来查看面团,讨论它的质地和颜色。面团是否光滑?所有配料是否已经均匀地混合在一起?5 D6 X; r, Z) \' ~4 h* E6 ~* k) w
我们擀面团时,儿子摸了摸面团的表面,然后看妈妈演示如何让材料铺得均匀而且厚薄适中。) M% w& Z1 G9 f+ M2 n1 a) F, _
然而,最难的部分是切出形状。像所有的孩子一样,他本能地将模具推到铺开的面团的中间,而每次,我们都会解释如何将模子挨个放在一起以便有最大化地利用面团。
5 {3 n9 {; ^2 ~" b6 U- Z/ ?精确称量材料、如何在压面团时保持光滑度和延展性、怎样放置模具减少面团的浪费——每一步都让儿子知道什么是追求品质。
& @) x2 V3 s) _7 ^如果只是按照步骤操作,孩子就很难理解遵循菜谱和追求优秀的差别在哪里。7 Q$ s% U, y2 b& x* I8 S
这些只能通过感受和体验来传递。每当你让孩子参与你认为重要的事时,就在向他们言传身教如何做好一件事,包括编程。2 w7 H0 P7 _+ |1 v4 D, Y$ e4 d% K, p/ y0 G
不仅如此,你还告诉他们,这个世界充满有趣的事等待我们去发现。你向孩子展示了如何保持激情,无论做什么,都要寻找那种转瞬即逝的品质感。8 z) N5 B& t1 G! ?! B$ U0 n7 C
这样的好处是,即使他们将来不会成为程序员——实际上,大多数人不应该也不会成为程序员——同样的技能适用于几乎任何职业、任何爱好和任何人的生活。
o: O6 c: V( D& B3 i. F( i当我们强迫孩子们学习编程时,我们其实向孩子灌输了这样一种观点:如果某些技能不是公认能赚到钱,就毫无价值。1 y# w B7 ` g. D
成年人可以学习语法,只有孩子才能学会拥抱好奇心。! ?3 r! ]( z( a1 n/ M \
作者:杰宝麻麻,为俩娃痛并快乐着的麻麻
& z R9 D/ b/ W- t+ q8 _
1 V8 S$ ]+ A8 U" A: _( O来源:http://www.yidianzixun.com/article/0LdCqXyu6 z- b) _/ C" \ c, @3 i
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|