-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.
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.
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.
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.
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.
Hyperbole aside, I'm happy to remove "most" and let my sarcasm stand.
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.
>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.
I find this thought process truly baffling.
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.
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.