This Tuesday at lunchtime, Brian Kung spoke at the Groupon Chicago office on W Chicago Avenue to talk about how his dance practice has contributed to his programming. The talk ended up focusing on, in my view, two groups of ideas:
- similarities between the dance community and the programming community
- the elements of character that contribute to becoming a good dancer/programmer
I’ll discuss the concepts introduced in the talk within each of these categories.
First, the similarities between the dance community and the programming community:
1. The Power of the Internet
Dance, and specifically the hip-hop scene from which Brian hails, exploded internationally with the advent of Youtube. Dancers could watch other dancers an ocean away and emulate their moves: dance is inherently open source. Likewise, the Ruby community relies on an open source language and lots of open source libraries: we learn how to improve our code by reading the code of others, and some of the most widely used projects in programming are open source and available for all of us to see.
2. User Groups
While the dance community enjoys widespread participation in many niche disciplines like Tektonik or Jumpstyle, the programming community coalesces in user groups surrounding Ruby, Erlang, Java, and other technologies.
3. Heroes and Young Geniuses
In both communities, a few skilled and talented figures command the respect of many of the rest: in programming it might be Donald Knuth, Rob Pike, Joel Spolsky, Adrian Holovaty, or DHH. Both communities also possess highly talented and admirable members under 15 years of age. The presence of these heroes and young geniuses gives us reason to adapt the first element of character that I’ll discuss from Brian’s talk.
And so, the elements of character that contribute to mastery, in both dance and programming:
1. Humility
Particularly in Western society, this is a characteristic we see far too little of (my words, not Brian’s, don’t get mad at him.) Nevertheless, and contrary to what we may have been taught, humility can maximize the benefits we get from participation in either the dance or the programming community. It keeps us more open to learning new things, and also less insufferable to others who might help us.
But there’s a corollary question that comes with this: how do we go about being humble without selling ourselves short? We want to know our worth, and we want others to know what we’re worth. I talked briefly to Brian about this after his presentation.
“It’s true,” he agreed. He noted that it’s a question with economic as well as personal repercussions. “For a programmer or for…any artist, really, frequently someone will say to them ‘I have a project you can work on, and, as a favor to you, I’ll let you add it to your portfolio,” but won’t offer compensation.
Programmers, in general, eye such opportunities with extreme skepticism. For the dance community, this can be harder to do because the supply to demand ratio is different. If you ever find yourself deciding how to address a situation like this, Brian offers a video recommendation that you might find useful: “F*ck You, Pay Me,” a presentation by Mike Monteiro. Language NSFW, but based on the title, that shouldn’t surprise you.
Okay, other elements of character that that contribute to dance or programming mastery:
2. Acknowledgement (but not fear!) of breadth
There are a lot of technologies out there, guys. There are also a whole lot of dance styles. Such are the consequences of having 7 billion people on this Earth: lots of creators, lots of creations. And you’ll never learn them all.
…and that is okay. It means you have a lot of paths you can take to improve your skills. Wherever you are, you can find your flavor. And when you find yourself needing to know one of the many sub-pockets of knowledge that you don’t know yet, you’ll make use of our next characteristic…
3. Autodidactism
Thanks to the internet, you can teach yourself to do things now. And, in both dance and programming, autodidactism is the norm. The open source nature of both communities can serve as a teacher, and everyone ends up turning to it.
4. Optimism about personal progress
Dancers enjoy watching themselves dance about as much as programmers like looking at their old code…not much. Why? Because it’s embarrassing, right? Because no one wants to see what they danced like, or what they coded like, once upon a time.
Brian points out the other side of the coin, though. If we don’t like the way we did things once upon a time, then that is a testament to how much better we have gotten since we did that thing. And that attitude can give us the stamina we need to keep going. And we’ll need it…
4. Persistence and Passion
…because Ira Glass was right:
It’s a long road to the master that we seek. And the passion piece is about enjoying the journey…or we’ll become frustrated at the vast distance to our destination.
Programming as an art: who is it for? And what kind of art?
Brian finished up his talk with this thought: what kind of art are we making? As a programmer or as a dancer, this question hinges on who will be taking in the art. The affluent watch certain styles of dance more than others. Likewise, different types of programming projects demand different technologies. And whether your audience views it as art at all can depend on whether it is their type of art.
Which brings up two important points:
- Just because somebody doesn’t like what you made does not make it “not art.” It’s just not their art. Don’t be discouraged by these people.
- In both the dance community and the programming community, there’s a while lot of internal bashing.
When I spoke to Brian after his presentation, he offered a poignant example: “I once had a ballet dancer say to me ‘Hip hop? That’s not dance.” Does that sound mean to you? Does that sound prejudiced? It is, but it’s no different in kind from the battles that rage online about Ruby vs. Python and VIM vs. Sublime and Java vs…um, everything, at different points. In fact, I once met a Java developer in D.C. whose statement perfectly matched that of Brian’s ballet dancer acquaintance: “Ruby? That’s not a real programming language.” I was looking for a tutor at the time. That gentleman was not hired.
In both the dance and the programming communities, this insidious behavior gets us nowhere. It’s also, in my humble opinion, the adult version of spitting out your peas before you even taste them. Who are you to say that something is better than something else that you haven’t even tried? It is my advice to resist these prejudices: which will be hard, because you will hear them from others all the time.
Brian offers a more diplomatic statement on the issue: “I am polyglot. I love all kinds of dance styles, and I love all kinds of languages. It works great for me.”
One last thing:
Brian and I discussed another interesting thing after the talk: diversity in the dance community and the programming community.
“Among dancers, the majority are people of color, and it’s a pretty even split between men and women,” he explained. The programming community could learn a lot from that. Look at the list above of heroes in the programming community: white men. We still think 20% women on a dev team is a high percentage. So why the difference?
“Well,” Brian offers, “it could be the low barrier to entry for the dance community.” We also discussed the lack of a language barrier in dance: Person B can copy person A’s moves without having to share a spoken language. But can we bring that kind of diversity to programming? And if so, how?
I welcome your thoughts in the comments.