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

Becoming a Polyglot Programmer Through the Eyes of a Freelance Musician

November 06, 2015

Becoming a Polyglot Programmer Through the Eyes of a Freelance Musician

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 successful musician and how they apply to learning software. Truthfully, they are not that different.

Lets 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.


November 06, 2015

More Decks by kickinbahk

Other Decks in Technology


  1. Becoming a Polyglot Programmer Through the Eyes of a Freelance

    Musician @kickinbahk Josiah Mory
  2. I Came From the World of Music

  3. Worked as a Sideman

  4. Playing Bass for Artists and Bands for 10 years

  5. None
  6. Studied Music in College

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

  8. None
  9. Writing for choirs and orchestras

  10. Different than a Performance-based School

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

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

    Computer Science
  13. One is generally more practical

  14. The other more theoretical

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

    enjoyed it
  16. No….Not Music Theory

  17. Okay maybe that too

  18. a little bit…

  19. the theory of how music fits together

  20. Can be Many Aspects

  21. • Rhythms • Notes • Orchestra • Band

  22. My Favorite Focus: Band

  23. interaction between the Bass and Drums

  24. None
  25. known as GROOVE

  26. Theory of Groove

  27. Every Musician strives for Groove

  28. The listener may not know what it is

  29. They typically know when it ISN’T

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

  31. All Reference different Types of Groove

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

  33. To Understand the Groove You have to Listen

  34. Immerse into the Thinking

  35. the Feeling

  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
  37. Immersion allows reaction

  38. Know what others are doing

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

  40. just Like I immersed myself in a Style

  41. by Listening to Records

  42. Talking with other Musicians

  43. Going to Live shows

  44. I immerse Myself in a programming Language by:

  45. • Podcasts • Meetups • Conferences/code Camps

  46. great ways to learn

  47. While Those are Important

  48. YOU

  49. HAVE

  50. TO


  52. I wasn’t Born writing Ruby

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

  54. They are Skills I had to Gain

  55. None
  56. Practice is solving some small known problem

  57. Never on the Gig

  58. Practicing in music happens at different Speeds

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

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

  61. What does this look like in coding?

  62. Solve simple, known problems

  63. to find New and Unique solutions

  64. My Favorite Practice Tool: Exercism.io

  65. Different ways to solve the Same Problem

  66. It Always comes Back to the time I give

  67. More Valuable than my Role

  68. Understanding the Goal of the Drummer

  69. How can I complement the rhythm?

  70. Play with the Kick Drum

  71. Play off the Kick Drum

  72. I thought beyond my Role

  73. To how the music was Best served

  74. Know the Rules… then Break them

  75. Start Idiomatic

  76. None
  77. I enjoyed this Process

  78. taking Idioms from other Genres

  79. Taking Idioms from other instruments

  80. While they seemed unique and creative

  81. Using Common Solutions for One Language

  82. Solving problem Uniquely in a Different Language

  83. Creativity starts in knowing the typical Solution

  84. then Solving a different way

  85. Polyglot - using or knowing multiple languages

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

  87. Allows me to be involved in the conversation

  88. and How my part can complement the others

  89. Allows for communication

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

  91. More and More Projects are Polyglot

  92. The better I Understand how my part fits

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

  94. Could Be Simply Where Logic is Handled

  95. • Front-End • Back-end • Component

  96. OR What have I learned from “insert Language” that I

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

  98. More often, I had to put in the time to

    learn it on my own first
  99. Before I was ready to use it on the gig

  100. Advantage:

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

    speak to you
  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)
  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)
  104. The Languages we use are just tools

  105. Not Religion

  106. Or the way to Enlightenment

  107. It’s not the tools that you have faith in -

    tools are just tools. They work or don’t work. -Steve Jobs
  108. Ruby Jobs may not be Popular Forever

  109. Am I the lucky one that works on a RoR

    project for 20 yrs?
  110. Is that so lucky?

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

  112. I wanted to make New and Interesting music

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

  114. At The End of the Day…

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

    People feel
  116. Our software is judged on the way People feel

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

    an audience
  118. they just want to Dance

  119. or experience some emotion

  120. The people I work with did appreciate it

  121. Software should move people in the same way

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

    Go, C++, Javascript…
  123. Okay they may care about javascript

  124. But my knowledge of Theory

  125. Allows me to approach a problem in better ways

  126. In more Creative Ways

  127. Exploring Other Languages Recap:

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

  129. Communicate with those I Work Opens up Opportunities

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

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

  132. Thanks to: Saron Yitbarek Judd Lillestrand

  133. They typically know when it ISN’T

  134. To Understand the Groove You have to Listen

  135. then Solving a different way

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

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

  138. provide a better experience for users and those I work