5 ms·
I raised my kids on GUIs and they love it. (I don't disagree that exposing kids to the command line is probably a valuable thing, but the idea that kids who le
by Tloewald 13y ago
I raised my kids on GUIs and they love it.
(I don't disagree that exposing kids to the command line is probably a valuable thing, but 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.)
Last night my five-year-old daughter complained her iPad was out of battery so I gave her my Nexus 7 and she had no problems using it (except for the relatively poorer quality of the apps). Then I gave her my Kindle Fire and she had no problem using that. (No, she can't read beyond numbers and sounding out words slowly.)
It's sad how because my daughter has been brought up on GUIs she can't run a computer from the command-line. No, wait, it isn't.
- 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.
- 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!
- Ziomislaw 13y agocongrats, you shielded them from knowledge and managed to kill their curiosity.
- billybob255 13y agoThis is just an absurd statement to make. Someone didn't specifically raise their kid to use a CLI and they killed their curiosity?
- castis 13y agoWhat a stupid thing to say about someone you do not know.
- ethanbond 13y agoAh, you must've learned how to weld a piece of steel before you used a car - for the sake of curiosity, of course.
- joesb 13y agoShould have made the kid create PC from sand and metal. CLI still kills their curiosity about how transistor is made.
- Tloewald 13y agoMy kids know how to use several different computing platforms confidently and frequently surprise me with the things they're able to do without assistance. Do I worry that I make bad choices in raising them? Every. Damn. Day. But having grown up in the Apple II era, seen kids raised with DOS and C64 who learned absolutely nothing about computers beyond how to launch a game using instructions on the floppy disk label, and having dealt my entire career with command-line-zealots who claim productivity godlikeness while taking 35 magic key strokes to do something any fool can do with two mouse clicks, I'm happy enough with this specific choice.
- tzs 13y agoSo what happens when one day, on the way to school, a temporal accident sends your daughter and several other kids to the far future, to a time when people primarly interact with computers using voice input? The command line kids will adapt more easily than the GUI kids. The GUI kids will probably end up as tavern wenches in the Orion sector, or working in the beryllium mines. Don't let your daughter end up in the beryllium mines. Teach her the command line.
- gavinlynch 13y ago1) The command line was built for people typing figures and is not a direct corollary to natural human speech and language patterns. 2) You may input commands via speech, but are you pretending that there will be no GUI's in the future? That's absurd. Of course we'll have HUD a la Glass or other visual interfaces everywhere, as we do now. We're visual beings and always will be.