Guitarists definitely do engage in some 'mindless' practice where they're essentially just building dexterity/muscle-memory by playing the same thing over and over. I don't think there's anything like that in programming... unless you count trying to get used to emacs key bindings.
But obviously some guitar practice is more involved. It's something I think about a lot actually, as when I need a break from programming first thing I do is pick up my guitar. My musical goal is to be able to improvise on the guitar using jazz theory. To do that you need to internalize abstractions like scales/modes and chord progressions. You need to be able to transpose the same abstraction/pattern to different notes (on the most basic level this would just mean sliding further up the neck and using the same shape for fingering), and you need to be able to 'search' your options (some chords can substitute for other chords, which might then allow a whole new path of music) on the fly.
In programming you don't need to wrangle all these abstractions in a strictly timed performance, and there's no physical component to the challenge. But still, I often think about the similarities. I guess playing jazz guitar, while complex, can still be kept within a manageable scope of permutations and ultimately 'mastered'. But with programming you can't tame the complexity, you just get good at dodging it.
But obviously some guitar practice is more involved. It's something I think about a lot actually, as when I need a break from programming first thing I do is pick up my guitar. My musical goal is to be able to improvise on the guitar using jazz theory. To do that you need to internalize abstractions like scales/modes and chord progressions. You need to be able to transpose the same abstraction/pattern to different notes (on the most basic level this would just mean sliding further up the neck and using the same shape for fingering), and you need to be able to 'search' your options (some chords can substitute for other chords, which might then allow a whole new path of music) on the fly.
In programming you don't need to wrangle all these abstractions in a strictly timed performance, and there's no physical component to the challenge. But still, I often think about the similarities. I guess playing jazz guitar, while complex, can still be kept within a manageable scope of permutations and ultimately 'mastered'. But with programming you can't tame the complexity, you just get good at dodging it.