Is there a modern book/course/game for someone you...
# present-company
n
Is there a modern book/course/game for someone young to learn Linux on the desktop in a way that doesn't shy away from technical details about how command line, operating systems, networks, compilers etc work? Probably something like setting up Arch Linux on a Mac, booting off a USB thumbdrive? I am seeing lots of youngsters growing up with tablets and smartphones with no conception of files or processes. This seems worrying for the future of coding, but I don't know of any resources that I can recommend.
🙏 1
g
Alternate view to consider: the first use for electric motors was to pump water uphill to make artificial streams to run factories that used water wheels to power machinery. "Files" and "desktops" are old-fashioned, 1940s concepts glued onto a new phenomenon. Furthermore, the concepts of "operating system" and, even, "functional notation" might be unnecessarily old fashioned. The future of "coding" may suffer by such lack of knowledge of files and processes, but, the future of "programming" may benefit from this.
👍 1
🤔 2
w
And the details of Linux processes and files are nothing to be proud of.
j
Nilesh’s observation is pretty well documented https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z, and is something we had to grapple with a lot in my last role, building education programs for early career devs. It might be nice for the future of programming, but it’s really quite hard to get very far with any contemporary dev tooling without a mental model of files and file structures
2
We often found during web app / REST API workshops that attendees without an intuition for nesting file systems found URLs mysterious and impenetrable, for example. Unfortunately it was beyond our remit at the time to explore that problem much beyond providing content to teach the file system
a
I want to hear more about what might make Arch Linux installation a good way to learn about filesystems and command lines. Like, why is that where you want to start, @Nilesh Trivedi?
n
@alltom It's just the suggestion I have received from many people. I do think that Mac and Windows have tended to dumb down their systems in the garb of "protecting" the user. The other advantage of linux is that it more closely resembles what typically runs on servers.
a
I didn't dig really deep into it myself, but an acquaintance was using overthewire.org/wargames/bandit as a way to teach someone basic Linux CLI skills. It's sort of like a capture-the-flag game, but it's very ground-up. It starts with teaching you how to SSH at all, if I recall correctly. Do it from a desktop Linux client, and they'll probably get the idea eventually. I think I only did a few levels before I got bored/went back to work. (If you do this, please let me know how it goes. I've been saving the link in case I need to teach someone Linux but don't know for sure how well it works).
In defense of the question: files and processes are not only pervasive in the present reality we need to deal with, they are so pervasive that any feasible future of computing will at least have to work alongside them, and most likely will be implemented on top of them (at least in part), because fully replacing them is such an incredible amount of work that it's going to happen over decades at best. Anyone involved in the near future of coding needs to understand them. Are people really going to try to say you shouldn't try to understand the layers under you, or past attempts at problems we want to solve? That's not what I expect from this community.