5 ms·
>the idea that kids who learned to type a magic command to launch games on C64 have more useful knowledge than kids brought up on Mac/Windows is frankly stupid.
by brodney 13y ago
>the idea that kids who learned to type a magic command to launch games on C64 have more useful knowledge than kids brought up on Mac/Windows is frankly stupid.
>children that used Commodores or TRS-80s or DOS knew a lot more about how their computers worked, on average, than those of the same age that use Windows or MacOS
He said they know more about how their computer works, not that they have more useful knowledge. Would you disagree?
- adestefan 13y agoI would. How does typing in the program name instead of clicking on a button teach you more about how a computer works? Maybe the kid might get more interested in computers, but it won't be from using the command line to run a program. In the end the kid just wanted to play with tuxpaint.
- fps 13y agoI would disagree. The command line is really no more about "how their computer works" than a GUI is. They're both interfaces to run programs. In each you can navigate to a location on a filesystem (which is, itself, an abstraction on top of how the computer is really working) and run programs. Perhaps people who don't understand computers think that the command line is really how computers work, and that interacting with the command line inherently makes them more knowledgeable, but that's completely wrong. You understand no more by parroting apt-get install than you do by double clicking on a .deb icon.
- lightcatcher 13y agoIf the kids follow the natural progression of using the command line, the dad will probably give them root privileges on their machines sometime between when they're 8-10. At this point (if not before it) the kids will probably learn about: -file permissions, users, and processes on Linux -environmental variables -package management -common Linux packages such as X, top, and probably others -piping/IO redirection -what a daemon is -possibly how to use a "real" editor such as emacs or vim -possibly some shell scripting More importantly, this kids will never be afraid on the command line (which I believe most people are, including younger programmers just learning how to interact with shells). Many of the topics above show up in a computer organization class in a university. Computers are built on top of many abstractions, and the command line is at least one layer lower of an abstraction than a GUI.
- Tloewald 13y agoThe natural progression using the command line is to figure out how to avoid using the command line. The natural progression of forcing people to use the command line is to turn them off using computers. Now, the author is presumably a tech geek and the kids probably have some genetic predisposition to doing the kinds of things dad does, so I don't care to predict the outcome. Similarly, the dad may be a great and inspiring tutor. But my view is you wait and see what kids are naturally interested in and try to widen and deepen the paths they pick of their own accord. It's quite possible that knowledge of vim and emacs and package management won't be the world's most valuable skills in ten years. Whaddya think? > the command line is at least one layer lower of an abstraction than a GUI Only if that's the way the system is architected. Maybe thinking that way is actually a handicap.
- brodney 13y agoI disagree with you regarding avoiding using the command line. I enjoy working in terminal and to the extent possible do as much as I can in there. I also try to understand what is happening "behind the scenes" when working in a GUI. The way I look at a GUI is that it is built entirely on terminal functions. I see you disagree, but I don't know how a GUI could be created without being built on something at a lower level. Something has to cause it to work, somewhere between bits and hardware, and the screen. Double click to open file? Same as `open file`. Find and replace in a text editor? Same as sed or `s//`. A GUI can make it easier to do those things, but not always. For example I find using git in a GUI to be a worse experience than it's command line counterpart. I'm more at home with `git diff` than whatever built in attempt at improvement is available. I'd rather edit and resolve conflicts in vim than a visual editor (even XCode which is a pretty nice diff tool). In short I just don't see myself ever moving off of terminal, and I would never see knowledge of it as a handicap. On the contrary, I'm always looking to learn how to do something new and powerful in it.
- Tloewald 13y ago> I don't know how a GUI could be created without being built on something at a lower level Which simply makes my point that being CLI-centric has limited your imagination. In fact the original Mac had a UI built directly on top of the system libraries. On startup it displayed an icon and played a chime (which was its hardware self-test result). Insofar as there was a "CLI" it ran UNDER the GUI. (There is something lower level going on that the GUI, but it's not a terminal.) Even on a primitive command line machine, there's stuff going on below the level of the command line. In Linux you're running a shell, which is actually not part of the kernel. The fact that the kernel can spew text onto the screen during startup is merely an artifact of what's easy to do using the computer's BIOS or equivalent thereof.
- phaemon 13y agoJust like there's no difference between saying, "Could you pass the butter, please?" and pointing at it and grunting. :-) Using a command line encourages a person to explore what they can tell the computer to do, rather than accept what a GUI allows them to do. It encourages learning that you can put a list of regularly used commands in a "script" and then re-run them. And then exploring what else can be done with a script. When you're used to typing instructions and telling the computer what to do, the idea of writing a computer program is a natural progression.
- phaemon 13y agoHeh, funny downvote: rather than communicate via text it was "click to disagree" :-D
- zeidrich 13y agoI was raised on DOS, but not exposed to unix or linux until much later. I don't feel that a CLI gives me more information about how a computer works than a GUI does. A GUI interface gives me a lot of clues as to how to do things I didn't know about before. A CLI requires that knowledge prior to doing anything. Give me an unfamiliar GUI and there are cues. I can click on things, right click on things, hover over things, touch things, whatever. I can explore with a GUI. I can even learn, or at least get the queues to learn. Give me an unfamiliar CLI and I'm kind of stuck. I can type. What can I type? Maybe I have some experience and I try help. Maybe from that I get a list of commands with no context. Where do I go from there? Linux "help" doesn't even describe "man". I understand IPv4 well. I can configure a network interface or wifi on any typical GUI I come across. If I want to do it in linux, I don't even know where to start. In windows, understanding IPv4 and stumbling around the control panels, network settings etc will allow me to configure my adapter. On my phone, going to settings, wifi, tapping the little arrow beside my connection will let me manually assign an IP address. In Linux, if I want to do that, I need to look up a reference to learn how to use ifconfig. There are no queues to guide me, and the language is specific to that environment. I don't learn anything about TCP/IP through this process, I only learn about linux. On the other hand, in a GUI, it gives me more information than I ask for. Going into my network connection properties in windows shows me all the clients, services, protocols that are enabled for the connection, it gives me a shortcut to change the particular settings of the NIC driver. Delving into the IPv4 settings it tells me that DHCP is enabled, it lets me change the DNS suffix search list, assign additional gateways, etc. The GUI is a teaching tool as much as it is an interface. What it teaches isn't necessarily comprehensive, but it does teach. The CLI on the other hand is much more limited in how it can provide feedback to the user. It can try to, but it's got more limitations; text-only, no diagrams, few abstractions. For a child in a structured learning environment, a CLI might be better. It rewards discovery, it limits the interactions, it provides fewer distractions. But without external teaching materials, I think if you give a child a computer with linux and no window manager on it, and you give a child a computer with Windows or Mac OS on it, your child would learn a lot more about the computer from the latter options.
- alecdbrooks 13y agoI would, in fact. The article gives no indication that they know more about how their computer works, that "startx" is anything more than a password that lets them use a mouse and Tuxpaint. Now, there's certainly potential. The author could (and maybe has) explain how X works or what exactly it means to install a package. Or maybe his kids will learn something from the details that command line programs show but GUIs often hide. There are definitely learning opportunities present in a shell that a GUI lacks. (The reverse is also true.) But from the article, he hasn't done any of that. Reading this article makes me think the author has a lot more planned, but what he's done so far, while fun, probably hasn't made his kids any more knowledgeable. That's OK: His sons are 2 and 5 and have plenty of time to learn more, if that's their interest. But Hacker News shouldn't pretend that the author has demonstrated the superiority of starting with the command line.
- Tloewald 13y agoI disagree because the command line is -- in the sense discussed here -- a very bad GUI. Does a computer "work" because double-clicking an icon launches an application or because typing a certain set of magic characters in a shell launches a program? Follow-up article: I raised my kids flipping switches on a front panel and they love it!