As someone who works in a garage most of the day as a mechanic
As someone who has worked as a mechanic professionally, and now slings code for a living, I'll take a whack. You've put a set of brakes on a Chevy, you've put brakes on about all of them. Hell, put disc brakes on a car of any make, and you've got the general idea. I'm not saying it's not a tough job, hey, I've been there. But he nature of the work is different. What makes an alignment hard is not the same as what makes implementing this piece of code hard. What makes an alignment hard is frozen fasteners and having to go reference the manual because Mercedes decided that fifty years of prior art on caster adjustment just wasn't good enough for them, and invented their own. What makes this morning's software task difficult is that, though similar work has been done, no one has had to make it work quite like I need to do today (otherwise, I'd just buy something off the shelf). I'm making a new invention; not on the scale of the light bulb, but it's still new and there is no reference manual.
So, in the shop I can be fine with lots of noise and music as m 3/8" air ratchet backs out the brake caliper bolts. I don't need to concentrate on that much, I'm not going to bring the whole shop down if I screw it up. Pull the bolts, pull the caliper like I've done a hundred times. That Mercedes alignment, yeah, I might turn the radio down while I think about what I'm doing. But an oil change? Crank it up! (But even for an oil change, I recall having forgotten the drain bolt before putting in oil at least once.)
Software, OTOH, I need to mentally hold fleeting abstractions in my head. Someone droning on about the fscking SeaPigeons game on Sunday can easily break the tenuous grasp I had. I didn't even like being interrupted in the middle of a brake job if I were in the flow, but at least the brakes are right there in front of me when I have to go back to it. Not so with that algorithm for...oh, what the hell was it?
In summary, the nature of the work is quite different, such that mechanical work can be more interrupt-tolerant than software work.
I'm guessing, based purely on my own experience, that there's something neurological going on - that programming involves heavy use of parts of the brain that are also kicked into gear by certain kinds of auditory stimulus. Language almost certainly, but maybe some other bits I don't know about.
Me, I can deal with sound in general, and I even like to listen to music while I work. What really messes me up is words - people talking, music with lyrics, stuff like that makes it very difficult for me to get my work done. Strong rhythms are also a bit of a challenge. So the sounds of people walking are tricky, my mechanical watch needs to go into a drawer if the room is particularly quiet, and the music generally needs to be something classical.
But there's also a threshold where there's so much cacophony going on that my brain just gives up and tunes it all out, and I'm back to my productive zone. When my coworking space is starting to get a bit too noisy for me to concentrate even with my headphones on, I typically deal with it by packing up and going to a nearby coffee shop that I can trust to always be busy.
As I've narcissistically considered my own comment since I wrote it, I think it might have to do with noise our lizard brains feel it has to process. Because as I thought back to my time in the shop, with the air tools, compressor in the back room, cars in and out...you know, I could probably plop down with a laptop and be fine hammering out some code. It's just noise (and for some reason, the thought of an air tool sound makes me think in a Pavlovian way that work is getting done!).
But "Hey, how about that game last night!" behind me and...
LizardBrain: "pattern identified: human speech. Attempting to parse...colloquialisms not found...setting parsing process to 'high' priority...audio sensitivity set to 100%."
ConciousBrain: "nooooo, I don't give flying shite about the SeaPigeons! Trying to work here!"
Yeah, and, at least for me, people's attempts to try and be respectful of each other in an open office type situation make it worse instead of better. Talking in hushed tones makes the speech harder to understand, which makes the lizard brain work even harder.
Working in an open office where the main language is your native language: you spend some cognitive energy tuning it out.
Working in an open office where the main language is a language that you understand well, but not natively (my every day life in Germany): you spend a ton of cognitive energy tuning it out, because your lizard brain insists on having that surrounding speech parsed first, just in case it has something to do with your work, because every so often, it absolutely does.
Working in an open office where you have absolutely no comprehension of the language (two weeks in Seoul): amazingly productive, because the lizard brain doesn't even bother.
I'd agree with a lot of this experience. There's a huge amount of music that I can just zone out while I'm programming. Though I'd add that new music will typically pull me out of it, much as a conversation would. Maybe it's something about new stimuli that triggers the brain to get out of the zone, and conversations always count as new stimuli, while listening to Led Zepplin IV for the thousandth time isn't doing anything new for my brain.
Additionally, I have a really hard time focusing without _any_ music. Typically I need some beat to be able to get in the zone at all. It doesn't matter what the beat is - EDM, ska, soundtracks, lo-fi beats to study to, but there needs to be something.
As someone who has worked as a mechanic professionally, and now slings code for a living, I'll take a whack. You've put a set of brakes on a Chevy, you've put brakes on about all of them. Hell, put disc brakes on a car of any make, and you've got the general idea. I'm not saying it's not a tough job, hey, I've been there. But he nature of the work is different. What makes an alignment hard is not the same as what makes implementing this piece of code hard. What makes an alignment hard is frozen fasteners and having to go reference the manual because Mercedes decided that fifty years of prior art on caster adjustment just wasn't good enough for them, and invented their own. What makes this morning's software task difficult is that, though similar work has been done, no one has had to make it work quite like I need to do today (otherwise, I'd just buy something off the shelf). I'm making a new invention; not on the scale of the light bulb, but it's still new and there is no reference manual.
So, in the shop I can be fine with lots of noise and music as m 3/8" air ratchet backs out the brake caliper bolts. I don't need to concentrate on that much, I'm not going to bring the whole shop down if I screw it up. Pull the bolts, pull the caliper like I've done a hundred times. That Mercedes alignment, yeah, I might turn the radio down while I think about what I'm doing. But an oil change? Crank it up! (But even for an oil change, I recall having forgotten the drain bolt before putting in oil at least once.)
Software, OTOH, I need to mentally hold fleeting abstractions in my head. Someone droning on about the fscking SeaPigeons game on Sunday can easily break the tenuous grasp I had. I didn't even like being interrupted in the middle of a brake job if I were in the flow, but at least the brakes are right there in front of me when I have to go back to it. Not so with that algorithm for...oh, what the hell was it?
In summary, the nature of the work is quite different, such that mechanical work can be more interrupt-tolerant than software work.