Mozart Could've Been an Engineer - Music + Code

Mozart Could've Been an Engineer - Music + Code

Would you hire an opera singer to build your website? A pianist to build your mobile app? After this talk, you might not think it’s a crazy idea.
As I transitioned from professional opera singer to web developer, I was blown away by the many parallels between music and code. During this talk, you’ll learn about those parallels by examining the similarities in syntax, structure, and learning process. As real-world examples, we’ll compare “Mary Had a Little Lamb” to a “Hello, World” app, and we’ll see how Bach might have coded a Rails Todo app.
Along the way, we’ll see how musical training strengthens pattern recognition, problem solving and collaboration, helping us become better software engineers.
Warning: parts of this talk may be sung. Yes, you may bring your own instruments.

00f8583b9fb202e50a11c61f2cde28bb?s=128

Catherine Meyers

November 17, 2017
Tweet

Transcript

  1. Mozart Could’ve Been an Engineer Music + Code

  2. • Parallels between music and code • Musician’s brain ==

    Coder’s brain • How we learn • How we build • How we problem solve • How we succeed What’s Happening Here?
  3. Catherine Meyers @ccmeyers324 mavenlink.com/engineering Opera Singer / Software Engineer slides:

    bit.ly/music-code-ruby
  4. Studies on Musical Training and the Brain @ccmeyers324

  5. Cold, Hard #funfacts! 1. Watson, Alan H D. “What studying

    musicians tell us about motor control of the hand.“ School of Biosciences, Cardiff University. http:// www.musicandhealth.co.uk/articles/WatsonReview06.pdf 2. Schellenberg, E. Glenn. “Long-Term Positive Associations Between Music Lessons and IQ.” Journal of Educational Psychology. http:// www.erin.utoronto.ca/~w3psygs/JEdPsych2006.pdf 3. Habibi, Assai et.al. “Neural correlates of accelerated auditory processing in children engaged in music training”. Developmental Cognitive Neuroscience. http://www.sciencedirect.com/science/article/pii/S1878929315301122 4. Luke-Ebbeler, Merrilee. “Why are so many software developers also musicians?”. https://teamgaslight.com/blog/why-are-so-many-software-developers- also-musicians • Pianists have a more symmetrical central sulcus, the part of the brain that gives evidence of right/left handedness • Learning to play an instrument is linked to a higher IQ • Music education is associated with enhanced ability to process speech and language • IBM used to recruit music majors to hire as programmers @ccmeyers324
  6. Who the Heck am I?? @ccmeyers324

  7. @ccmeyers324

  8. @ccmeyers324

  9. @ccmeyers324

  10. Opera Singer => Software Engineer??? WAT??? @ccmeyers324

  11. @ccmeyers324

  12. @ccmeyers324

  13. Break it down now! @ccmeyers324

  14. def statement_of_fact(language) puts “#{language} is the coolest!” end statement_of_fact(“Ruby”) @ccmeyers324

  15. @ccmeyers324

  16. @ccmeyers324

  17. @ccmeyers324

  18. @ccmeyers324

  19. @ccmeyers324

  20. @ccmeyers324

  21. @ccmeyers324

  22. @ccmeyers324

  23. # config/routes.rb Rails.application.routes.draw do resources :lists do resources :tasks end

    root 'lists#index' end # app/controllers/lists_controller.rb class ListsController < ApplicationController def index @lists = List.all end ... end # app/controllers/tasks_controller.rb class TasksController < ApplicationController def create @list = List.find(params[:list_id]) @task = @list.tasks.create(task_params) redirect_to list_path(@list) end ... end # app/models/list.rb class List < ApplicationRecord has_many :tasks, dependent: :destroy validates :title, presence: true end # app/models/task.rb class Task < ApplicationRecord belongs_to :list validates :title, presence: true end # app/views/lists/show.html.erb <h2><%= @list.title %></h2> <% if @list.tasks %> <%= render @list.tasks %> <% end %> <h3>Add a task:</h3> <%= render "tasks/form" %> @ccmeyers324
  24. PATTERNS @ccmeyers324

  25. def statement_of_fact(language) puts “#{language} is the coolest!” end statement_of_fact(“Ruby”) @ccmeyers324

  26. # config/routes.rb Rails.application.routes.draw do resources :lists do resources :tasks end

    root 'lists#index' end # app/controllers/lists_controller.rb class ListsController < ApplicationController def index @lists = List.all end ... end # app/controllers/tasks_controller.rb class TasksController < ApplicationController def create @list = List.find(params[:list_id]) @task = @list.tasks.create(task_params) redirect_to list_path(@list) end ... end # app/models/list.rb class List < ApplicationRecord has_many :tasks, dependent: :destroy validates :title, presence: true end # app/models/task.rb class Task < ApplicationRecord belongs_to :list validates :title, presence: true end # app/views/lists/show.html.erb <h2><%= @list.title %></h2> <% if @list.tasks %> <%= render @list.tasks %> <% end %> <h3>Add a task:</h3> <%= render "tasks/form" %> @ccmeyers324
  27. @ccmeyers324

  28. Break it down now! @ccmeyers324

  29. @ccmeyers324

  30. @ccmeyers324

  31. @ccmeyers324

  32. @ccmeyers324

  33. @ccmeyers324

  34. Information Processing @ccmeyers324

  35. None
  36. None
  37. None
  38. Music Education and the Corpus Callosum image source: http://ohiofetalmedicine.org/ source:

    Collins, Anita. “How playing an instrument benefits your brain.” http://ed.ted.com/ lessons/how-playing-an-instrument-benefits-your-brain-anita-collins @ccmeyers324
  39. A B Problem Solving @ccmeyers324

  40. Never, never, never give up. Winston Churchill @ccmeyers324

  41. concept introduced by Carol Dweck @ccmeyers324

  42. Collaboration @ccmeyers324 Photo courtesy of #WOCinTech Chat

  43. Why Does this Matter? • Don’t let untapped resources pass

    you by • Diverse backgrounds make a difference • Music education matters • Don’t be afraid to get into (or back into) music @ccmeyers324
  44. Thank You! @ccmeyers324 cmeyers@mavenlink.com mavenlink.com/engineering slides: bit.ly/music-code-ruby