“不会编程就是新文盲”?
我的一位前同事曾经在编程训练营接受训练,而这个训练营的口号就是“不会编程就是新文盲”。这种观点是所有编程书籍和游戏的核心。有一本畅销书说尽早学会编程“对孩子的将来必不可少”。这等于告诉我们,不教孩子编程就等于不教他们阅读。
当然这种观点是很荒谬的,不会编程不等于文盲。虽然大多数父母都有文化和读写能力,但是大多数父母都不是程序员,也不知道程序员需要什么样的技能。针对孩子们的编程书籍给出的都是一些问题的“标准”答案。
如果你的孩子能掌握编程语言,他们就能快速轻松地写出这些代码。然而编程不仅仅是写代码,编程是复杂的,需要同时具备创造性和明确性。作为一名程序员仅仅懂得编程语言是不够的,某些技能只能在非常年轻时学习。
好的程序员不仅仅是让代码工作,他们希望写出好代码。
没有书本会教你解决以前没人碰到过的问题
在我的职业生涯早期,我写了一些代码配置在一组远程服务器上运行。一开始代码似乎运行得很好,至少我是这样认为的。直到18个小时后,电话在半夜响起,告诉我一些服务器出了故障。我从床上爬起来,拿起我的笔记本电脑,在故障服务器上再次运行代码。然而几小时后,另外一些服务器又报故障。
问题不是出在代码语法上。如果是语法问题,首先服务器上编译就不会成功。故障是由更深层的问题引起的,隔离和解决这个问题花了我几个星期,经常半夜里被叫醒。
编程就是这样的,先试一试,看看代码能否工作,再试一次,如此反复。简单的问题应该会有现成的解决方案或者至少用开源代码来解决,剩下的就是一些繁杂的而且独特的问题。
没有书本教你如何解决以前无人碰到过的问题,这就是为什么我不想让我的孩子学习代码语法。我希望他们学习如何解决问题,深入研究问题,学会创新。那我们该怎么教呢?
纯粹地写代码不可取,质量、创造性和代码美感同样值得学习
有一天,我儿子担心他的椅子摇摇晃晃。我们一起看了看后他找到了问题在哪里,原来椅子的一个螺丝松了。
我找出一把用过的六角扳手,告诉他如何拧紧。他很好奇如果他向相反方向拧螺丝,会发生什么。他这样试了直到把螺丝拧出来。后来我们把椅子拆开了,然后试着装回来,我们一起装了好几次,有几次装错位了,直到最后他满意地把椅子装好。就像编程一样,试一试,看看它是如何工作的,再试一次。
当然,让代码能够工作只是软