I use VM's on a MacBook Pro circa 2006 and they worked fine - a little slow on harddrive intensive operations (e.g. startup, building large applications) but useable.
Then I got an SSD harddrive. It's like I'm using a new (much faster) machine. The VM's seem like they're native.
SSD HD's are still pretty expensive but worth every penny IMO (and way cheaper than a new MBP).
To continue with your analogy, I would assume most people would be very irritated with a compiler which only reported that you made an error but didn't give you any context into where the error occurred.
Most compilers make a large effort to give you good error messages with file names and line numbers so you can correct your mistake.
Downvoting is like reporting an error with no context: not very useful in determining what is wrong with the comment.
I think the main issue is the disconnect between "Computer Science" and building computer programs (computer programming, software engineering, etc.)
I think Computer Science has the same gravitas as the other professional fields you mention but that isn't the mainstream concept of what computer programming is all about...
Building computer programs is much more akin to other acts of creation. People don't really require artists or authors to have degrees in their respective fields.
People can and do start painting/writing/programming without any academic qualifications. These same people frequently give up after a short time because becoming a master of such fields takes a lot of work.
That said, computer programming is about the only such field where unexperienced practitioners of the art can make a decent living (e.g. they are paid to practice).
The Global Interpreter Lock (GIL) is exactly what is seems to be: a single python interpreter only allows one thread to run a one time regardless of the number of CPUs or cores available.
This lock is per instance of the python interpreter. Multiple instances will have a corresponding number of locks.
There are a couple of ways to have python use multiple cores or CPUs.
The first is to run multiple python instances and have them communicate between themselves using IPC mechanisms (e.g. sockets, pipes, shared memory, etc.). The non-standard "processing" module implements this very cleanly using a similar interface to the standard "threading" module.
The second is to extend Python using C and explicitly release the GIL inside the C extension. This allows both the C extension code and the Python interpreter to run simultaneously. However, the GIL will need to be reacquired before the C extension can resume any interaction with the Python interpreter.
In any non-trivial project there comes a time when code becomes... complicated.
No matter how well designed the code and no matter how often the code is refactored, reality imposes on that neatly designed little world and makes the code sub-optimal.
This is when being able to understand code becomes important. To get inside the head of the author is an invaluable skill (even if the reader and the author are the same person separated in time). To understand why they did what they did (the answer is not always "they were morons"). To understand how to change the code and still guarantee the underlying assumptions.
Also, I would say that being able to read and understand code is even more important when your co-workers are equal to or above your skill level. To try to puzzle out why they did something can lead to an "aha!" type moment which are invaluable in learning new ways of solving problems.
So I would say that being able to read code is important. Maybe not "one of the finest tests" but an important test nonetheless.
It might take years to balance out but the balance must exist. I've done the geek thing and I've done the social thing. They are both interesting for a while but I always seem to eventually shift back to the center.
I went with my friend to the convenience store on the weekend. He spent a couple of minutes chatting with the clerk behind the counter while I watched. It seemed like the most natural thing in the world.
He later told me that he didn't feel at all comfortable during the conversation. He said that he has been trying to "bust out of his geeky shell" by talking to random people. To me it looked like he was just a friendly guy chatting with a stranger.
Moral of the story: just do it. It will probably feel weird but you are the only person who will notice.
Then I got an SSD harddrive. It's like I'm using a new (much faster) machine. The VM's seem like they're native.
SSD HD's are still pretty expensive but worth every penny IMO (and way cheaper than a new MBP).