前言:Get与机器沟通的技能是必要的吗?
我们这代人被安排去学习英语、德语、西班牙语、俄语甚至阿拉伯语,目的是在残酷的社会竞争中多get一个谋生的技能。但是这些语言的学习都是为了解决人与人之间的沟通,而科技的进步已经能够做到不同语种之间的“机器”版同声传译,那么接下来对翻译这一中间人的需求就会慢慢减少,注意,我没说翻译会彻底消失。
为了教上小学的儿子学编程我得写个教程,谁让我是一个程序员呢?需求减少,竞争压力就会变大,相应的职位就不那么吃香。从本质上讲,又是机器抢走了人类的工作和饭碗。从另一个角度去理解,人类之间的沟通不再是问题的时候,其实还有另外一份工作:程序员---承担人和机器沟通的责任。
20世纪正是最早学会英语到世界上比较发达的国家去走一走,看一看,然后回到国内搞了一套外国的新玩意,然后他们成功了。关于这一点,你去采访BAT的老大或者一把手他们都会承认的。可是我们错过了互联网发展大潮,机会都被这些大佬抢走了,未来是不是没有机会了?我说不是,未来的机会应该更多,只是有一个前提,你得学会和机器沟通。和机器沟通的最基本要求是什么?是你必须会编写程序,“明天”的世界到处都是程序员,因为这是新世纪“公民”们的基本属性,今天在各单位上班的这些“特种”程序员会不会感觉后背发凉呢?作为一个程序员的我想到这些是有些害怕的。
想要在新世界有所作为,你必须让自己的孩子学会编写程序,因为在他们的世界中多数工作都被机器取代了,留下来的工作都需要和机器(计算机)沟通。那么,如果您的孩子不会编写程序,他将会生活的相当无聊,甚至沦落成社会的负担,现在不就有一种人被叫作低端人口吗?你想让你的后代在将来被称作“低端人口”或“无用人口”吗?
当然,不想!那么怎么办?父母之爱子,则为之计深远。这是雏龙说赵太后的话,我觉得很适合当下焦虑的父母。从现在开始为孩子安排学习编写程序,培养成一种像母语一样的技能,未来的天下必然是这些孩子的。
总之,想要在未来胜出,必须掌握与机器沟通的技能,而掌握这样技能的起点是学习编写程序。
第一章: 为了教儿子学会编写程序,我必须写一个适合小学生学习的教程
不管做任何事情,我们都需要工具。就像吃饭需要碗和筷子(印度人除外),砍树需要斧子或者电锯一样,编写程序,我们也需要工具。
那么,我们要准备什么工具呢?笔记本电脑、编写程序的工具软件(多入牛毛)和一套教程。编写程序的软件和教程很容易解决,笔记本电脑吗,需要你去购买。
我习惯使用的工具:MacBook Pro(苹果笔记本的一种)、IntelliJ IDEA(一个编写软件的工具)。
工具都有了,可是我发现没有一个好的教程适合我教育自己的儿子,怎么办呢?毛主席说:“自己动手,丰衣足食”。我自己就是程序员,那么我就自己编写或者开发一套适合引领小学生进入编程世界的教程吧。
第三章:编写教程开始
第一课:键盘和触摸板的使用
第二课:Mac操作系统的体验和学习
第三课:面向对象的编程语言基本概念的学习
第四课:开始编写程序
面向对象=对象(Object)+分类(Classification)+继承(Inheritance)+用消息通信(Communication with Messages)
什么是对象?
什么是分类?
什么是继承?
什么叫“用消息通信”?
什么是封装?
什么是多态?
什么是关联、组合和聚合?
什么是静定绑定?
什么是动态绑定?
这些概念专业性很强,我如何能让一个不满10岁的小孩子理解呢?当然是比喻,只要给小孩子恰当的比喻去解释,他们就能很好的理解,要相信他们很聪明,至少比我们想象的要聪明的多。
下面我们一起来学习一下什么是“对象”?
对象就是装芭比娃娃的盒子,对象就是你的铅笔盒。对象就是一个模块,对象“封装”了你想要的功能。比如你的铅笔盒,它可以放你的橡皮,也可以放你的铅笔,甚至可以装的下几颗糖果。是谁赋予了铅笔盒这么多功能呢?是的,小朋友,就是你们自己。那么程序设计中的对象实际就是“我们”编写的一个模块被实例化的结果。
为了教上小学的儿子学编程我得写个教程,谁让我是一个程序员呢?对象由什么组成呢? 记住这三个单词:name、feature、action. 其实人类也是由这三方面组成的,比如:有个小朋友叫狗娃,他很高、很帅,会写毛笔字、会打篮球。这个例子中,我们描述了姓名、特征和能力(功能)。其实,面向对象的程序设计中的对象就像一个小朋友,它也有名字、特征和功能。
其他的概念我将在以后的课程中慢慢解释。怎么样,您愿意为自己的孩子计深计远吗?您足够爱您的孩子吗?如果您希望自己的孩子在很小的时候就学会编程,请留言告诉我。如果留言足够多,我将编写一套适合更多孩子的教程,而不只是我自己的孩子。
网友评论