当下编程究竟有多重要呢? 就像大家所了解熟知的音乐、美术等 是目前每个小孩必备的素养一样, 编程也是同理。 甚至编程可以更具灵活的优势, 编程可以是音乐,可以是电影,同样也可以是艺术。 编程在未来可能会成为重要媒介, 融入到各个学科中, 帮助世界变得更加美好。 在过去的几十年时间里,对音乐作品和编程同时感兴趣的计算机科学家成功地将两者结合在一起。现在的人工智能谱写音乐,几乎由专业音乐人创建的没有差别。 很多专业的开发人员对音乐有着真正的激情,以及许多音乐家涉足过编程,这些已经不是什么秘密。就好比Elxis Costello,一位多产的英国音乐家,被誉为"他那一代最优秀的词曲作家",在他的音乐生涯腾飞之前,他曾在上世纪70年代操作IBM 360。 我们不难发现为什么人们会沉溺于这两个领域: 因为创作旋律和编写算法之间,有很多共通之处 。从表面来看,两者似乎颇不相同,但是不可否认的是,两者都具有开发创造这一共性,而谱曲亦有机械化的一面。那么,编程和谱曲有什么相似之处呢? 让我们先来看一看谱曲和编程的相似之处 01
它们都遵循逻辑规则 谱曲 :同编程一样,需要3个原则: 语法 :扎实理解基本原理—乐谱和编程语言规则的理论或知识。 逻辑 :你需要能够创建"逻辑推理"。当音乐创作或编辑时,你需要遵循逻辑规则使得"活动"正常工作。 修辞 :和语法逻辑一样,你需要说服听众和新方法的使用者接受标准做法。 如果不遵循作曲和开发的基本原理,一切都无法正常运转。一个胡乱编写的程序将会充满bug,在相同意义上,病态的和弦结构会造成乐曲不和谐的后果。 02
它们都需要耐心 要成为一个伟大的钢琴家,必要的是先练习与完善基础知识:简单、重复的音阶和琶音。要成为一个伟大的开发者,你需要花费大量时间来进行编程练习。从一个个小事做起,之后能够渐渐打造出一个"大工程"。 03
它们都可以帮助我们理解抽象的事物 正如作曲家必须考虑到乐团的不同乐器组以及这些乐器组是如何组合在一起的,而开发者则需要在他们头脑中保持一个抽象的" 大局观 ",当他们开始构建程序架构的时候。这两个学科都需要构建一些更大更好的东西。 04
它们都可以培养表达能力 音乐和软件开发都需要创造力和自我表达能力:两者都需要培养自己的风格,创造一些新的和令人耳目一新的东西。 05
你需要涉猎技术 音乐家和开发人员需要花费很长时间来思考他们的创作如何与其他产品交互,以及如何呈现在"最终用户"的手中。作曲家可能会增加重音符号以及指示乐团成员要演奏的风格。吉他手可能会考虑使用外部硬件(amps,效果器等),或他们希望在录音室里制作他们的歌曲。同样的,开发人员则需要牢记别人将在哪种设备和什么上下文中如何使用他们的最终产品。 06
两者都需要团队合作 莫扎特单独花了很多时间来想他的下一个曲谱,尽管如此,他 依然需要与他人合作 — 也就是他指挥的乐师。同样,最成功的开发人员绝不是一个纯内向的人:他们需要与最终客户、经理和用户体验设计师等人员合作。 编程特有的优点 如Coding Horror博客的作者认为的那样,开发人员将自己的技艺与绘画,音乐或其他艺术形式之间作比较不仅仅是一种比喻,更多的是一种自我夸耀。当然,我们都希望我们正在构建的app能够像Gershwin的音乐一样棒一样好,或者我们刚刚设计好的网站能够像Miles Davis的《Kind of Blue》一样影响深远。 ·编程是为了解决问题: 当你被要求去设计一个app的时候,通常是为了 解决问题 ,例如,特定的业务或消费者问题。开发人员善于解决此类问题,但这是否真的可以比作音乐?从最纯粹的角度看,谱曲是纯真感情和情绪的迸发和表达。 ·编程为用户提供便利: 当你开发任意一种工具时,最终目标是让终端用户能够做一些具体的事情。假设你正在构建一个业务app——你的创作应该意味着为最终用户的日常工作提供便利 。相比之下,音乐,则并没有一个特定的"目的",只是一种超越纯粹的享受。 ·它们同样重要: 虽然,谱曲和编程有着一些共同的因素,但它们也有很多区域是存在分歧的。我们所知道的是,开发人员和音乐家都可以丰富我们的生活,并给我们一些以前不知道我们需要,但是现在生活不能没有的东西。 (文章内容来源于外国文章) 现在,能弹奏音乐的不仅仅是乐器,还有编程!Steam创客将编程转换成能弹奏的"编程乐器",实现编程音乐相结合。