(写在父亲节)我的老爸是个程序员

文章来源:图灵教育

我是个普通的小孩,今年11岁,我非常明显地感觉到我有一位与众不同的老爸——他是一位程序员。

1

当我还在老妈肚子里的时候,我就经常听见电脑键盘噼里啪啦的舞蹈声,这是老爸陪伴我和老妈的方式,一边小温馨一边处理BUG……

有时候,我听见老爸跟老妈说,黑客是世界上最酷的职业,他非常推崇一名又是黑客又是画家又是创业者的大神Paul Graham。他坚信,程序员给世界带来了特别的“美和智慧”…

因此老爸经常跟老妈唠叨,将来等我出生慢慢长大,不论我喜欢干什么,都要教我编程…

2

果然,老爸和老妈从来不刻意将手机、iPad、电脑之类避开我,而这些亮晶晶的屏幕对我天然有种吸引力。

我4岁的时候,老爸就在iPad上教我Scratch——Scratch 是一种用来制作软件的软件。看一下我们周围,大家会发现很多东西都不是自然存在的,而是被创造出来的,而这个创造过程就需要一些材料和工具。Scratch 既是用来制作软件的材料,也是用来制作软件的工具。也就是说,我们可以用Scratch 来制作游戏,也可以制作编辑器或是画图软件,只要你学会了,想做什么都可以!

“把自己想要的东西动手做出来” 是不是听起来很神奇?而且在Scratch里, 使用一块块的彩色模块来代替音符记号, 把这些小模块排列起来的过程就是编程了, 这个过程非常像我们常见的搭建乐高积木。

3

别看老爸大忙人一个,他还挺注重锻炼身体的。

平常上班,在项目没有火烧眉毛的时候,他执行“番茄锻炼法”——首先留出一大块时间,比如两三个小时,选出两三样想在这段时间进行的编程任务,接着再选出想做的两三样锻炼方法,比如说步行、神经滑动、身体卷曲等。顺序是先编程再锻炼。用计时器设置25分钟,然后开始工作。在计时器铃响时再设置计时5分钟,然后开始进行你选好的第一种锻炼方法。计时器铃响时,回到电脑边继续工作。按这种方式进行安排的内容,直到用完这一整块时间。

如果周末不加班,老爸通常会带我和老妈去公园或者小树林活动。老爸曾经对我说:“增进幸福感最有效的三种手段是:接触大自然、阅读和独处。” 目前,老爸带我践行前两项。

4

待到我快8岁的时候,玩儿Scratch已是3年有余。

这时候移动应用大行其道,老爸手机上装的各色应用简直眼花缭乱,有些非常有趣,我都玩得爱不释手。老爸告诉我,不如自己制作几个小应用吧?

这时候老爸开始教我使用App Inventor。

App Inventor 是一款采用拖曳操作的可视化编程工具,主要用于构建运行在安卓平台上的移动应用。App Inventor 提供了基于 Web 的图形用户界面设计工具,你可以用它设计应用的外观,然后像玩拼图游戏一样,将“块”语言拼在一起来定义应用的行为。

跟Scratch的玩法有点像,不过比Scratch更灵活,更容易制作一些实用的App。

我用App Inventor制作的应用有打地鼠游戏、北京朝阳区旅游地图、短消息提醒与回复等,当然少不了老爸的指导…

5

在程序员这个行当,一般高手都精通好几门编程语言。据我所知,老爸精通C语言、Java、Objective-C,并且还自学了Python、Go、Ruby等。

我去年10岁,老爸觉得是时候让我见识见识真正的编程语言了。老爸替我选了Python作为入门编程语言,这门编程语言比较容易上手,开源的,各种共享资料应有尽有。

编程(programming)就是告诉计算机要做什么。计算机只是一些没有生命的机器,它们自己可不知道该做什么,一切都得你来告诉它,而且你还必须把细节都说清楚。

所有计算机在内部都使用二进制。不过大多数人都不擅长使用这种语言。于是人们发明了编程语言。利用计算机编程语言,我们可以先用一种自己能理解的方式写程序,然后再把它翻译成二进制供计算机使用。

6

虽然我最爱动手实践,不过老爸告诉我基础知识同样相当重要,所以老爸给我买了几本书,让我慢慢读。

  • 程序是怎样跑起来的
  • 计算机是怎样跑起来的/li>
  • 网络是怎样连接的/li>
  • 穿越计算机的迷雾/li>
  • 编码:隐匿在计算机软硬件背后的语言/li>

7

“如果要教给孩子一件事,那就是原则。如果要教给孩子两件事,那就是原则和计算机编程。”

这是我阅读的参考书里的一位高手说的,我猜老爸也是这样想同时也是这样做的。

到目前为止,我还没想过将来要像老爸一样做一名程序员,编程只是我的兴趣,我在这个过程中获得了很多乐趣,学习了很多酷酷的知识。

套用严肃的说法:
“计算机编程是一种培养学习能力的有力工具……学习编程的人会把这种能力也运用到其他东西的学习中。而学习能力大概是伴随一个人终身最为重要的能力。”

8

我的老爸是个程序员!
这很酷!

编程一小时AI发展出了自己的语言 人类无法理解
能力橙 Abcoding
教学特色 Teaching Feature:
  • 项目/游戏化课堂
  • 场景化/故事化教学方式
  • 科学化/体系化的思维培养
  • 可视化/可量化的教学效果

预约免费试听课

编程连接世界,孩子创造未来!

400-060-2316