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

Becoming a Polyglot Programmer through the Eyes of a Freelance Musician - SoCal Code Camp 15 - LA

kickinbahk
November 15, 2015

Becoming a Polyglot Programmer through the Eyes of a Freelance Musician - SoCal Code Camp 15 - LA

Before coming to the software world, I was a freelance musician for over 10+ years I toured and played bass with bands and artists like Albert Lee, Ray Parker, Jr. of Ghostbusters fame, and even was featured on Entertainment Tonight. As a developer now, I look back on some of the concepts I learned to become a successfull musician and how they apply to learning software.

Truthfully they are not that different.

Let's dive into how the world of music has attempted to overcome a lot of the challenges around learning a new coding language, and see if we can draw some parallels together on how to:


Sound Authentic
Always Sheddin’
Know the Rules to Break Them
More Valuable Than Your Role

kickinbahk

November 15, 2015
Tweet

More Decks by kickinbahk

Other Decks in Technology

Transcript

  1. Becoming a Polyglot
    Programmer
    Through the Eyes of a Freelance Musician
    @kickinbahk
    Josiah Mory

    View Slide

  2. I Came From the
    World of Music

    View Slide

  3. Worked as a Sideman

    View Slide

  4. Playing Bass for
    Artists and Bands
    for 10 years

    View Slide

  5. View Slide

  6. Studied Music in
    College

    View Slide

  7. A place to be exposed
    to things I wouldn’t
    otherwise study

    View Slide

  8. View Slide

  9. Writing for choirs and
    orchestras

    View Slide

  10. Different than a
    Performance-based
    School

    View Slide

  11. - most the focus is
    how to better play
    your instrument

    View Slide

  12. kinda like the
    difference between a
    Boot Camp or
    studying Computer
    Science

    View Slide

  13. One is
    generally
    more practical

    View Slide

  14. The other more
    theoretical

    View Slide

  15. My college career had a
    lot of theory
    and I enjoyed it

    View Slide

  16. No….Not Music
    Theory

    View Slide

  17. Okay maybe
    that too

    View Slide

  18. a little bit…

    View Slide

  19. the theory of how
    music fits together

    View Slide

  20. Can be Many Aspects

    View Slide

  21. • Rhythms
    • Notes
    • Orchestra
    • Band

    View Slide

  22. My Favorite Focus:
    Band

    View Slide

  23. interaction between
    the Bass and Drums

    View Slide

  24. View Slide

  25. known as
    GROOVE

    View Slide

  26. Theory of Groove

    View Slide

  27. Every Musician
    strives for Groove

    View Slide

  28. The listener may not
    know what it is

    View Slide

  29. They typically know when it
    ISN’T

    View Slide

  30. Different Genres Define it in
    Other Ways
    Swing
    Clave Bubble
    Funky

    View Slide

  31. All Reference different
    Types of Groove

    View Slide

  32. “If you gotta ask you'll never know”
    - Louie Armstrong

    View Slide

  33. To Understand the Groove
    You have to Listen

    View Slide

  34. Immerse into the
    Thinking

    View Slide

  35. the Feeling

    View Slide

  36. “Experts in a particular field can
    often instantly know that something
    is right, but they can’t explain why.”
    - Malcolm Gladwell, Blink: The Power
    of Thinking Without Thinking

    View Slide

  37. Immersion
    allows reaction

    View Slide

  38. Know what others are
    doing

    View Slide

  39. Informs how my part Interacts
    with the rest of the band

    View Slide

  40. just Like I immersed
    myself in a Style

    View Slide

  41. by Listening to
    Records

    View Slide

  42. Talking with
    other Musicians

    View Slide

  43. Going to Live shows

    View Slide

  44. I immerse Myself
    in a programming
    Language by:

    View Slide

  45. • Podcasts
    • Meetups
    • Conferences/code Camps

    View Slide

  46. great ways to
    learn

    View Slide

  47. While Those are
    Important

    View Slide

  48. YOU

    View Slide

  49. HAVE

    View Slide

  50. TO

    View Slide

  51. PRACTICE

    View Slide

  52. I wasn’t Born
    writing Ruby

    View Slide

  53. Just Like I wasn’t
    Born Playing a Samba

    View Slide

  54. They are Skills I had
    to Gain

    View Slide

  55. View Slide

  56. Practice is solving some
    small known problem

    View Slide

  57. Never on the
    Gig

    View Slide

  58. Practicing in music
    happens at different Speeds

    View Slide

  59. start Slow and get
    Faster
    (Developing finger Dexterity and Reaction)

    View Slide

  60. start Fast and go
    Slower
    (Checking for good Technique)

    View Slide

  61. What does this look
    like in coding?

    View Slide

  62. Solve simple, known
    problems

    View Slide

  63. to find New and
    Unique solutions

    View Slide

  64. My Favorite Practice Tool:
    Exercism.io

    View Slide

  65. Different ways to solve
    the Same Problem

    View Slide

  66. It Always comes
    Back to the time I
    give

    View Slide

  67. More Valuable than
    my Role

    View Slide

  68. Understanding
    the Goal of the Drummer

    View Slide

  69. How can I
    compliment the rhythm?

    View Slide

  70. Play with the Kick
    Drum

    View Slide

  71. Play off the Kick Drum

    View Slide

  72. I thought beyond
    my Role

    View Slide

  73. To how the music was
    Best served

    View Slide

  74. Know the Rules…
    then
    Break them

    View Slide

  75. Start Idiomatic

    View Slide

  76. View Slide

  77. I enjoyed this
    Process

    View Slide

  78. taking Idioms from
    other Genres

    View Slide

  79. Taking Idioms from
    other instruments

    View Slide

  80. While they seemed
    unique and
    creative

    View Slide

  81. Using Common
    Solutions for One
    Language

    View Slide

  82. Solving problem
    Uniquely in a Different
    Language

    View Slide

  83. Creativity starts in
    knowing the typical
    Solution

    View Slide

  84. then Solving a
    different way

    View Slide

  85. Polyglot - using or
    knowing multiple
    languages

    View Slide

  86. Knowledge of Other
    Languages Allows Me to
    Approach Problems
    Differently

    View Slide

  87. Allows me to be
    involved in the
    conversation

    View Slide

  88. and How my part
    can compliment
    the others

    View Slide

  89. Allows for
    communication

    View Slide

  90. Rather than a war over
    how to achieve a goal

    View Slide

  91. More and More
    Projects are Polyglot

    View Slide

  92. The better I
    Understand how my
    part fits

    View Slide

  93. The better job I can
    do to serve the
    project

    View Slide

  94. where a
    Particular
    Functionality is
    Handled

    View Slide

  95. • Front-End
    • Back-end
    • Micro-Service

    View Slide

  96. OR
    “What have I learned
    from ‘insert Language’
    that I can apply Here?”

    View Slide

  97. Sometimes there
    was an opportunity
    to learn on the Job

    View Slide

  98. More often, I had to
    put in the time to learn
    it on my own first

    View Slide

  99. Before I was ready
    to use it on the gig

    View Slide

  100. Advantage:

    View Slide

  101. Learning on your own
    allows you to find
    languages which speak
    to you

    View Slide

  102. As with any time you fall in love,
    it’s difficult to explain why.
    It (Ruby) just worked the way I work,
    and it had enough depth to keep me
    interested.
    Fast forward 15 years. All that time I’d been
    looking for something new that gave me the
    same feeling.
    - Dave Thomas (on Elixir)

    View Slide

  103. I think that people should use
    whatever gets them excited.
    Pick something, anything, and just try
    it. If you don’t like it, try something
    else. Humans are all different, and
    there’s no single answer here.
    - Steve Klabnik (on learning languages)

    View Slide

  104. The Languages we
    use are just tools

    View Slide

  105. Not Religion

    View Slide

  106. Or the way to
    Enlightenment

    View Slide

  107. It’s not the tools that you have
    faith in - tools are just tools.
    They work or don’t work.
    -Steve Jobs

    View Slide

  108. Ruby Jobs may not
    be Popular Forever

    View Slide

  109. Am I the lucky one
    that works on a RoR
    project for 20 yrs?

    View Slide

  110. Is that so lucky?

    View Slide

  111. I never wanted
    to be part of a
    Cover Band

    View Slide

  112. I wanted to make
    New and
    Interesting music

    View Slide

  113. Just as it has changed
    before, the world
    will keep changing

    View Slide

  114. At The End of the Day…

    View Slide

  115. The value of a
    performance is
    judged on the way
    People feel

    View Slide

  116. Our software is
    judged on the way
    People feel

    View Slide

  117. The fact that I
    understand ‘groove’ did
    not matter to an audience

    View Slide

  118. they just want to
    Dance

    View Slide

  119. or experience
    some emotion

    View Slide

  120. The people I work
    with did appreciate it

    View Slide

  121. Software should move
    people in the same way

    View Slide

  122. They don’t care that I use
    Ruby, C#, Rust, Elixir,
    Go, C++, Javascript…

    View Slide

  123. Okay they may care
    about javascript

    View Slide

  124. But my knowledge of
    Theory

    View Slide

  125. Allows me to approach
    a problem in better
    ways

    View Slide

  126. In more Creative
    Ways

    View Slide

  127. Exploring Other
    Languages
    Recap:

    View Slide

  128. More Valuable than
    my Role
    Find Creative
    Solutions (Break Rules)

    View Slide

  129. Communicate with
    those I Work
    Opens up
    Opportunities

    View Slide

  130. provide a better
    experience for users and
    those I work with

    View Slide

  131. Thank You!
    Hire me :)
    kickinbahk.com @kickinbahk

    View Slide

  132. Thanks to:
    Saron
    Yitbarek
    Judd
    Lillestrand

    View Slide