But VMs can abstract away most of this, especially in a learning environment where performance isn't a primary goal.
Then you can have a known-good set of instructions that doesn't have to include messing with whatever Apple/Microsoft/Ubuntu changed recently.
Learning to paper over OS errata isn't as generally useful as, say, groking multithreaded coding models.
Yes, there are environment quirks. Yes, you'll have to deal with them. Yes, you can look up documentation when you run into those situations.
But VMs can abstract away most of this, especially in a learning environment where performance isn't a primary goal.
Then you can have a known-good set of instructions that doesn't have to include messing with whatever Apple/Microsoft/Ubuntu changed recently.