We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Mozart Could’ve Been an Engineer - Music + Code

00:00

Formal Metadata

Title
Mozart Could’ve Been an Engineer - Music + Code
Title of Series
Number of Parts
69
Author
License
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Would you hire a musician to build a web app? After this talk, you might not think it’s such a crazy idea. Transitioning from opera singer to software engineer, I was blown away by the parallels between music and code. During this talk, we’ll study these similarities: how we break down elements to learn, use patterns to build, problem solve with creativity, and succeed through persistence and flexibility. We’ll compare “Mary Had a Little Lamb” to a Ruby method and see how Puccini might have coded a Todo app. Warning: parts of this talk may be sung. Yes, you may bring your own instruments.
43
Thumbnail
29:29
44
Presentation of a groupMachine codeLink (knot theory)Slide ruleSoftwarePattern languageArithmetic meanGraph coloringElement (mathematics)Musical ensembleTwitterMachine codeParallel portXMLUMLComputer animation
Machine codeSlide ruleSoftwareLink (knot theory)Musical ensembleMultiplication signSoftware engineeringFeedbackOffice suiteSlide ruleTwitterSoftwareMachine codeComputer animation
Musical ensembleObservational studyPairwise comparisonExecution unitProcess (computing)Web pageEndliche ModelltheorieData modelDecision theoryPower (physics)Spring (hydrology)EmailLatent heatNP-hardFormal languageControl flowResonanceConvex hullCognitionInclusion mapPlastikkarteHecke operator1 (number)Data dictionaryRight angleBookmark (World Wide Web)Musical ensembleMereologyFlow separationHecke operatorLevel (video gaming)CASE <Informatik>Computer scienceObservational studyElementary arithmeticMultiplication signSpeech synthesisResultantProduct (business)Line (geometry)Inheritance (object-oriented programming)Arithmetic meanProcess (computing)Formal languageNP-hardGraph coloringExtension (kinesiology)Wave packetField (computer science)TheoryMathematicsApproximationGradientKeyboard shortcutMathematical analysisRange (statistics)Theory of relativityBit rateGroup actionComputer animation
Hecke operatorMultiplication signUniverse (mathematics)Computer programSimilarity (geometry)VideoconferencingMathematical singularityMusical ensembleBitComputerTunisSemiconductor memoryVideo gameInheritance (object-oriented programming)GradientComputer-assisted translationComputer animation
Musical ensembleMultiplication signArithmetic meanLevel (video gaming)Computer animation
Video gameDecision theoryProcess (computing)AdditionMereologyMeeting/Interview
SoftwareSoftwareVideo gameObservational studyMultiplication signOperator (mathematics)Computer animation
Link (knot theory)Multiplication sign1 (number)Right angleTask (computing)DialectHost Identity ProtocolMachine codeConnected spaceProcess (computing)Block (periodic table)Poisson-KlammerWordEngineering drawingDiagram
Formal languagePoisson-KlammerSign (mathematics)BuildingMultiplication signBlock (periodic table)Arithmetic meanPosition operatorProcess (computing)Bit rateRange (statistics)
TheoryMultiplication signDisk read-and-write headBuildingLine (geometry)Musical ensembleComponent-based software engineeringGradientComplex (psychology)Scaling (geometry)Alphabet (computer science)Key (cryptography)Symbol tableMachine codeComputer animation
Task (computing)VolumenvisualisierungRootRoutingComponent-based software engineeringWordGraph coloringEndliche ModelltheorieRegulärer Ausdruck <Textverarbeitung>Power (physics)Pattern languageMachine codeMusical ensembleConnected spaceMoment (mathematics)Task (computing)Wave packetMultiplication signComputer fileVideo gameXMLComputer animation
Formal languageRootTask (computing)VolumenvisualisierungScaling (geometry)DataflowPattern languageMeasurementMusical ensembleFigurate numberMultiplication signKey (cryptography)Reading (process)Right angleMoment (mathematics)Engineering drawing
Control flowRevision controlInformationProcess (computing)Human migrationEndliche ModelltheorieDiagramMachine visionMultiplication signMereologyNumberInformationLine (geometry)Order (biology)Moment (mathematics)Right angleMathematical analysisPattern language1 (number)Beat (acoustics)Sheaf (mathematics)Perfect groupProcess (computing)Endliche ModelltheorieMobile appTrailDisk read-and-write headMeasurementScaling (geometry)3 (number)5 (number)Machine codeComputer animation
Spring (hydrology)WordInformationProcess (computing)Core dumpEuler anglesDynamical systemWorkstation <Musikinstrument>Right angleState of matterCondition numberVideo game
Electronic meeting systemState of matterAverageMetropolitan area networkMultiplication signWordLevel (video gaming)TrailSheaf (mathematics)Point (geometry)PlotterTable (information)Moment (mathematics)Line (geometry)
Coma BerenicesOpen sourceComputer-generated imageryNormed vector spaceMereologySphereRight angleVideo gameLaptopSoftware bugMeasurementCurvatureMessage passingMultiplication signImage resolutionSet (mathematics)InformationMusical ensembleMachine codeGame theoryForm (programming)Ring (mathematics)Term (mathematics)Bit rateVisualization (computer graphics)WindowUniverse (mathematics)Query languageScaling (geometry)Numeral (linguistics)Wage labourOcean currentGraph (mathematics)Software developerProcess (computing)Execution unitComputer animation
Limit (category theory)FeedbackPoint (geometry)FeedbackGoodness of fitComputer programTheoryMultiplication signWordOperator (mathematics)Graph (mathematics)
CollaborationismPeer-to-peerGroup actionLevel (video gaming)MereologyMusical ensembleDifferent (Kate Ryan album)Type theoryComputer programChemical equationMultiplication signRight angleForm (programming)
VotingRight angleVideo gameMusical ensembleDifferent (Kate Ryan album)Series (mathematics)Point (geometry)Multiplication signSummierbarkeitMereologyPower (physics)Computer animation
Slide ruleMachine codeLink (knot theory)ComputerComputer animationXML
Transcript: English(auto-generated)
In the next 40 minutes, we're gonna talk about the parallels between music and code. We are going to learn how the brain of a musician is similar to the brain of an engineer.
We're gonna learn how it's similar, how they break down elements to learn, use patterns to build, use creativity to problem solve, and use persistence and flexibility to grow and succeed. And maybe you'll walk away thinking that,
hey, musicians might be better coders, and coders might even make better musicians. My name is Catherine Myers. My Twitter handle is ccmyers324. Please tweet at me. I'd love to hear your feedback. I am an opera singer turned software engineer,
and I currently work at Mavenlink. We have offices in Salt Lake City and San Francisco, so if you love working on software and pair programming, check out Mavenlink.com slash engineering or talk to me. And the slides are at hit.lee, music code Ruby.
So there have been a lot of studies done on music and the brain. And I had kind of heard about these in the music industry, but when I started doing research for this talk, I was blown away by how much research has been done in this field.
And there are some really impressive sounding publications with medical jargon that took me five dictionaries to understand. And it was really interesting what I found. Stuff on music and brains and children. One of my favorite ones that I saw
was a study on jazz improvisation. And they actually built a plastic keyboard, completely metal free, so that they could study the brain of a jazz pianist while playing during an MRI. I thought that was pretty cool.
So let's start out with some cold, hard, fun facts. My favorite has to be about the central sulcus. Yeah, we're gonna get into the brain here. The central sulcus is a groove in your brain that goes all the way from the left to the right and kind of separates the front and the back of the brain.
And it is a part that can really show you if this person is right or left handed. The left side of the brain controls the right side of the body, the right, the left side. So usually if you take a look at that groove, at that central sulcus, and tell if a person is right or left handed.
If the groove is deeper on the left side, then they're right handed. If it's deeper on the right side, then they're left handed. And they did a study on pianists that found actually their central sulcus was pretty symmetrical. Maybe they're all ambidextrous. But this wasn't the case.
They actually identified as right or left handed. So if you're a pianist in here, any pianists? Yeah. So if you're a pianist here, you know that you spend most of your time strengthening your weak side to be as strong as your dominant side. And this research showed that all of that equalizing of your side
actually changed your central sulcus. Music actually changed your brain. And I thought that was really neat. This makes me feel better on a bad day. Learning to play an instrument is linked to a higher IQ.
The study was done on both children in elementary school age and college aged adults. And the results were more dramatic with children, but they were definitely still there with adults. So there is still time. Still time. Music education is associated with enhanced ability
to process speech and language. This is probably one of the more famous results of research done on music in the brain. This is why we have all of those products being sold to parents about music free, Mozart for your baby and things along that line. And that's because when you listen to or create music,
you are activating part of the brain that connects sound with meaning. The last cold, hard fun fact is about IBM. Back in 1956 when computer science was not a major yet, although it was soon to come after that, 1962 at Purdue.
But 1956, they didn't have computer science majors to go to to recruit for programmers. So a journalist found an ad that was actually aimed at music majors to recruit them to IBM so that they could train to become programmers.
So before I go into who am I, I want a little audience. Raise your hand if you are a musician. Do you play an instrument? Do you sing in a choir? Do you just jam with your buddies? Wow, everyone take a look around. That is amazing.
First off, let's start a RubyConf band. Right? Can we do that for next year? That's incredible. And also, not surprising to me anymore, the more that I talk to people about this subject, the more I find that there are so many musician coders.
And we've heard it in other talks. We've heard people talk about music and I thought that was so cool. So who the heck am I? Why am I here staying on a stage so passionate about this that I'm going to talk in front of you at the risk of embarrassing myself? Well, this is me. So this is me as a kid.
I had a little bit of a different background than a lot of other programmers and didn't play video games as a kid, didn't take apart computers and put them back together. I was running sequins and singing show tunes. Didn't really show a huge interest in computers at all.
And I of course was introduced to music in my public school. So I wanna stop here and give a huge shout out for a public school music education. You guys started that way? I did the violin and then I got to the flute.
Then I begged my parents for piano lessons. And I sang Memory from Cats in the sixth grade. On the show. Yeah, there's a video of it. It's amazing. And that's when my public school music teacher pulled my mom aside and said, hey, I think your daughter might love singing
and maybe could take voice lessons. I don't know where I would be without that music teacher. I have no idea where she is, but if I ever find her, I'm gonna give her the biggest hug because she put me on a path towards my first career that now is benefiting me in my second career.
Those voice lessons, I decided to pursue this professionally. I went to school. I went to Boston University for undergrad where I got my Bachelor of Music. Then moved to New York City where I got my Master of Music from Manhattan School of Music. And then I went out in the real world. And I was a professional musician
and that means I got to do a lot of really cool things. I got to stand on the stage and produce gorgeous music with amazingly talented peers. And it was amazing. And I got to sing for some pretty cool people and at some pretty cool places.
But it also meant a lot of sacrifice. And if there are other musicians here, you know what I'm talking about. And not just financially, although that was huge. I think my peak of jobs was like five jobs at once to try and make it financially. I can still barely hear it built. But that's also the sacrifice of your personal life,
traveling a lot for gigs by yourself, auditions, staying home so I can rest my voice. And as I grew older, and I was nearing the big 30, I realized my priorities were shifting and this was not the life that I wanted anymore. And so I made the hardest decision of my life
and decided to leave opera as a profession. So how did I get here? Opera singer and a sophomore engineer, when people hear me say that, a lot of them are like, what? I see all of those studies done and be like,
yeah, I'm gonna be a great coder. Not at all. I actually thought that if I was gonna be a successful software engineer, it was actually going to be in spite of my background, not because of it. But the big thing here was how wrong I found that I was.
So I started my coding life. I went to Flatiron School and I know there are a bunch of Flatiron alums here, which is pretty cool. Yeah! Then I got to work at a really hip Brooklyn branding agency called Red Antler, which was a lot of fun.
And then I left New York and went to San Francisco and started working at Mavenlink, where I still am. Let's start with the learning process. The first connection that I found between music and code. So for all of you who can read music, you probably already know what this song is.
It's a very simple song. But for those who don't read music, it might be a little overwhelming. What are all these notes, all these lungs and blocks and symbols? But think back to the first time that you ever saw Ruby, right? That was a little overwhelming. What was all those words and curly brackets
and, you know, at least it wasn't JavaScript, so there weren't semicolons ever were, but. But musicians learn the same way that coders do. We break it down now. Imagine you first start looking at Ruby.
It's your very first method. You learn the vocabulary, right? You learn what def means. You learn what puts means. And you learn the syntax. You learn what that pound sign or a hashtag, as the kids call it now, and those curly brackets are, and hey, wherever there's a def,
there has to be an end, right, all the time. And you start to get those building blocks to put together to learn. And that's what musicians do, right? First thing you have to do when starting to read music is learn about pitch. And you learn how to read the stuff and know that first space, that's an F, okay?
Then you go up in G, and we all know the musical alphabet doesn't go beyond that, so we gotta go back to A, and so on and so forth. You even get mnemonic devices to, you learn, face for the spaces, and every good boy does fine for the lions, or every good boy deserves fudge.
I don't know why there wasn't one about a girl. Like, can we have every girl's a badass? Definitely, for sure. And then you learn the pitches,
and you learn that, hey, this is an F major scale. F, G, E, B, C. Scales can be numerical. This is gonna come back later,
but we can sign F to one at the beginning of our scale. One, two, three, four, five, six, seven. I have no idea if I'm actually in the key of F. What? Wow, I just impressed myself. And then once you have pitched down,
you start learning about rhythm, or how long you're gonna hold that note. So this scale with rhythm becomes F, G, A, B. Know the pitch, and we can know the rhythms.
A, G, F, G, A, A, A. Down to its building blocks, right? We broke it down to its vocabulary and its syntax.
We can put lyrics to our songs now, and we can start learning more of the symbols that I think are just fun, because they totally relate to coding. Like, this is a rest. You're gonna stop singing and playing for a period of time. It's kind of like a set time out in JavaScript. I was trying to think of something in Ruby, and all I could think of is a sleep in selenium,
and then I was like, oh, selenium. But this is a repeat symbol, and that just means you go back to the beginning, do it again, keep on doing it, so what's that like? We can get into more complex things like harmony.
So we're gonna bring different components together and have them work together as a whole. And we do that in code too, right? We have multiple different components that work together as a whole. Think about your MVC architecture, right? How are your routes gonna work with your controllers, which work with your views, that work with your models?
We figure out how all these different components work together. And isn't this just a pattern? This is the simplest way I have to describe the biggest connection between music and code, patterns. And it's what led to my aha moment of,
oh my goodness, there is a connection here. I was sitting in lecture at Flatiron School, and I was doing amazing, guys. That sounds really good. So he was like, how do we build this? And I was like, you're gonna open that file, write that code there, you're gonna open that file, and write that code there. I was on fire.
And then he stopped me, and he was like, okay, so now that you've got all this, why? Why did we open all those files? How is this working? And I realized I didn't know the answer. And I asked myself, how in the world did I just regurgitate all of that without fully understanding why?
And I realized it was just because it was a pattern that I learned. And musicians are trained to recognize patterns, to replicate them, to memorize them. We're really good at patterns. So then I just slow myself down and figure out the whys. But ever since then, the patterns of the syntax
have been pretty easy for me, as I bet it has been for a lot of you. Isn't this just patterns? Where you put the depth, where you put the end, it's just patterns of how that vocabulary and that syntax works together.
That's on a small scale. This works on a bigger scale as well. How this all flows through is patterns. So let's look at a more complex way that musicians deal with patterns. This is an excerpt from this preno solo from Handel's Messiah. Y'all know it? Yeah, even if you think you don't know it,
you know it. You know the hallelujah chorus. It can seem overwhelming.
Handel can be pretty overwhelming. But all we do, just like a coder, you're gonna break it down. So let's take just two measures of this piece and figure out how a musician is going to find the patterns and break it down now.
So those are those two measures. And what a musician is gonna see is that this is actually just building a triad. It's outlining a triad. And remember when we put that scale to numbers? One, two, three, four, five, six, seven, eight.
The triad is the one, three, and five of that scale. One, three, five, three, one. And look, we just got fives and threes and ones here. Those are our more dominant notes here. Five, three, five, one, three, one. We do have a couple of passing tones. Five, three, four, five, one, three, two, one.
Just to add a little flavor. So look at that. That seems like a pattern. Especially when you notice the next beat, the next couple of beats are the same exact pattern and a note down. And look, so is the next couple of beats. So now that you've found that one pattern,
you have learned and memorized this whole section. And I'm sure a lot of you out there are like, well, one of those is minor and one of those is major, which I added. Yes, I know. Yes. I know, it's the perfect pitch guy over there who's like, yeah, that was minor.
We are dealing with information processing because those patterns are just, that's just one pattern of hundreds you're gonna have to learn to handle society, right? But we had to process a lot of information in code too. So this is the schema of an app I built
in Flatironschool, and at the time I thought it was so crazy complicated. And now that I work in a huge code base, this is lapably small, but at the time it's huge. You know, we had all of our different models working together, and you had to keep track
of all of those things in your head while coding this program, right? And you know that when you go in and you refactor one method, that method could be called in dozens of places. And when you work with one piece of code, you could be affecting dozens of places.
And by affecting, I mean breaking, right? So you have to keep a lot of information in your head at the same time. And what I really found was that musicians are really good at processing a lot of information simultaneously.
So here's an example of all that simultaneous processing of information happening in a score. This is an opera score that I used to prepare for a role. It was Mimi in La Boheme by Puccini, which you were listening to as you came in. And there's a lot going on here. You know, there's the pitches and the rhythms
that we learned when we first started learning music. There's also more musical notations. We have dynamics, we have tempo. Andante moto sostenuto, moderately slow and very sustained. You have those phrasing lines.
This is opera, so we have words and they happen to be in Italian. So yeah, you should speak Italian. We also have staging. Apparently at that point I was supposed to cross to a table and not knock it over,
which I never did. And you also have to have in your mind, your character, your emotion, your whole plot line and what is going on. You had to know your subtext. There's a moment in the Sariya where Mimi sings Vivo sola, solena, that just means I live alone.
But what it really means is, right? That's the moment where she's letting Rodolfo know that she's single. You have to understand those subtexts. There's a lot to keep track of.
When you're walking around the stage, don't fall off the end of the stage into the brass section. That's what you have. Musicians get very good at keeping track of. And that has to do with the corpus callosum. More brain parts, yay!
So the corpus callosum is the red part in this little brain picture. And it is the part of the brain that connects your left and right hemispheres. And a lot of people will think about creatives and think about musicians as only using the right part of their brain, right? They don't use the left logical part.
That's just the creative part. But that's so wrong. Musicians are simultaneously using almost every part of their brain, especially the visual, auditory, and motor cortices, which are across different parts of the brain. So that means that they have to send messages across the hemispheres constantly.
And what does this mean? They actually have a bigger corpus callosum, right? You can like brag about that next time. Never meet a man, you know how big my corpus callosum is? And so what does that mean? Physiologically, that means that messages
going in between hemispheres of your brain can travel faster and through more diverse routes in the brain of a musician. In real life, that actually means that you can process information better and faster. You can also problem solve more effectively
and creatively in both academic and social settings. Problem solving. That's definitely something we do as coders, right? It's helpful to be good at problem solving. And it's one of the most fun parts about being a coder because there is never
one way to solve a problem. And how we can get creative about things is deciding which way to go. If speed is your priority, you can go that way. Readability, you can go that way. If you want your code to be really dry, if you want your code to be super clever, you can go that way. Don't be clever in your code, I swear.
Musicians are more adept at finding all of those different possible ways and doing it faster. Next life skill. Persistence, right? When you are debugging that bug and you wanna throw your laptop out the window,
you don't, right? I hope you don't. You don't give up. And musicians have that character trait down. We will sit in the practice room for hours and hours going over the same measure of music until we get it just right.
We do not give up. We will solve that bug. And on a bigger scale, you don't give up in life either. When I first applied to flat iron school, I abducted. They did not think that an opera singer would like backhand coding. But it didn't even occur to me to give up.
That thought did not even enter my mind. I was like, okay, well I just have to show them I can do it. So I spent months teaching myself more, applied again, got in, did not give up. And that brings me to our next point about the growth mindset.
So this is a concept introduced by Carol Dweck of Professor of Psychology at Stanford. And it is the idea that people can have either a growth mindset or a fixed mindset. With a fixed mindset, you think your abilities are fixed. You're good at what you're good at, you're bad at what you're bad at.
And you have a tendency to give up and a tendency to stick with what you know. I highly doubt it that anyone in this room has a fixed mindset. It just doesn't work with working as a programmer. I think everyone in this room probably has a growth mindset. That means you think you always have the ability to grow and to learn.
You are a continuous learner and you love to learn. You love to be challenged. And you see failure as an opportunity to grow. And musicians are already built this way because we always have to learn and grow. We have to be able to go into an audition and then get feedback that our high degrees,
you really kind of need to change the sound on that. And you have to go back and say, okay, I'm gonna fix that. You can't give up and you can't think that I can't get better. And coders have to be the same way. Collaboration, right? Gone are the days, or almost gone are the days
where coders can just sit in a dark corner with their headphones on and never talk to anyone. Right? More and more it is expected that you are able to communicate and communicate effectively with many different types of people. You have to be able to talk to your PMs, your designers, your team lead,
your executives, other programmers. And musicians already have learned how to collaborate well. How is this done? Because you're constantly listening to your peers as a musician. When you're playing in an orchestra, you have to make sure that you're balanced with all of the other parts.
That you're paying attention to what everyone else is doing. We're in New Orleans right now, so I want y'all to go out and go see a jazz group play because that is the best example of listening in music that I can think of. You have to know as a jazz musician
when to take your solo, when to give it up, how to listen to the other jazz musicians' improvisation and support him or her. And you have to know when to lead and follow. And that just becomes a natural part of a musician's life. As an opera singer, I've had to know how to talk
from anyone from like a rich patron who our opera companies were sending us out to get more money from at these events. I also knew how to, I had to know how to talk to like a scruffy stage manager, right, who is just no nonsense. You have to be able to communicate with a lot of different types of people.
So why does this matter? Why did I think that this would be important enough to apply to RubyConf, to talk to y'all about? I don't want you to let untapped resources pass you by. If you get a resume across your desk
with a different background, I want you to see that as an asset, especially musicians. Because we all know that diverse backgrounds make a difference. I'm gonna come at a problem in a completely different way than someone with a more traditional CS background.
And that's a great thing because the problem that we're, the solution that we're gonna come together to make is gonna be way better than either of us could have done to get a part. And again, music education matters. I had to be up here telling my story
as a testimony for how important music education is, especially in this day and age when it's getting cut left and right. So I implore you to use your power, both with your voting and your wallet, to keep music education in our schools. I don't know where I would be today without it.
And lastly, don't be afraid to get out there yourself because music in your coding life could make you a better coder. And it's fun. Go out and do it. And if you've never picked up an instrument before
or sang before, give it a try. You might be better at it than you think. Thank you very much. Thank you.