Hacker News new | past | comments | ask | show | jobs | submit login
[dupe] I Raised My Kids On the Command Line and They Love It (2012) (lifehacker.com)
88 points by reubensutton on Aug 23, 2013 | hide | past | favorite | 56 comments



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.


>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?


I 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.


If 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.


> -file permissions, users, and processes on Linux.

Available from most GUI file browser.

> -environmental variables

Available on GUI.

> -package management

Synaptic, or some package management GUI.

> -what a daemon is

There's GUI for Service management.

> -possibly how to use a "real" editor such as emacs or vim

I didn't Emacs and Vim does not have GUI version.

> More importantly, this kids will never be afraid on the command line

That's only important if you value being able to use command line, it's circular reasoning.


How to use a "real" editor: Oh ffs, c'mon. Most people in their daily lives will never need Vim or Emacs. And let's be honest, if anything, they're way better off using something like Nano, that has a short-cut system they are likely more familiar with. There is no need for them to go through the learning curve of a tool like Vim or Emacs.

Vim is my IDE. I develop entirely and totally on the command line, devoid of any GUI management or development tools.

But this is just silly.


Just because the tools are available through a GUI doesn't mean that the kids will use them the same way. I learned about as much about the above topics in a week of doing server admin stuff as I did in years of running Ubuntu with GNOME.

>I didn't (know) Emacs and Vim does not have GUI version.

Despite have GUI versions, the likelihood that most kids would use them is roughly 0. If you give kids a GUI, they'll learn how to use Microsoft Office/OpenOffice and maybe notepad/gedit. If you give them a command line, they'll probably learn nano -> emacs/vim and then use LaTeX when they need to make something they'd typically use an office suite for.


Are you seriously suggesting that children would use LaTeX over MSO or MSO-like software?

I find this thought process truly baffling.


The 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.


I 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.


> 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.


> 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?

Replace your hyperbole of "world's most valuable skills" with just "valuable skills", and I think knowing how to use a text editor and a package manager will still be valuable skills in 10 years. The last 20 years of inertia serve as evidence for me.

> Only if that's the way the system is architected. Maybe thinking that way is actually a handicap.

That is the way all (afaik) computer systems are currently architected. Having a correct model of the world isn't a handicap.


Kowing how to use a text editor !== emacs / vim

Hyperbole aside, I'm happy to remove "most" and let my sarcasm stand.


Just 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.


Heh, funny downvote: rather than communicate via text it was "click to disagree" :-D


I 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.


I 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.


I 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!


I 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.


So 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.


1) 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.


congrats, you shielded them from knowledge and managed to kill their curiosity.


This is just an absurd statement to make. Someone didn't specifically raise their kid to use a CLI and they killed their curiosity?


What a stupid thing to say about someone you do not know.


My 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.


Should have made the kid create PC from sand and metal. CLI still kills their curiosity about how transistor is made.


Ah, you must've learned how to weld a piece of steel before you used a car - for the sake of curiosity, of course.


No matter what you raise your kids on, they'll pretty much love it (for awhile). It's interesting, they can control it. You love what your parents love, for awhile at least.


Yes, children love to play with their parents, at least till adolescence until it is not anymore cool for them.


I've heard of being raised on the bread line, or the poverty line, but the command line? That's real deprivation. Imagine how excited they will be when they learn about hot water and inside toilets.

More seriously, what can a 2-5 year old do on the command line that would interest them? I'm genuinely curious.


When you're 5 everything novel in your environment is basically like magic. So being as the command line pretty much is the closest thing we have to actual magic spells anyway, it's going to be useful for them to encounter this fact early on, while they still find it easy to accept.


As much seriously, how a 2-5 year old can use the command line beyond mimicking what dad shown ?

I mean if you can't read nor write how can you __learn__ command line ?


Most 3 year olds can write their name (at some degree) and recognize quite a few words.


Well I was raised on DOS around that age and there were plenty of Sesame Street[1] style DOS games I could launch.

I don't know that I could do much more, at that age you kind of run on autopilot with remembering the exact method to do something.

[1]: http://muppet.wikia.com/wiki/Ernie's_Big_Splash



When I was a kid, my dad knowing I could not read, made for me single-letter .BAT scripts to launch whatever I wanted on the DOS.

When a new game was installed, I would go ask him: "how I launch that game where you push boxes? (sokoban)" and he would say: "oh, press D, as in 'Dog'"

And that way, he taught me the letters.

Later, I then figured that those single letter commands were made by my dad, and I wanted to learn how to make them too!

Before I learned how to read or write, I learned CD and DIR...

As result eventually, I wanted to learn how to read and write, so I could make my own programs.

When I got good enough at making my own programs, my dad introduced me to GWBASIC. I was 6 years old then.

I still have a liking for CLI... I am now working on a OSX, it has two terminal windows open.

On windows I rarely use shortcuts, I launch everything for the "execute" thing, typing the path of whatever I want. Also when I have network issues I fix them with CMD.

When I learned how to use AutoCAD (my dad is civil engineer) I also preferred keyboard over mouse, it was much faster with few exceptions.

I think that kids raising on GUIs maybe will lose something, skip learning some interesting things.


I just viewed it as a story of a self-described hacker sharing his love of computers with his kids. And it reminded me of how I first resisted the replacement of the command line with a GUI (Windows ?3.1? - yes, I'm rather "mature") at work because I didn't want to lose that sense of control and flexibility.


adorable, and good for you! Seems kids now, spend all their time on computers, and don't even know how to use them. My parents supported my interest in computers from a young age and it's paid off for me a thousand times over, but that was when I had to learn about jumpers and IRQ's to install a new peripheral. I fear that if they had offered the same "support" these days, I would just be really good at facebook and videogames.


I disagree. I think you're taking a narrow-scope on this story. The lesson here is that you can teach kids about any facet of the computing landscape, and they can catch on quickly and learn a valuable skill.

Just because you're not getting into low-level hardware interrupts or vector tables or memory addresses, does not mean you "don't know how to use" a computer. I'm glad you have that knowledge, I enjoy stuff like that too.

But a lot of kids are "really good at facebook" and use that as inspiration to get into web dev. They want to create the next social network, or the next cool website. Maybe it sparks their interest in big data, or databases, or the math behind social networks.

This is just one example. I don't particularly care about or use facebook personally. But there are a million different facets to computing.

Maybe they end up as a graphic designer for a video game.

Maybe they learn they enjoy the machines themselves and build one some day.

Maybe they learn they don't quite care about computers, and just learn to become literate in an essential tool of the Information Economy. That's good too. shrugs


I see your point, and it's valid. I'm just really grateful to have had an interest in computers at a time where proficient use has required a deeper understanding. I take my car for granted, it's a machine that just works, I need not understand the complexities of an automatic transmission to enjoy it's maximum benefit, and I have no desire to. I appreciate the complexities of the computer, and the knowledge has been a huge benefit to me. I would want my kids to have the same appreciation, but the conditions that have fostered it have changed. I think it's cool that the author is giving his kids a ground up introduction to computers, and I think it will help them.


if nothing else, this shows how fantastically malleable children are. this is why we need parents, not advertisers, telling them what they should like, do, and explore.


I don't think anyone should be telling them what to like ...


My big problem with command line (as it is commonly implemented) involves learning curves. If you're using a GUI word processor/text editor and you don't know how to, I dunno, auto-indent, you open the menu bar and browse around until you find something that says "auto-indent". If you're using Vim, you...google for <vim autoindent> and try to find a result that actually answers your question and isn't a barely-related comment or a comprehensive list with your answer buried somewhere on screen 12.

Essentially, a GUI allows you to explore the options available to you in a fairly consequence-free manner. Most command lines offer no obvious, intuitive way to do that, and actively punish you for experimenting without being sure of your actions.

(Raised on CLI from the age of 7, BTW, and it took me years to accept GUIs. I've come to believe that they both have their place, but a well-designed GUI is clearly superior for casual day-to-day use. CLI is a useful tool, but a specialized one.)


Do other fun things as well.. like say, play prince or blood or lion king. Growing up playing these games along with mspaint and pinball, formatting c drive couple if times made up my childhood.

And due to having a computer early in my life, I turned out to be more technically "aware" than most of my peers.

Now the important thing for me was having that curiosity. Leave them curious for more. :)


"I Raised My Kids On the Command Line...and They Love It" - no they don't, most kids just want to play with their paint or chat app or some game. OP's kids haven't actually learned anything other than they had to go through some irrelevant ceremony to get to play with their favourite app. You don't make your kids break out ICE's or hardware debug tools just so they can boot the lounge flatscreen so they can watch Postman Pat.

I wish people would stop pretending this is educational for children at this age, it's not. All the kids are doing is spending a bit of time with their Dad, who I'm sure they love, to get to the end result which is to play with TuxPaint.


I think its sort of funny 'raising your kids to use computers.'

The first computer my family ever got was bought at the request of my older brother (probably around 1998) and they knew NOTHING about it. It was always us kids that were using it and figuring things out on our own - it was a fun time. Of course I was a little older than 3, maybe 6-7.


This. Is. Awesome.

Kudos that a dad has the where with all to give his kids an introduction to technology that will increase their understanding and appreciation of current and future tech. This is a lot harder than just handing your kid an ipad - and (hopefully) his kids will thank him for it when they grow up.


I think if kids were introduced to some kind of tiling window manager with CLI, they would easily get use to it and probably prefer it to complex GUIs.

The command-line is interactive and that's where its power comes from. I think a mixed approach would be ideal both for kids and professional hackers.


This kind of article makes me gag - the online equivalent of those "proud parent of a ..." bumper sticker.


If articles on the internet make you gag, please don't forget to drink lots of water, you'll be dehydrated by lunch time. A father is trying to be the best father he can be within his own world-view. Gasp! Someone call child protective services!


In a different perspective, was wondering if this approach gives any goodness to eyes for the kids since they don't do GUI much. Any thoughts, skypeople (just watched avatar) :)


I'm gonna teach my future kids how to use a word processor, then they will know something no one else does.


I'm going to make sure they only use Word Perfect 5.1 without the help of the F-key stickers.


I was not trying to be sarcastic. If I manage to teach them how a word processor is supposed to be used, then and only then can we go over to the shell.


The shell is more fun than a word processor. Very few kids are going to be as motivated to learn how to produce complicated documents as are going to want to learn how to make their computer obey their every wish.


This guy totally stole my idea. Awesome story.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: