However, if you go higher up the ladder of abstraction the story changes I think. Thinking in terms on software design and architecture you can start using a similar vocabulary.
We can talk about systems and sub-systems, foreground and background jobs, interfaces and telemetry, sequential and parallel processing, latency, efficiency versus accuracy, overfitting, etc.
The underlying implementation might be completely different there are similarities and thinking about them can be useful.
But I think that's exactly the example of where the metaphor starts to give us bad information.
The biggest difference between the brain and a computer is that the brain is fundamentally parallel. Not more threads in a GPU parallel, but rather the processing the brain does is the manifestation of the parallel actions of a mass of information processing units interacting with one another.
To give an example of where using the computer metaphor gives rise to very misleading assumptions because of this: in many cases with a computer, more data equals more cost. If you need to iterate through a million data points to get a result vs. a thousand, it's going to take a lot more time to reach the answer. But with the brain it's precisely the opposite. More data points means a denser network of interconnections which can give a better answer sooner.
It's as well to remember the brain isn't a Turing machine, but the brain is an information processor, and it makes to sense to use the language and concepts of information processing to talk about what it does.
One of the fascinating and useful ideas I was exposed to early on was the concept of self-programming the mind, using hypnosis and various techniques.
In a sense, reading an article like the OP is priming the brain for higher-order functioning, by self-reference.
Consider the idea of "time". We only think of time as movement in space, with either us moving or the time moving. I left that experience behind me. Looking ahead to the future. She has a great future in front of her.