
通常在社会上,我们喜欢将事物分类为两个相对的二进制文件。 黑与白。 狗人和猫人。 创意和逻辑。 艺术和数学。 那灰色区域呢? 如果某些东西不能整齐地放入此盒子或那个盒子中,而又松散地放入这两个盒子中怎么办?
我从很小的时候就知道我想成为一名音乐家。 音乐一直是我一生中的主要影响力,无论是通过我自己的表达方式还是通过吸收其他创作者的音乐而获得的灵感。 我小时候不知道的是,我作为音乐家学到的技能虽然看似无关,但可以很好地转化为其他主题领域。
自从我从音乐老师转到软件工程师之后,这里概述了我作为音乐家学习到的技能如何使我成为一名更好的软件工程师。
故事时间:当我在大学读音乐时,有两个五重奏组。 第一组是在整个大学中担任各自乐器的第一位主席。 第2组(我的组)是相识并且都在同一毕业班上的个人。
在一场展示了两个小组的音乐会之后,我们所有人都收到了反馈,认为第二小组的表现优于第一小组。 原因……并不是因为五重奏中的每个人都是我们各自乐器上的“最佳”……而是因为我们在相互协作和融合以形成凝聚力的合奏方面做得很出色。
我觉得这也可以转化为软件团队。 举例来说,您有一群“摇滚明星”程序员……这并不意味着他们作为个人也很擅长协作或团队合作(某些“摇滚明星”可以免责)。 我所见过的最好的软件团队不一定有最好的个人程序员,但他们是一群人,主要专注于互相帮助,最终目标是使最终产品更好,同时又充满好奇心。学习新东西。
作为音乐家,我花费了大约90%的时间练习和10%的表演。 我花了更多时间制作自己的双簧管簧片……但这可能是另一篇博客文章。
同样可以应用于软件开发。 目前,作为一名专业软件工程师,我将大量时间用于研究新框架或技术,构建一次性应用程序并阅读文档。 花最少的时间来编写代码,最终将其交付生产
在大多数学术环境中,“ B”级足以通过。 不同的机构对“ B”的定义不同。 但是,大多数地方定义为正确答案的80–90%。 现在从音乐上考虑一下……如果我播放的歌曲中90%的音符准确无误……听起来会很糟糕。
相同的原则适用于构建软件。 您花了30多分钟的时间来弄清楚为什么有一头短绒棉对您大吼大叫……却发现您缺少分号或大括号吗? 要求接近完美。
当您想到口头语言时,总会有较小的构建块组合在一起,以构建更大的块。 例如,一个字母……变成一个单词……变成一个句子……变成一个段落……变成一部小说。
在音乐上类似。 一个音符变成一个音阶…有时会同时演奏多个音符,从而产生一个和弦…多个音符,音阶和和弦会合在一起创建一首歌曲。
在软件开发中,我们有多种编程语言,并且大多数语言都有共同的构建基块,可以共同创建脚本或软件产品。 这些常见的构造块包括变量,函数和条件表达式。
下一部分是我的个人看法。 作为一名音乐家,我觉得最有趣的人就是那些可以走进一个房间,几乎瞬间适应……在音乐水平和社交技能水平上的人。 我一直很喜欢和演奏多种乐器和音乐流派的人们一起玩。
另一方面,与我合作过的我最喜欢的软件工程师非常擅长阅读会议室,并且可以调整他们的互动方式,以适应团队的首选沟通/工作风格。 与了解多种编程语言并使用各种大小的不同代码库的软件工程师一起工作也很有帮助(但不是强制性的)。
如果您已经是软件工程师并且正在阅读本文; 希望您会受到启发,尝试表演或创作音乐。 它不仅很有趣,而且会让您成为更好的软件工程师。
如果您是音乐家,在俄勒冈州的波特兰市,并且想学习编码,那么有一些免费的初学者可以学习如何在Meetup上编码研讨会。
我可能还错过了哪些其他相似之处? 也可以随时分享在其他学科中学习到的技能如何帮助您成为一名更好的软件工程师,以及为什么要发表评论。