今天是圣诞节,本该是开开心心的日子,有两位小朋友却在路上吵架。

结果圣诞老人恰巧路过,并且亲切的给他们一人发了一只袜子。

之后圣诞老人问他们在争论什么,孩子们说:“我们在争论编程和音乐有没有关系,他非说没有,我觉得有,就这样吵起来了。”

“孩子们别着急,你们慢慢说给我听,看看谁更有道理。”

“好!”两个孩子异口同声道。

于是说有关系的那个孩子发言了,“那我们先来看看谱曲和编程之间的相似之处。”

第一,它们都遵循逻辑规则。

谱曲,和编程一样,需要3个原则:

语法:扎实理解基本原理——乐谱和编程语言规则的理论或知识。
逻辑:你需要能够创建“逻辑推理”。当音乐创作或编程时,你需要遵循逻辑规则使得“活动”正常工作。
修辞:和语法和逻辑一样,你需要说服听众和新方法的使用者接受标准做法。

如果不遵循作曲和开发的基本原理,一切都无法正常运转。一个胡乱编写的程序将充满bug,在相同意义上,病态的和弦结构会造成乐曲的不和谐。

第二,它们都需要耐心。

要成为一个伟大的钢琴家,你必须先练习和完善基础知识:简单、重复的音阶和琶音。
要成为一个伟大的开发者,你需要花费大量时间来进行编程。

从一件件小事开始,你能够渐渐的打造出一个个伟大的东西。

第三,它们都帮助我们理解抽象的事物。

正如作曲家必须考虑到乐团的不同乐器组以及这些乐器组是如何组合在一起的,而开发者则需要在他们的头脑中保持一个抽象的“大局观”。
当他们开始构建程序架构的时候,这两个学科都需要构建一些更大,更好的东西。

第四,它们都能培养表达能力。

音乐和软件开发都需要创造力和自我表达能力:两者都需要培养自己的风格,创造一些新的和令人新奇的东西。

“所以是有关系的!我说完了!”孩子自豪道。

“孩子你说呢?”圣诞老人转头问另一个孩子。

“我就觉得没有关系,编程那么程序化,音乐却是有声有色的,肯定没关联......”

圣诞老人摸着胡子想了下,说:“孩子,你一定没有学过编程吧。”

“没有。”

“这就对了,你先去学一下编程吧,学了之后你就知道他们之间的联系了。”

“那...你也学编程吗?”

圣诞老人笑了笑,然后非常神秘的说:“你学编程之后就会见到我了。”

说完,圣诞老人便走了,“孩子们再见,我还要忙着给别的孩子送礼物嘞!”

话音刚落,圣诞老人驾着麋鹿的身影就跑的老远了。

两个孩子面面相觑,“圣诞老人最后的话是什么意思啊?”

“不管了,你先跟我一起学编程吧!”

(文章部分内容来源于国外文章)


可能很多家长都想象不到音乐和编程的联系,但其实编程也是一种另类的艺术。

在英国有一位多产的音乐家Elvis Costello,他曾被誉为“他那一代最优秀的词曲作家”,而在这之前上世纪70年代他在操作IBM 360。

今天是平安夜,愿大家平安顺遂、开开心心!