先说我的经历。
我学习编程比较早,是在五年级结束的那个暑假,也就是1988年六月份。
我学编程有这么几个机缘巧合。
环境
第一个机缘,是我出生在一个工程师家庭。爸爸是交大电机系毕业的,家里面各种电子相关的书比较多。我最早接触的是二极管三极管这样的电路,三、四年级的时候迷着做收音机,音乐门铃什么的,看的书也是《电子报》一类制作各种电器的。而电脑是因为其中有一本叫做《计算机台历》的,里面关于计算机的基础知识让我似懂非懂的看了两年。
启发:我觉得家里的书籍反映了父母的职业和爱好。我们很少会意识到这是也是孩子寻求知识的最容易获得的来源。家里面放什么书,孩子若是有哪方面的天赋,就更加有机会顺着这个阶梯入门。一切发生的自然而然,父母可能全然不知。我怀疑我的父母到今天,或许还没有意识到那个时候书架上从来没准备让我看的书,对我的影响。
老师
第二个机缘,是出现了一位老师,我的大哥。我哥哥和我年纪相差比较大,那年暑假他正好大三,再回家的时候随口问了一句我要不要学编程。我当然随口说了句“想”。于是拿出谭浩强老师的《Basic语言》,花了半个小时开了个头。从此,我一发不可收,把所有的暑假时间都花在了研究那本书上面。
启发:老师不见的是需要报什么班,也不见得需要很长时间。小孩子的学习欲(尤其是对自己小时候就感兴趣的东西)就像干柴一样,一个火星就足以点燃。但问题是,世界上的东西太多,我们很多时候不知道应该扔出哪一个火星。比如对于那个时候的我,遇到声乐老师也不太会像学习电脑那样着迷。我现在家里面放着钢琴,儿子也没有花什么时间在那上面。所以要多扔几个火星试试看那个能点着。
机会
我的计算机学习还有一个很重要的机缘,就是我当有使用电脑的机会。这也是相当难得的。1988年电脑还叫计算机,都是在空调房间里面,进门要换白大褂换拖鞋仔细的除静电的,里面一排排几个冰箱那么大的主机,还有磁带机里面转动着脸盆大小的磁带,以及打孔的纸带机。因为父母的单位里面有这样的计算中心,所以我有机会溜进去了几次,可以把自己在纸上准备好的程序输进去,看了一下黑底绿字的现实结果。刚开始,无非是一个两三个嵌套的FOR循环打印星号组成的圣诞树什么的,但那神奇的感觉让我兴奋的几天都睡不着觉。
启发:如果有可能,还是应该带孩子去看一看这个时代最先进的东西,孩子对于先进的和现状的科技其实是没有什么分别心的,学习起来几乎成本一样,所以创造些机会让孩子接触些成人自己都搞不懂的领域,不是件坏事。
若有更多的机会
当年毕竟条件有限,上机的机会几乎是半年才有一两次,更多的时间,只好在纸上编程。写好了,一遍一遍的读,在脑子里面运行。居然自己在没有电脑的情况下开始写了个贪吃蛇一样的程序,还可以翻屏的。这几十页的BASIC程序现在还在家里的档案里面装着,从来都没有机会在一台真的电脑上跑起来过,我很怀疑写的是不是真的能够跑起来。还有一个有趣的事情,我的QWERT键盘的指法,是我二哥在一个硬纸板上画好了键盘的位置我画一个暑假练出来的。因为没有电脑用,我之后的几年经常跑到附近的商场里面在那台陈列的Apple II的橱窗前徘徊,解解馋。
启发:我有时候在想,虽然我已经非常幸运,但那个时候有稍微更多资源的话或许我可以学习的更深入一些。家长对于今天的孩子,分辨哪些是过度的宠爱哪些是合理的投入很难,但如果有机会,孩子的真正的兴趣和激情的方面的投入还是值得的。虽然孩子会“沉迷”在一些事情上,但这也是孩子最宝贵的一种学习和探索的原生动力,
行动
一转眼自己的儿子快要到我接触电脑的那个年纪了。这一代人幸运得多,技术也早已经编程普及了。他有机会比我们当年快得多,广得多的学习。
这是他的整个学习过程供大家参考(大多数并非我安排的顺序):幼儿园的时候开始学习Scratch语言,搭乐高的Mindstorm,用LabView图形化界面编程。之后接触Minecraft的搭建以及编程,6岁的时候开始学习C语言,我帮他找了交大的老师每周两次跟着学习,之后系统的学C++。跟着老师学各种算法,得信息奥赛上海市第六名。最近开始对Java,iOS编程感兴趣,(还趁我不注意学了一小段Visual #F - 让我直摇头),这两天用智能家居设备在家里各种违章搭建(因为我自己的经历,我们决定家庭财政对于他经过批准购买的智能家居设备赞助一半的资金)。
这些学习会将他带向何方,我完全不知道,谁又会知道呢?但无论最终这条路指向哪里,我都愿意和他一起跟着自己的兴趣去探索。