I think that this Franklin method is basically how I learned. Jazz solos are not generally random; they are based on particular chords and/or scales/modes. The best improvisers tend to be good composers in general, and improvising is composing real-time. Get a good handle on what chord/mode to center you're composing around, and construct a jazz solo likewise.
not generally? "not random", surely. And even if humans try to play randomly they couldn't.
>based on particular chords
Whether the notes used in a section are from the set of all 12, or a particular subset, is nearly, dare I say, orthogonal to the level of randomness. And even playing not based on particular chords can be highly random-sounding or not at all.
I didn't understand your last sentence at all; at least, what do you mean, likewise? Or the first half really.
You could play any note on any chord, and it might be what you intended. Let's say the chord is C major. You could play a C, for the root. Or G, for the 5th. Or Db, for a flat 9. Or F#, for a sharp 11. Indeed, any of the 12 notes would be fair game, and you could name what they are from a music theory standpoint.
Trying to bring this back around to the Franklin method of learning: what one might do here is listen to a jazz solo, and first transcribe (or obtain a copy of) the chord progression. Instead of trying to copy the solo itself, you can hear that the soloist often played motifs emphasizing the dominant 9th and 11th over minor chords, and the major 7th and major 6th over major chords. You could then make up your own solo with the same emphasis. It would not be the exact same solo, but it would (or could) have a similar sonic color to it.
Compression : finding patterns :: forest : trees.
No, true "artistry" in code I find comes less from style in code and more from architecture. Like, when you first learn about the unix pipeline, and realize how all these tiny programs are composable, and it blows your fucking mind? Or when you're faced with a huge codebase, framework or engine, and you start to explore how it works, and you realize how smartly designed everything is, and how easy it is to do stuff in it? (it doesn't happen often, but when it does, it's wonderful)
That's what great programmers do.
Also, in pg's essay Great Hackers he says that no-one knows who the best programmers are; you have to work with them to know just how good they are.
I often find folks who prefer langs like C, or at least have a lot of experience with it, are better at that than Ruby/JS/Python folks who haven't used much else.
So, extrapolating it further despite my lack of personal experience – perhaps, Linus?
Also, I find it strange, this talking as if programming and music don't exist in the world outside a setting of just having to do what the leader wants. I guess particularly because I've been programming and playing music all my life, almost all of the time doing exactly what I wanted every second. (Only music professionally)
Although... when I was about 20 I went to see a fellow musician in their day job, programming in a company, finance/accounting-type stuff. It seemed so totally depressing I decided I never wanted to do programming professionally.
I guess there is the average, rank-and-file performer in the arts, like a 3rd violin in an orchestra, or player in a musical show, singer in a choir, (or my friend) where individuality is not required, just professionalism. That's like craft[0]. And then the music-as-art thing, like classical soloists, jazz groups, singers where the important thing is to sound like yourself (and to sound good!)
[0] I'm thinking craft in the sense Collingwood uses it in Principles of Art - craft (as opposed to art) is when you know beforehand exactly what final result you're aiming for and what steps to follow to get there.
It's been said about many things that they can't be taught, only learnt. (e.g. Botvinnik—founder of the "Russian school of chess"—said it about chess, I say it about jazz, Oakeshott's Rationality in Politics is about that)
Is that true of programming also?
Maybe that's what the article's saying—you have to learn for yourself. Well, there are typically a lot of Exercises in maths books because that's how you learn that stuff, by seeing for yourself, working things out, not from just being told it.
For example, I might see that John Coltrane used a certain scale or lick at a certain point in a song. I then might make a note in my music 'Use X scale here' as an exercise while improvising.
The effect is similar to what the author is describing - chunking broad ideas and implementing them ourselves as practice.
Learning to improvise jazz seems different to Franklin's method, in that you don't listen to a jazz great's solo, put it aside and later try to reconstruct it; you have to play it exactly, writing it out if necessary, and play it over and over until it starts to become intuitive; until the muscles learn it. And that must be done with many different solos. And copying just one person just makes you a clone of them. I guess learning programming doesn't have that essential element of imitating the styles of individual great programmers, although maybe for some people it does.