我很幸运能够出生在音乐教育中。 我父亲在我出生时已经弹吉他30多年了,直到我青春期继续与他的朋友们一起演奏。 在同一个Fender Jazzmaster和Roland放大器上使用了多年之后,他会无休止地面条。 尽管这种情况逐渐减弱,但它让我渴望更多。 这是什么音乐魔法,我该如何运用?
那就是关于黑客心态的事情-它可以适用于任何东西,包括音乐。 我接触音乐的方式与早期接触技术的方式相同:散布,注意力集中时间短,渴望获得实践经验。 所以我拾起吉他,开始拾音。
父亲教了我基本的音阶和一些和弦,但是我对用耳朵演奏更感兴趣。 今天仍然是我的比赛方式。 尽管我在高中学习了音乐理论,但对使某些音符有特定感觉的方式以及如何在数学环境中唤起这些声音进行了更加严格的教育,但它从来没有停留过触摸乐器和弹奏的方式。我自己做的笔记。 我用耳朵玩,它有效。
这种音乐情境在我的生活中产生了什么影响? 首先是我听各种各样的音乐:嘻哈音乐,爵士音乐,金属音乐,朋克音乐,工业音乐,各种电子子流派……除了流行音乐及其音色相似的流派之外,几乎所有东西。 这并不是说当我听到流行音乐时我会阻止流行音乐-我只是看不到相同的3个和弦以不同的排列方式发出的吸引力(除非它是朋克音乐,但它们是不同的和弦)。 我什至喜欢流行歌曲。 那些3和弦会引起我任何有意义的事情,这是很少见的。
这导致音乐对我的技术职业产生了第一个积极影响:当我听到解决问题的新方法或新的编程范例时,我保持开放的态度。 我仍然需要时间来思考新概念,但是我很少会不屑一顾。 音乐是我真正的第一个黑客。 我没有遵循正规教育的“指导手册”,而是选择掏出笔记并亲自聆听差异,发现为自己激发的情感。
这对我的编码产生了不可估量的影响,我在撰写本文时才开始意识到这一点。 例如,我可能只是添加该死的东西,看看它是否有效,而不是参考编程手册并找到我要使用的API调用,并检查例如“ gzip”选项的选项。 这样做几乎没有什么害处,当它起作用时,男孩这样做可以节省时间。 不仅如此,它还使我始终处于区域内。 它使我不必专注于错误的事情,例如目前不重要的API详细信息。
音乐能力的另一方面与编程直接相关:随着时间的流逝,技能的下降。 我已经确定,一项技能会“腐烂”,我敢肯定,许多其他软件工程师以及音乐家也有这种技能。 如果不练习,就会生锈,对吗? 同样适用于编程。 我还发现基准技能水平适用,随着时间的推移您进行的练习越多,底线越高。 因此,如果您在Perl中投入了10,000个小时的时间,那么与投入100个小时的人相比,几年后忘记它的可能性要小得多。
即使我不太可能在不久的将来专业使用某些语言,这也使我经常练习某些语言。 需要脚本吗? 为什么不用Ruby而不是JS编写呢? Ruby可能比JS更“习惯”,这意味着它与我的世界思维模型更紧密地映射,并且具有我期望的方法名称,所以...为什么不呢? 还是Python! Python非常适合与OS相关的脚本,可触摸文件和目录的脚本,并基本上替代了Perl的功能,但以后仍保持可读性。
音乐影响力的第三个也是最后一个方面更难理解。 我倾向于创造性地编码。 这可能意味着我对问题采取了新颖的方法。 这可能意味着我要蜿蜒而行,而不是直奔解决方案的纯粹逻辑战争。 但是,这对我真正的意思是,我的代码不会两次相同。 这意味着它将与我5年后编写的代码不同,因为就其本质而言,我的创造力自我发展为我的逻辑自我发展而为。
这是一件好事吗? 我喜欢这样想。 随着您的成长,您的代码也随之增长。 你为什么不想要这个? 当然,您不希望代码过于聪明或棘手-这就是灾难的根源。 但! 您需要用最自然的方式表达想法的代码。 当您表达自己的创造性思维而不仅仅是逻辑思维时,您会发现具有直觉意义的解决方案。 有什么比这更好的呢?
我不会为任何事情放弃自己的音乐教育,而不是一百万美元。 它赋予了我不可思议的,不可替代的创造力,而这在其他方面几乎是不可能实现的。 如果您是程序员,但没有演奏乐器,请尝试键盘! 这是我(当前)最喜欢的乐器,在允许创作自由的同时,这是合乎逻辑的。 您可以花100美元左右得到一个体面的25键游戏板,这将使您能够演奏旋律,同时又可以防止您尝试双手演奏,这是我说实话还没有掌握的。
一旦掌握了旋律的技巧,您就可以尝试使用49键(甚至是完整的88键!)型号的和声,而这种型号价格昂贵。 您可以插入计算机,然后使用Logic Pro或Ableton等软件为Midi Magic供电。
如果我可以给您留下一个想法,这篇博文中的一个主意,那就是:尝试创造性的尝试! 尝试除编码之外的一些创新方法。 它将扩大您的视野。 这将使您成为更好的编码器。 这会让您有不同的想法。 毕竟,这不是为什么我们要学习新的编程语言吗? 尝试一下,为自己发现音乐表达的巨大奥秘。 我保证你不会后悔。