I'm unsure if this is the right thread for this question but how should someone young go about learning about the inner workings of computers? One of my friends (math type, in his 20s) has been enthusiastically asking me this question and I'm not sure how to respond. He has rudimentary knowledge of C, C++ and the terminal but I find myself having to explain things that I find for granted (for example, that clicking on an executable's icon in a file browser and writing its' name in the command line both more or less do the same thing, or that when people upload .exes on the web first they compile them and then upload the resulting file). He also told me he was going to grind LeetCode because "it is used in interviews" as if it would make him more proficient in understanding what's in a computer. I think he's conflating programming (specifically algorithms, given his background) and computer literacy, even if the two usually come hand in hand. I learned both of these as a hobby through fucking around and finding out for over a decade (I had weak hardware and too much free time), but I don't think the same will work for him. He has the mental baggage of only using phones and niggerware for most of his life. Also, ChatGPT keeps "poisoning" him so to speak and I'm unsure how to respond to that. Should I tell him to learn languages that will give him fast results (a la Python) and then go lower level from there? Should I tell him to switch to Linux Mint and bang his head against the proverbial GNU/Wall until it all suddenly makes sense? I'd like a second opinon.