
Programmers and Musicians - jacobobryant
https://jacobobryant.com/post/2019/practice/
======
sthatipamala
This is going to sound pretentious, but programming is closer to composing
than performing.

Source code does not store any performance metadata, just the static score. In
that sense, it’s more important to get a feel for theory and aesthetics of
programming.

~~~
mgamache
Software architecture is composing absolutely. But, the tactics of coding are
applying skills like being able to execute a solo or musical technique. The
difference is that playing music well requires the player to 'forget' the
technique and just play (relying on muscle memory).

~~~
Benjammer
I could argue that software developers probably leave some amount of untapped
potential on the floor by not at least sometimes attempting to "forget
technique," and instead dive into deep flow and get really ambitious about
high level results, without engaging in explicit "technique," at each step.

Think about trying to spin up a purely mental model of an entire distributed
system in your head, and then attempting to make deep, cross-functional
inferences as a result of seeing the forest, and then solidifying those
inferences into concrete, but super ambitious goals, instead of "incremental"
goals, as everyone seems so fond of talking about nowadays. "Incremental"
progress doesn't often produce paradigm shifts in the overall "game", and it's
not the only way to approach problem solving.

I think this is mostly due to cost and risk, but I worry that this is an
engineering "muscle" to be trained that we allow to wither away through lack
of use.

------
dotdi
As a musician myself, this post resonates with me.

The place I'm currently working for is the first employer that, at least
somewhat, encourages experimentation and practice. And even here, it's not
really company culture, it's just a manager that "gets it" i.e. allows 20% for
"other projects". You can tell that the employees that are looking forward to
that 20% are the ones coming up with novel and interesting ideas for the work-
related projects and are generally performing better.

------
swiley
When I first learned to compose/improvise I thought it felt exactly like
programming.

There's a John Locke quote at the beginning of SICP that describes both very
well IMO.

~~~
pjmorris
Locke quote, for those interested:

"The acts of the mind, wherein it exerts its power over simple ideas, are
chiefly these three: 1. Combining several simple ideas into one compound one,
and thus all complex ideas are made. 2. The second is bringing two ideas,
whether simple or complex, together, and setting them by one another so as to
take a view of them at once, without uniting them into one, by which it gets
all its ideas of relations. 3. The third is separating them from all other
ideas that accompany them in their real existence: this is called abstraction,
and thus all its general ideas are made.

John Locke, An Essay Concerning Human Understanding (1690)"

[0] [https://mitpress.mit.edu/sites/default/files/sicp/full-
text/...](https://mitpress.mit.edu/sites/default/files/sicp/full-
text/book/book-Z-H-9.html#%_chap_1)

------
royosherove
I see a lot of similarities between writing code and making music. I wrote
about it here:
[https://osherove.com/blog?tag=codemusic](https://osherove.com/blog?tag=codemusic)

------
analog31
One thing about both programming and music is that they both offer
alternatives to the mainstream academic learning environment. Learning either
of them can be self paced, and there are options for doing it through
teachers, the Internet, in groups, or just alone with a guitar and a record
player.

And it's fairly easy to assess your own progress, at least up to a point, and
take your rewards as they come. You can also begin doing these "for real"
whenever you want.

So it doesn't shock me if a person who seeks out programming for some of those
reasons, also seeks out music.

------
aniketpant
I feel this is much more applicable to SRE and Ops Engineers where performing,
rehearsing and practicing is much more applicable.

Where I work, SRE work on their own tooling that is synonymous to releasing.
They rehearse in the form of conducting weekly drills like failovers. The rest
is similar to what is written in OP.

~~~
jacobobryant
For releasing, I wasn't thinking so much about the actual act of deploying the
code. I meant getting code to a state where it's ready to be shipped and used
by customers. It's important to break yourself out of the perfectionist
tendency to just keep improving code and never releasing it.

------
Dowwie
Product development is a very creative process. I share many of the challenges
that artists of all kinds experience, from novelists to musicians or painters.
There are highs and lows, doubts and fears. I am never satisfied with my work
yet move on because I must.

------
skybrian
This analogy might make a little more sense if musicians never performed live
and your audience didn't care if you cut and paste everything together from
large libraries of sound samples.

------
RickJWagner
I'm a programmer, and I also play the banjo!

(Does that count?)

Edit: Because banjos, like Rodney Dangerfield, get no respect.....

------
CzarnyZiutek
when you listen to music you feel

when you read the code you think

programmers are not composers; they are scribes.

~~~
cyberferret
No idea why you were downvoted. I have been a programmer and a musician for
over 35 years, and I totally agree with your summary above. I use music as a
recovery tool from programming because it prevents mental burnout for me. Both
activities 'exercise' a different part of my brain to keep me balanced.

~~~
analog31
That's my case too, though I'm not sure that I distinguish between feeling and
thinking. But playing music is how I recharge my mental batteries. Not only
does it exercise a different set of thought processes, but it also demands
enough of my attention that I have to _stop_ thinking about work. And it also
gets me out of the typical techie social milieu and into a wholly different
cast of characters.

------
jsat
"Practicing: Working on your own projects"

Yeah that's a load of crap. I have my own set of personal projects, but I know
plenty of great programmers who don't. This is pretentious.

On a semi-related note, my blog uses computer science to analyze and generate
music: [http://jsat.io](http://jsat.io)

