编程和音乐的10个共同点
我的日常工作是编写iOS应用。我的主要爱好是创作,录制和制作电子摇滚音乐。但是我发现,有时候这两者会比我们以为的更为相似,具体我将在这篇文章中一一说明。
首先介绍一些背景信息——编程事业是我由来已久的追求,并且过去几年间我一直专注于做iOS开发。而我成为音乐迷和吉他手也已经有很长一段时间了。
我也为我现在的乐队做一些音乐制作、录制和安排工作。目前已经发布了两个小专辑。
关于编程和音乐相类似的这个想法源自于我和我的一个同事的谈论。他时不时地向我打听我的音乐项目的进展情况。然后,他告诉我,
“在我看来,创作音乐,可帮助你成为一个更好的程序员。它们之间有着如此多的相似点。”
1.强大的软件工具
如果你编写的不是,比方说,JavaScript,那么你需要一个集成开发环境(IDE)。同样的,如果你没有模拟磁带机和大型的混频器,那么你需要一个数字工作站(DAW)。这对于新手而言,软件往往显得庞大又有点吓人。你需要学习如何使用更复杂的命令。而且,从长远来看,这绝对印证了付出总有回报的真理。
2.读书
我们可以用谷歌搜索做很多事情。这能让你走得很远,但,从长远来看,你真的需要投入更多的时间用于阅读和学习更深层次的教程。音乐创作/制作和编程都有着一样的学习曲线——你觉得你什么都知道了,却立马发现又有新的东西出现并证实你还是需要学习。
3.向同行学习
同高级程序员或有经验的音乐家交谈,即使只是10分钟时间,也可以对你的工作产生戏剧性的积极影响。这一点也普遍适用于很多领域,特别是涉及到需要创造力的技术工作,效果更加显著。
4.迭代,从容地迭代
如果你想有一个良好的最终产品,那么你需要迭代,很多次迭代。急冲冲只会导致用户界面出现bug和奇奇怪怪的噪音。
5.组织自己
正如数字工作站(DAW)中有很多声轨,效果和选项工作,编程工作也有有一堆的类,对象,进程,线程和资源会在计算机程序彼此交互。如果你不遵循一些基本的组织规则和模式,那么你的结果只能是一团乱以及头大无比。
6.时间预估
显然的,随着时间的推移和经验的累计,你会越来愈擅长于时间预估,但有时这也可能会是一种可笑的缺陷。这种情况主要发生在执行过程中,突然冒出了新点子的时候。
7.练习和坚持成就完美
聪明人不会因为刚开始写的几个小程序就沾沾自喜,音乐家也不会因为才编写了几个曲目就骄傲自满。只有不断地付出辛勤的努力,才会开出鲜艳的花朵。
8.学好数学,才能走得更远
当然,基本的数学知识的确已经可以让我们做很多事情,但是多掌握一点,有助于我们走得更远。无论是算法或波形编辑,了解内部真实的发生过程能让你更轻松地实现你的想法和扩大你的创造力。
9.咖啡
很多时候,如果没有咖啡,我感觉整个人就不能好好工作了。很多程序员同样如此。这也是大多数摇滚乐手用来提神的东西。
10.知道什么时候喊停
研究有问题的代码块,或者聆听一首令人苦恼的歌曲,那么你需要知道什么时候应该喊停。通常,休息会,或者甚至更好的是睡一觉,都有助于你发现和解决问题。
上面这些我所说的点子其实并不是什么秘密。我喜欢制作音乐和编程。我希望你也能够像我一样在工作和爱好上挥洒激情。哦,对了,大家一起来说说自己的爱好,以及爱好和工作的相通之处吧!