Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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.

Catherine Meyers

November 17, 2017
Tweet

More Decks by Catherine Meyers

Other Decks in Technology

Transcript

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

    View Slide

  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?

    View Slide

  3. Catherine Meyers
    @ccmeyers324
    mavenlink.com/engineering
    Opera Singer / Software Engineer
    slides: bit.ly/music-code-ruby

    View Slide

  4. Studies on Musical Training and the Brain
    @ccmeyers324

    View Slide

  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

    View Slide

  6. Who the Heck am I??
    @ccmeyers324

    View Slide

  7. @ccmeyers324

    View Slide

  8. @ccmeyers324

    View Slide

  9. @ccmeyers324

    View Slide

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

    View Slide

  11. @ccmeyers324

    View Slide

  12. @ccmeyers324

    View Slide

  13. Break it down now!
    @ccmeyers324

    View Slide

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

    View Slide

  15. @ccmeyers324

    View Slide

  16. @ccmeyers324

    View Slide

  17. @ccmeyers324

    View Slide

  18. @ccmeyers324

    View Slide

  19. @ccmeyers324

    View Slide

  20. @ccmeyers324

    View Slide

  21. @ccmeyers324

    View Slide

  22. @ccmeyers324

    View Slide

  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
    <%= @list.title %>
    <% if @list.tasks %>
    <%= render @list.tasks %>
    <% end %>
    Add a task:
    <%= render "tasks/form" %>
    @ccmeyers324

    View Slide

  24. PATTERNS
    @ccmeyers324

    View Slide

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

    View Slide

  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
    <%= @list.title %>
    <% if @list.tasks %>
    <%= render @list.tasks %>
    <% end %>
    Add a task:
    <%= render "tasks/form" %>
    @ccmeyers324

    View Slide

  27. @ccmeyers324

    View Slide

  28. Break it down now!
    @ccmeyers324

    View Slide

  29. @ccmeyers324

    View Slide

  30. @ccmeyers324

    View Slide

  31. @ccmeyers324

    View Slide

  32. @ccmeyers324

    View Slide

  33. @ccmeyers324

    View Slide

  34. Information Processing
    @ccmeyers324

    View Slide

  35. View Slide

  36. View Slide

  37. View Slide

  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

    View Slide

  39. A B
    Problem Solving
    @ccmeyers324

    View Slide

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

    View Slide

  41. concept introduced by Carol Dweck
    @ccmeyers324

    View Slide

  42. Collaboration
    @ccmeyers324
    Photo courtesy of #WOCinTech Chat

    View Slide

  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

    View Slide

  44. Thank You!
    @ccmeyers324
    [email protected]
    mavenlink.com/engineering
    slides: bit.ly/music-code-ruby

    View Slide