John Goerzen, Debian/GNU Linux developer, transitions his kids from bash to xmonad: “I’d been debating how to introduce GUIs for a very long time. It has not escaped my attention that 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. I didn’t want our boys to skip an entire phase of learning how their technology works.” I decided long ago that my kids – if I ever have them, I’m undecided and way too young – will learn computing the way I learned it: with a CLI. I never realised an xmonad setup would form a good transition phase into GUIs.
I’ve been reading these blog posts when they come up and I find it really interesting because that’s what I intend to do with my kids. (when they exist.)
Teaching the basics is something that I think is pretty important. Knowing how to type and understanding how to get the things you want before starting school will put them ahead of any tablet kid in the class.
I wish I had learned how to use computers this way. My earliest memory of using a computer was a DOS machine. My dad never told me how to input the commands, he always did it himself… But I remember playing snake from a floppy; always gobbling the numbers (‘1’, ‘2’, etc).
After that, he upgraded to Windows ME (ugh…), while my mom upgraded to Windows XP. For a while I didn’t even know what GNU/Linux was. My first exposure to it didn’t go well. Many bugs on my rig. (Clock ticking twice as fast. Graphics not working. “Crazy text interface.” etc.) My later exposures went well though.
Anyway, I would definitely teach my children computers this way, if I have any. Though, I’d also try to teach them how to program as well. In C. (Not sure how well that’ll go, lol!)
Cheers,
Aaron
It is good to introduce children to multiple computer interfaces at an early age as the exposure itself will prove useful to future interfaces. It is important to keep in mind that using the CLI first brings no further advantage than using a GUI first. While it gets “geek cred” in many circles, it doesn’t mean much if proficiency in multiple interfaces is not the end result.
For example, learning C before C++ does not necessarily make one a better programmer in C++ or even a better programmer. However, the end result of learning both (whether C or C++ was first does not matter) will be useful in that exposure to multiple languages is the benefit in itself.
Likewise, learning the GUI first and the CLI later does not make one any less proficient in computers than CLI first learners. I learned first in the CLI and am indeed proud of that fact due to my geekness, but don’t get that confused with it being the superior method. Many of the brightest coders today who are 18-21 grew up using GUIs.
Cliff notes: It’s good the kids are learning about computers at an early age. That fact alone is far greater than the minor detail that the CLI was the first interface they were exposed to.
ansidotsys,
I get what you are saying, but I’ve seen so many GUI users with multiple years of experience who are almost uncomfortable controlling the computer by keyboard. Things like clipboard interaction and switching windows are always faster on the keyboard, yet many GUI users tend to have never gotten used to keyboard skills because they didn’t have to. I’ve even observed some of my programming peers overly rely on inefficient mouse clicking, and when I mention it they say it doesn’t occur to them to use the keyboard.
The same could be said for CLI itself, people who learn GUI interfaces first may never bother learning CLI and they might never come to appreciate how CLI is usually superior for batch operations.
aside: why didn’t you choose commanddotcom?
LOL, so you noticed! It was simply the file I could not do without. Logging into a BBS was never the same without it. I’d like to respond to this bit first to mention the following: Remember how many keyboard fans were opposed to the mouse during the Windows 3.1 and Windows 95 early days?
But can those inefficiencies with the keyboard really be the credited to the GUI? I would argue that the individual person’s lack of comfort with the keyboard is due to a number other things, two of which might be: 1) They were simply never taught how to use the keyboard shortcuts. 2) They are resistant to change and would refuse the opportunity even when provided with its benefits, a natural but detrimental emotional response. And these two things are human/human resource issues, not interface issues. The first issue is a matter of training, while the second is a matter of motivation.
For example, about two years ago I had to train a new hire on our support ticketing application at work. Prior to working with the company, he never had any extensive computer training nor was he “into” computers at all — and I’m sure he’s never even seen a command prompt. His experience was primarily using Microsoft Word to type out homework assignments. Our ticketing system’s client interface ran on Mac OS X, featuring both keyboard shortcuts and icons for use with the mouse. Use of keyboard shortcuts was emphasized in training, but he took particular interest in it, writing each and every one of them down. Through the course of 3-4 months, he became extremely proficient with keyboard, their shortcuts, and the entire ticketing system itself. He’s recently showed me an AppleScript he wrote to start up all of his application upon login. I know, yes, very easy for readers of tech sites to do, but very impressive given his prior experience.
My point is: I fully credit his skills to both the training and his motivation to learn. To whatever upbringing that was given to him to be so open to learn is what allowed him to succeed. I would further argue that if someone was so used to the mouse and refused to learn a CLI or keyboard-based interface, they just might not have ever touched a computer to begin with — if not for the mouse. This is not necessarily a bad thing. It is, after all, why computers grew so quickly in the mid-90s. The GUI and the mouse lowered the barrier of entry. Touch interfaces are going to be the next lowering of the bar. And similarly, like the keyboard-only users before them, many keyboard+pointer users are lamenting the touch interface. See the pattern?
The only way to break the pattern is to instill an openness to learn new things — and I think the best way to do that is to teach them MANY things. The blessing that the children in the article have is that they have a parent who possesses the will to teach them, not that they learn the CLI first.
Edited 2012-06-22 06:55 UTC
Don’t just say it like that, likely because you perceive it as such (while – what tells you so? Could it be the very same thing doing the interaction? Our brains are very powerful – self-deception is a trivial trick for them, for example http://news-service.stanford.edu/pr/2008/pr-wine-011608.html & go through a list of cognitive biases), without some evidence or research… like http://plan9.bell-labs.com/wiki/plan9/Mouse_vs._keyboard/index.html
And sure, “many” people are seemingly deficient and ignoring some existing good aspects of text UI …but that doesn’t mean anything, such cases are mostly a result of computers being finally (barely) accessible to them in the first place. With CLI, they just wouldn’t be there.
I would rather teach my kids (when I have them), a language from the Pascal family like Delphi, Modula-2/3, or modern languages like D or Go.
This way he/she would first be aware what proper modules are, the benefits of strong typing, how to handle efficient data structures without pointer magic tricks.
All of this in languages that are also able to generate proper optimized native code.
Then he/she can do a time travel to the past of primitive linkers and source file inclusion world of C and C++, and requirements of static analyzers for sane coding.
Sales of the TRS-80: 200,000 units.
Sales of the Apple II 5-6 million units.
Sales of the C-64: 12-17 million units.
1995 Sales of Windows 95: 40 million units.
It’s easy to forget how small the user base was in the CLI era.
How few kids had access to these machines.
For example, adjusted for inflation, the 1977 Trash-80 cost $2100.
It wasn’t command line operations that made the eight bit micro appealing to kids.
It was the MBASIC interpreter.
Magazines like Creative Computing and Compute. Books like “100 BASIC Computer Games.”
Each month delivering to your doorstep a dozen or more easy-to-read and understand programs.
Ready-to-Run.
I’d have to agree with this. In my case, it was a C128 rather than a TRS-80 but I can safely say that the combination of having a basic interpreter the moment you powered on + RUN magazine and its monthly program listings was one of the primary motivators that got me interested in software.
No no it’s not a valid count… Win 95 sales went straight to workers in offices, and the other 8 bit systems had good chances to land in houses with childrens.
Btw, I have two childrens 8 and 4 years and for my fun I helped this year teachers of the local primary school in teaching the so called “information tecnology”.
So I can tell you some real truth:
1) adults without kids , when speaking of kids, are very funny…
2) ALL children of 6 in 2012 have seen a lot of GUIs, in TV sets, in consoles, in phones etc, and you can not deny you live in a world of (advanced?) GUIs to children, they aren’t so stupid.
3) when back in the days I launched games with ‘load “*”,8,1’ GUI was not so common, and I have really no alternatives.
4) I like me too the idea of initialize a geek kid now with a command line but I have realized is out of time, we in the eighties started with the edge of home computer tecnology, and our kids must start with today edge of tecnology; try to think of your dad in 1982 asking you to make a punch card !!!!!
No.
No more than the enterprise and small business instantly migrated from MSDOS to Win 3.1 or from XP to Vista and Win 7.
Windows 95 made an explosive entry into the consumer market.
I can still vividly recall launching the “Good Times” video from the companion CD:
http://www.youtube.com/watch?v=iqL1BLzn3qc
In October 1996 AOL went to flat-rate monthly billing and our phone service (like others) to an affordable flat-rate calling plan.
I had struggled with E-mail. FTP. Telnet. BBS. IRC chat. USENET.
AOL was a revelation. Layer upon layer of complexity simply stripped away.
Nothing would ever be the same again.
Plus the yearly sales of OS don’t nearly exhaust it – it’s easier to pirate software than hardware; a practice quite widespread on home PCs in many places.
Don’t forget to explicitly mention that those few had, on average, much more interest in computers – a relatively likely trait of somebody insisting on getting one in the times when they weren’t very accessible (both price and ~UI wise)
I bet he just wants a reason to teach the kiddies Haskell. Which is good, I suppose.
In my fantasy my child will be a proficient Haskell programmer by the age of 6. I won’t have to push him/her to learn it either, all I have to do is leave a book about the topic casually laying around
Isn’t that child endangerment?
want a 100% cheat to make your husbands engage in parenting? Tell them how they could prepare an individual IT personal developement program for their kids! Honey “Let them absorb the information while they’re young, and they’re doomed to use linux forever!”
ps.
the cite is taken directly from one of the comments under the article.
Edited 2012-06-22 05:26 UTC
“Here’s a computer and some manuals, figure it out. That’s what I had to do when I was a kid.”
Breed IT drones, you mean? Yay for the kids…
This sounds like a great idea, it brings back fond memories of my ZX Spectrum. But my four-year old would first have to be surgically separated from his iPad …
Something for you then?
http://itunes.apple.com/us/app/basic/id362411238?mt=8
Nice. And he is right.
At the first year at university our programming course started with a surprise: we were forced to use Gentoo, and without X server running. It was my first-time with GNU/Linux, though, not the first time with CLI (yep, MS DOS at school was the first time).
I felt uncomfortable without mouse. And more uncomfortable in shell.
Our lector/practitioner told us several basic commands, which were so unusual for former Windows and DOS users. Also, he recommended to use Vim editor, which seemed to be a full nightmare. But then he said about mc and mcedit, and life seemed easier.
MC and mcedit were real transition devices for me. They were so well-known from the times of Far or Volkov Commander.
So, I wrote all my first C progams in mcedit.
One day I noticed that X server was installed onto my machine. I was happy to launch it and discover KDE desktop. I used konsole and kate, and they seemed to be much easier to use than their CLI counterparts.
Several days after it, I installed GNU/Linux distro on my own computer.
But for my surprise, I did not want to use X, especially for programming. I really enjoyed CLI. It was easy to use, and beautiful (yep, distribution vendor provided good-working framebuffer with nice double-penguin logo on top;).
That moments changed my use of computers.
I disliked Windows because of castrated ugly CLI.
I installed several Linux distros, and finally became Linux-only user.
I really like Vim and GNU utilities. I use them even on Windows, and now I cannot imagine how I was using my computer without them.
Former seemed nightmare have shown me that the real nightmare is the GUI-only interface.
Without great CLI I cannot access most of features, and I am dependent on those crazy GUI developers and even more crazy designers and usabily specialists.
I am dependent on implemented features.
But in CLI it is too easy to implement your own feature and combine it with others, at any level, high or low.
Of course, GUI is very needed. Graphical environments are of high importance.
But without pretty shell,
Our world might be hell!