programmers - jazz musicians - udacity

Great jazz music emerges from the crossroads where craft and spontaneity intersect. Jazz musicians spend year after year after year in intensive training. They have to learn chords, scales, theory, harmony; not to mention developing the physical dexterity to actually play their instruments.

But this is only half the endeavor. They must eventually bring all this experience and knowledge and skill to bear on that one single moment of truth when they must act as if they know nothing at all. They must give themselves over entirely to the in-the-moment necessities of pure improvisation; to think is to fail.

Here’s a wonderful quote that eloquently sums up this process of letting go:

“First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack.” —George Carrette, InfraSWAT Engineer, Wayfair

When it works, when one can successfully enact this exquisite and elusive balance of craft and spontaneity—that’s when the magic happens. Too much craft, and not enough spontaneity, and you get dull results. Too much spontaneity, and not enough craft, and you get sloppy results.

Jazz musicians have fleet minds. They must be able to swoop in and see a composition at the most minute of levels, then swoop out and immediately comprehend it as a whole. In a 64-bar solo, they must be able to see the relationships between notes in a single triad inside a flurry of 32nd notes. Then, in an instant, they must fly out to the highest heights, and understand immediately the implications for the composition as a whole. To place a single 64th note in a 32-bar pattern is to innately understand the eco-spiritual interdependence that exists between an ant and an elephant. Or, between a single line of code, and an entire software system.

“(Programming is) the only job I can think of where I get to be both an engineer and an artist. There’s an incredible, rigorous, technical element to it, which I like because you have to do very precise thinking. On the other hand, it has a wildly creative side where the boundaries of imagination are the only real limitation.” —Andy Hertzfeld, Computer Scientist, Inventor

Programmers and jazz musicians have very similar mindsets. They both understand systems. The both like to solve puzzles. They both understand the micro and the macro simultaneously. They both have to practice hard and long to get good at what they do. They have self-discipline, and otherworldly degrees of patience for repetition. They appreciate, and strive for, clarity of conception. They iterate incessantly in the pursuit of perfection. They think mathematically. They understand the relationships between individual effort and collaboration. They are logical.

Probably the single most striking similarity between programmers and jazz musicians? They make it look it easy.


Ready to get your programming jazz on? We’ve got a program for that. Learn more.