
I introduced my 5yo and 2yo to startx and xmonad. They’re delighted. - emillon
http://changelog.complete.org/archives/7562-i-introduced-my-5-year-old-and-2-year-old-to-startx-and-xmonad-theyre-delighted
======
lifeisstillgood
Reading the story, and the comments, there seems to be a disconnect between
why the kids were delighted - it is not that they are delighted about Linux or
XMonad. Or that they are learning valuable life skills.

They are delighted to be spending time with _dad_. Doing something fun, that
dad seems engaged in.

As a dad, too much time seems to go on the mundane or the boring. Raising up
the enthusiasm level, is a marvellous thing for dads and kids. It does not
matter if that is installing Linux, writing blog posts, foraging for
mushrooms, bird-watching or football.

Plus one for spending quality time with the kids. _what_ we actually do it
seems is less important than doing it.

Enjoy

Edit: clarity

~~~
ThomPete
Exactly! I could be screwing in a screw and my son would enjoy it and be
delighted about it.

~~~
whileonebegin
My daughter was overjoyed with excitement to help me put a mouse-trap outside
by a hole. She didn't even touch anything, but then runs inside to tell mommy
"I helped daddy!".

~~~
dhughes
I work with a guy like that I do something, he stands there watching and when
the boss walks in he says _"We fixed it!"_

------
jiggy2011
This isn't especially surprising, I probably learned to use command line when
I wasn't much older. That wasn't because I was some genius, just that this was
the only way to use a computer at the time.

There seems to be a popular misconception that a command line interface
represents some kind of advanced brain surgery when in fact for many tasks
it's simply easier.

I have done tech support jobs a few times in my life and it's a lot easier to
guide someone in using a command line than it is a GUI "Click on Edit , click
on Tools , Click the "advanced" tab , right click on the picture of a gear,
now drag this thing into that place on the left" vs "type this in exactly how
I dictate it".

Also CLI tends to be more predictable, I've seen so many people's computers
where they've accidentally dragged interface elements all over the place and
have no idea how to find anything.

~~~
ThomPete
I think you are underestimating how few people actually would do such a thing
at a young age.

~~~
lloeki
I was booting and operating my father's Apple IIe at 4 by myself and I don't
consider myself exceptional, but rather having experienced exceptional
circumstances.

The year was 1985. Against his hierarchy decision, my father bought one for
work under cover of some big carbon paper order (that was used a lot at the
time, so it really did go unnoticed) and hid it at home.

Bundled with the computer were two floppies with games, one with a rabbit in a
maze and the other I can't remember. He booted them for me a few times. Then
one day as he was gone at the office, I booted the thing on the DOS floppy,
inserted the rabbit game floppy and started the game. I was caught red-handed
when he came back. Boy was he angry (what if I screwed up and destroyed weeks
of work?). It's actually the first time I can remember being scolded. Later
when he cooled down and realized I could actually get it, he briefly showed me
more things like LOGO and BASIC, which I enjoyed a lot. He did not know much
on the programming front (he was more of a MultiPlan and WordPerfect user) so
I was on my own on that front. I remember creating chains of GOTO to generate
infinite loops on purpose, and genuinely trying to understand and build very
crude purposeless but exploratory programs. Yet at that age and completely by
yourself you really can't do much.

Then, less than a year later the computer gained its due recognition and went
at the office, at about the same time we moved far away. I was not to touch a
computer again for eight long years.

~~~
jiggy2011
Wow, that's a sad story.

------
ThomPete
Great and inspiring piece (I have a 3 year old) but I disagree with this:

 _And then it occurred to me: the perfect GUI for a child would be simply
xmonad (a tiling window manager that can be controlled almost entirely by
keyboard and has no need for mouse movements in most cases._

The perfect UI for a child and for all other people unfamiliar with a computer
all in all is the touch screen.

The reason why the children have problems with the icons being too small and
accidental dragging is because the mouse represents an extra layer of
abstraction.

If you think about it your brain goes horisontal to vertical and not even in a
one to one relationship.

~~~
MatthewPhillips
> The perfect UI for a child and for all other people unfamiliar with a
> computer all in all is the touch screen.

And how does one become familiar with computers if they only live in that
world? This is no different than any other professional bringing their kids to
the shop/office to learn what daddy does.

~~~
BrainInAJar
Except that in this case, it's more like "daddy is a woodworker, so here's
some stone tools"

~~~
sparkie
xmonad is more like an ultra precision electronic saw. Difficult for most
people to use, but amazing productivity tool to the expert.

Now he just needs to teach them emacs.

~~~
Produce
In my opinion, save the configuration, XMonad is simpler to use than mouse-
based window managers.

You can open and close programs, change their layout, move between and resize
them. All with, what, 7 shortcuts?

With mouse-based WM's there's click to focus, click and drag, right click,
lots of buttons and icons everywhere and you have to constantly work to make
the relevant information visible.

There's a reason why people don't go back after using tiling WM's - they're
_easier_ and more efficient to use than their mouse-based counterparts.

Consider that mobile phones use a similar approach by getting rid of the
concept of windows and they are, by a long shot, easier for most people to get
to grips with. Tiling is a similar concept except that more than one
application is visible at the same time. The lack of a window stack helps.
Navigating a big physical table covered with pieces of paper (i.e. all
applications on the same layer, where the table split into segments - aka
desktops) is infinitely easier for a human than a stack of paper (i.e. finding
something in a binder or book is more annoying and slower).

~~~
sparkie
They are indeed easier to use, but more difficult to learn. Tiling window
managers are like giving someone a control system with no labels on the
buttons. Users need to consult a manual to know what they're doing - which
isn't something people generally like doing.

You don't need a manual to figure out how to use a touchscreen or whatnot
though, which is generally why they're preferred by the masses, despite being
inferior.

The same thing applies to emacs and vim too - they're capable of mostly
everything IDEs do and much more, but it's non-obvious how to do things
without taking the time to learn, read, search - something that people are
less likely to do with age - but kids don't have a problem learning.

There's other issues like consistency too. With stacking based UIs you have
some consistency built in, but you don't necessarily have it with the tiling
window manager and minimal UI applications - take for example the difference
in keybindings between xmonad and emacs. Another problem is that some apps can
"hijack" your WM keybindings.

You can fix those issues by modifying the configs, but that's an even further
level of learning that most people have no chance of ever doing.

~~~
Produce
>but you don't necessarily have it with the tiling window manager and minimal
UI applications - take for example the difference in keybindings between
xmonad and emacs.

There should be a formalised standard for keyboard based navigation. In fact,
two standards might be a better approach - vi-like and emacs-like, since each
of them caters to one of the major ways that people think. Having said that,
with a little bit of work, you can get most of your daily applications to use
vi keybindings (plugins for FF, Thunderbird and Chrome, Vim itself, custom
keybindings for the WM, vi-mode for Zsh - in combination they create a
programmer's version of Zen).

Thinking about it, I wonder if peoples' preference for these things might come
down to their personality type - <http://en.wikipedia.org/wiki/Myers-
Briggs_Type_Indicator> I'm not aware of any studies attempting to draw
correlations between these things but, given how predictable people can be, it
wouldn't surprise me if they existed.

>You can fix those issues by modifying the configs, but that's an even further
level of learning that most people have no chance of ever doing.

When it comes down to it, the current generation of hardcore tiling WM's are
experimental prototypes paving the way for the desktops of tomorrow. Just as
many aspects of functional programming are seeping into popular languages, so
tiling window management is seeping into popular desktops. I don't know about
OS X but Windows 7, Gnome and KDE all support dragging a window's titlebar to
the left-most or right-most edge of the screen to vertically tile it. It's
extremely basic but it's an obvious influence.

~~~
sparkie
I don't agree that there should be some standard layout - it should be based
entirely on the user's preference - so emacs, vi, or whatever you like should
be possible. The flaw is that every app decides it's own keybindings, and
ignores the preference the user has set for his system.

Rather than a standard, we need a better API abstraction for keybinding, where
users can control their keybindings from a single point, and it'll affect all
their apps at once. App developers shouldn't tie functionality to specific
keys, but to some abstract keys which the user controls.

I use Dvorak layout, but I generally prefer the conventional key locations for
common tasks. So for example, cua-mode in emacs, I expect undo/cut/copy/paste
to be in the locations of z,x,c,v on qwerty, except they're ;qjk on dvorak.
It's awkward to make each app support this configuration - particularly when
they all require a different language to configure.

Also, when a user configures his layout, he should be able to specify whether
individual applications can override those keybindings or not - apps should
request key combinations rather than assume they're available.

\---

The personality types is an interesting thought, but I don't think it's really
a big deal, because if you can't predict people, you just need to set a trend
and make them predictable :p.

The editor wars are really blown out of proportion because of popularity or
fashion rather than their technical merits. People are emotionally attached to
their tools and aren't interested in the other anyway. I mean, who has the
time to learn both emacs and vi enough to compare them objectively anyway?
I've not used vi enough to really assess it's capabilities.

Maybe the personality type could give an indicator of a default setting for
developers to put in. I'd be surprised if there's no research in this area,
considering every desktop developer claims "we're building what users want
after conducting usability tests." (I'd like to know who the audience for
GNOME's testing was.)

\---

I do hope tiling features will make it into desktop systems. Bluetile is an
interesting example for gnome integration, although completely broken for
gnome3.

Another interesting app is Opera. Their tabs have been based on MDI since day
one (mid 90s). It basically has it's own internal WM, which includes some
tiling features. (Opera's initial tabs were really tiles before they became
the tabs we all know now.)

I think the other desktop environments are a bit slow on the takeup with
tiling, and it's perhaps come to a grinding halt with the focus on tablets and
touch now. We probably need to start experimenting with introducing touch into
our tiling WMs to support heterogeneous inputs rather than exclusively
keyboard too.

Probably the biggest joy about tiling WMs is that they're not some fixed
system we're forced into using by the trendsetters, but they're more like APIs
for developing your own personalized WM in. Until we build some customization
abilities that don't require modifying code though, they probably won't become
too popular - only minor features leaking into other systems.

------
ww2
I feel sick to read this. The kids learned the world in a twisted way. I
really think kids should know how transistor work before work on computer.
Otherwise he took too much unreal things for granted.

~~~
coreygoodie
You really think it's feasible for a 2 year old to have an idea how a
transistor works when all they want to do is watch videos of kitties and
puppies on YouTube?

~~~
troygoode
I believe ww2 was facetiously pointing out that the father in this piece chose
to introduce his kids to an arbitrary point in the abstraction chain under the
premise that anything higher is hiding too much of the implementation.

That said, while you could _try_ and have your 2 year old build ENIAC out of
from-scratch vacuum tubes I doubt you'll have much luck - I'm pretty surprised
at the degree of success the author had with text terminals at that age, to be
honest. As the father of a nearly-2-year-old this definitely has my gears
turning...

~~~
coreygoodie
And here I was playing with Legos as a tot.

------
citricsquid
> I didn’t want our boys to skip an entire phase of learning how their
> technology works

I don't think they're necessarily learning "how technology works", what they
are learning is that they have control and can interact in different ways. I
think that will be the most valuable thing in the future. Hacking is all about
taking something and using it in different ways to "normal", teaching this
concept from very early on (by introducing multiple interfaces) will be a
great way to ensure in the future that they understand problems have multiple
solutions and that technology works for them.

~~~
EvilTerran
It seems to me that starting on a GUI, or even more so on a touchscreen,
teaches the mindset of "My computer tells me a bunch of things it can do. I
pick one from the available selection."

Meanwhile, the CLI has a very different underlying message: "My computer asks
me what I want it to do. I can tell it to do pretty much anything."

That strikes me as the real value in teaching CLI use at an early age -- it
reinforces the idea that your computer can do whatever you want it to do, not
just whatever it was set up to do when you got it.

That's a very important lesson, particularly in these days when so many of the
big players in technology seem keen for consumers to forget it.

~~~
jiggy2011
Well command lines can be quite stubborn when they don't want to do something.

CLIs were more interesting to poke at though and allowed you to be much more
specific about what you wanted to happen. For example say you want to move all
of your .mpg files from all subfolders of a particular folder recursively to
another specific folder this is generally a lot easier with a CLI.

CLIs also don't tend to change very much, I've been using Linux for over 10
years and been through godknowshowmany window managers but I've never had to
re-learn the CLI stuff.

~~~
EvilTerran
Yeah, it's not like you can do strictly _anything_ with a CLI, of course.

An analogy that came to mind after I posted: a GUI is to a CLI what a buffet
is to a well-stocked kitchen.

------
ForrestN
Am I the only one that feels a little queasy reading this?

First of all: I think it's great to be teaching your kids about how computers
function at a basic level. I think it's cool and admirable that his kids can
use a command line.

But the very evidence presented in this article suggests that he's repressing
his children from having more fun, more "delight" than they're able to looking
at a bunch of text. They're so excited by the visual interface because all
young children are excited by stimulating visuals.

The (admittedly poorly written) comment which is currently at the bottom of
the thread points out exactly what I was thinking. Imagine how excited, how
delighted, these kids would be with all of the possibilities afforded by an
iPad. The diverse critical development opportunities and perceptual stimuli
would seem to far outweigh the advantages of being able to think like a
programmer or whatever. And, it would just be so much more fun for them, in my
opinion.

~~~
jgoerzen
The iPad, to me, represents everything that is wrong with raising children.

First of all, I should say that computers are a small part of my boys' life.
We live on a farm. They get lots and lots of time to explore outdoors, climb
in trees, and all that good stuff that so few kids get these days. That is
really more important to me.

You are probably right that they would also be delighted at an iPad. But what
would that achieve? A simulation of things they could do with paper, out the
front door? Reinforce the message that cool things are expensive and welded
shut?

Research shows, and I firmly believe, that children need unstructured play.
They need to be able to pretend, to create, to examine, to fail cheaply. Lots
of toys and gadgets don't foster this. Don't get me wrong; our boys have
plenty of toys, but we try hard to keep it from being so vast an amount like
so many people have. When we travel, we don't bring a lot of toys. Walking in
downtown Portland, for instance, they might find some leaves and make a game
out of throwing them in the air while we walk.

We built this computer from spare parts. They were active participants in
that. When it breaks, we will take it apart together and look at it. Maybe we
will open it up other times just to see what it's like. This machine was free;
it was built from old parts in my basement that I had discarded.

I vehemently disagree that more cost == better experience for children.

Two other things they've loved that were also free to me: an adding machine
about to be thrown out (they love printing "cards" with it), and a manual
typewriter (think of all the mechanical discovery awaiting one of those.)

Outdoors, they invent all sorts of games. They both have picked out trees on
our yard that are "trains", designating branches as various controls and
sometimes inviting me to ride on their train.

~~~
ThomPete
I don't understand this.

Was learning how to use the VCR everything that is wrong with raising
children?

How is the iPad limiting? Aren't you confusing the Apple ecosystem with the
apps on there?

Give them a piano app and see them fail, Give them a drawing app and see them
fail. Let them play some of those gravity games and see them explore and fail.

I understand what you are trying to do. I too am thinking (and overthinking)
how to best allow my kid to become great. I see no problem in you doing it. I
would encourage it. But you seem to be overthinking your principles.

But that's just me. My son loves hammering at the computer too. (He is working
he says) but he also loves playing games and music on his iPad.

They aren't mutually exclusive. For a child the iPad is not a walled garden
and if they think it is then just jailbreak it with them. Actually now that I
think of it, that seems to be a much better lesson in teaching them how to
become a hacker.

~~~
jgoerzen
Perhaps my first sentence overstated it a bit; I was reacting to the person
that was "a little queasy." Sure, it's possible to use an iPad in a way that
is not actively bad, and probably beneficial.

But it's still a box sealed shut that someone else built. And, perhaps most
devastating, it's designed to just work out of the box.

I'm drawing an analogy to the maker movement here. I don't want childrens'
experience to be defined by others, or to live in the boxes invented by
others, whenever I can avoid it. Left to their own devices, they invent their
own boxes all the time. I would have never imagined that one of our trees
would be a pretend locomotive, but there you go.

My first computer, a TRS-80 CoCo II, turned on to a BASIC prompt. Yes, you
could run software others wrote. But you were almost inevitably learning
concepts about the computer, too - how can you copy data from one disk to
another when you only have one drive and your RAM is smaller than it, for
instance? Sure, you can use something Tuxpaint on an iPad, but you wouldn't be
using it on something you _built_.

Apple's ecosystem is the antithesis of the "I can do it myself" approach. (If
you do jailbreak it, then I start to see some more value.)

Linux is the embodiment of the "I can do it myself" approach. I remember as a
kid opening up a hex editor and modifying the boot sector of a floppy so that
when you forgot it in the drive at boot time, you saw my name instead of the
"Non system disk or disk error." But my boys will have source code, if they
should ever want to use it. How cool is that?

~~~
ThomPete
It's a little weird having this discussion as I am fundamentally agreeing with
you in what you are trying to do. :)

Having said that. I just cant help having the feeling that 99% of what you are
doing with your kids is lost on them. I.e. they are not there yet where they
can actually appreciate and use all the information they are receiving.

I went through the same things with my son and music. As a former musician
myself I was of course eager to have him learn to play an instrument. But more
or less any music teacher i talked too basically said that before 3 learning
an instrument was lost on them.

So instead we sing songs and I have bought a bunch of proper instruments that
he can play around with as he wants.

On the iPad have have a very interesting synt app called MorhWiz and where he
like to fiddle around with the other instruments he loves using MorphWiz.

This I believe is because the MorphWiz takes away some of the difficulties
while still allowing for exploration. And there he actually plays stuff.

My point is. For your kids, the Ipad is like a linux system they can do
everything they can think of with. They are not yet ready and cannot yet
internalize the way you seem to think they internalize.

Again it's not my children, I am not in disagreement with your goals. But I
think your kids could get even more out of this if you started from where they
are not where you are.

~~~
jgoerzen
<grin>, I do think we agree on the big picture, perhaps.

I completely agree with starting them where they are.

And yes, they do not yet know what a for loop is, or what a compiler is, or
what it truly means to install something. But they do know sequencing of
commands and cause and effect.

If a 2-year-old wants to pluck strings on a guitar, as ours has, then great!
Maybe they will sing with their random music sometimes, and as a parent,
that's beautiful. It is probably not teaching them actual skill in the
technique of playing a guitar, but it's teaching them: 1) that "I can do
this", 2) this thing make music, and 3) this is fun and merits more
exploration.

I think I did meet them where they were at, and part of doing that was going
ahead and installing a GUI for them now. There is no reason to believe that my
excitement over a CLI when I was 5 was something unique to me. I think that
many more children could do and enjoy it than are given the chance.

------
nicholassmith
That's a fantastic idea, I think it should be a more common idea.

The first 'proper' computer we had in the house when I was about 8 was a 3.1
box, which was great, but the guy who helped set it up as I watched spent most
of the time diving through a Windows DOS prompt Getting It Done. I immediately
spent more time in there than in a GUI, eventually discovering how limited it
was and moving onto Linux. It taught me a lot, and I always feel a little sad
that kids won't get that experience without awesome parents like this.

------
dfc
I am not a parent so as far as childhood development goes I'm completely
ignorant. Is it normal for a 3-5 year old to have the literacy skills to
interact with a text+keyboard interface?

~~~
jgoerzen
At 3, Jacob knew his alphabet and could find keys on the keyboard. He learned
enough to remember, by rote or otherwise, that "worm" launched the worm game
and "sl" launched steam locomotives, sometimes using a cheat sheet for help.
He could not read or comprehend responses very well. (He derived a LOT of
enjoyment from typing nonsense commands, then having me read the error
messages that started with _BASH_ )

At 5, he reads well. He is not good at spelling - one reason I give him a
short cheat sheet - but he can make out a lot of what's going on. Not
everything, of course.

We didn't start them on computers from the cradle. We read books to them a
lot, and play games involving numbers and words. Jacob loves Dr. Seuss books
and word games.

But lest anyone think we're some sort of tiger parents, we also open the front
door and let them go play outside, maybe sending some sidewalk chalk with them
if they want it.

I got a TRS-80 at about 5. It had only a CLI (BASIC-based). That was a huge
incentive for me to learn to read. Nobody else in the house knew about
computers then either, so unless I wanted to wait for my dad to get home from
work, it was me and the manual.

~~~
jlgreco
The idea of sl being something that you _want_ to run is awesome.

~~~
jgoerzen
<grin> There are a whole bunch of excited preschoolers out there running sl
now, apparently, judging from the comments here:
<http://changelog.complete.org/archives/6359-a-proud-dad>

------
keithpeter
"When I sat down to think about it, the typical GUI design does not present a
very good “it always works the same” interface that would be good for a
child."

See RISC OS, the old Acorn Computers UI. It was designed exactly this way.

Back to the present, would Sugar be any good for these two? Seems 'monotonous'
in the Raskin sense and child freindly.

~~~
glhaynes
I've never gotten to use RISC OS; could you say a little more about what you
mean? Just that it was very consistent?

~~~
keithpeter
Yup, one way of doing each action. Was designed to be used by primary school
children and the networked versions administered by primary teachers.

~~~
glhaynes
Thanks. I'll have to dig up a YouTube video showing around the system, sounds
interesting.

~~~
wazoox
Then you can try ROX (rox-filer) which try to recreate in a modern way, the
Risc-OS experience. And it's a damn fine file manager, anyhow.

------
seanp2k2
I wish they'd teach Linux in school, starting from the kernel, instead of this
"how to use MS Office" tripe that passes for "computer science" here in the
states.

~~~
drivebyacct2
>this "how to use MS Office" tripe that passes for "computer science"

I have gripes about my CS education but this seems overly hyperbolic. Or,
where did you go to school?

~~~
godarderik
I think he's referring to high school, where the selection of computer courses
is far more limited. At my high school right now (in the United States), the
only computer course covers using MS Word, Powerpoint, and Excel. Absolutely
no programming courses whatsoever.

(As a side note, I self-studied AP Computer Science and it isn't much better.
Its pretty much all Java syntax and logic with a few sorting algorithms thrown
in so that they can call it "computer science").

------
noonespecial
I got my 8 year old an arduino, so I'm secretly taking him through Kernighan
and Ritchie. Each night I teach him a new little snippet and the next day
he'll run with it. Its fascinating to watch as he takes the concept and pushes
it as far as it will possibly go, ending in a massive barely working kludge...
and then the next night we learn a few new lines that make it all simple and
easy and its sheer joy. Its like watching Peter Parker get spider powers.

Just learning that programs could be broken into callable functions was a
moment of stand up, open mouthed wonder.

Don't wait. Do this with your kids now.

~~~
jgoerzen
Awesome. That is a wonderful idea.

------
jroseattle
This is a good story, although there are some thoughts that come to mind when
I consider what's happening.

It seems as though GUI environments are being treated as second-class
citizens. While I live and breathe my command line as I have for years, GUI
interfaces run the world. As long as the kids learn GUI interactivity at some
point, they'll be better prepared for the world.

But the excitement those kids are getting is that feeling of control, of if-I-
do-this-then-that-will-happen, which is a powerful motivator. startx and
xmonad can offer a simplicity that would very much appeal to young kids
interacting with a computer.

All in all, good for Dad and kiddos. They like doing those things, and Dad is
focused on helping them succeed. A winning combination.

------
timc3
Just think how happy they would be with an iPad or something like that. I
think it's all relative, but it reminds me of that film "about a boy" where
the kid was really happy to be receiving something at all.

Also computers in the 80s - simple compared to even a raspberry pi

~~~
bornhuetter
> Just think how happy they would be with an iPad or something like that.

And they would learn absolutely nothing about computing.

I think you missed the whole point of the article.

~~~
ForrestN
Which is what? That learning about computing is more important for children 5
and under than happiness?

~~~
invalidOrTaken
An iPad will not make you happy.

Happiness comes from our relationships, our health, our work, our marriages,
and our self-concept. Technology is necessary for _none_ of these for
children.

With, that is, the possible exception of self-concept. "I know how computers
work and how to use them" is a positive self-concept. Author is knocking the
ball out of the park here.

~~~
ForrestN
I didn't argue that an iPad will make you happy. Rather that it would make a
very young child more engaged, more "delighted" and thus, a bit happier, than
would a command line interface. As I said elsewhere, it seems even more
preferable for kids that young to mostly skip all of the above.

~~~
jgoerzen
I disagree. A blank command line is freedom. It's an invitation to do whatever
you like. To discover. To try. To fail. To explore.

If you have 5 (or 50) icons to choose from, where's the blank slate? Where's
the great outdoors? Where's the "I built it myself!"?

The boys love to eat the food from our garden that they helped plant and
nurture a lot more than food from a store.

If they have ownership and freedom to explore, engagement is natural.

If you don't start with the preconceived notion that the command line is too
hard or not engaging enough for children, maybe you will find that it isn't.

~~~
icebraining
I love the CLI and spend much more time in it than in every other UI, but I
was a Windows user for years, where I barely used it, and I still felt all of
that.

My blank slate was an empty text file in Notepad and a browser (this was on a
public computer, I couldn't install stuff).

On the iPad, I'd say the blank slate is Codea:
<http://twolivesleft.com/Codea/>

------
peterkelly
My experience has been that the earlier in life that someone is introduced to
a technology, the easier it is for them to learn it. Kids these days pick up
computers and the Internet very quickly, while many older people (esp. 60+)
struggle to understand it. I think this is largely just a property of the
human brain - our capacity to learn new things decreases with age.

I was fortunate enough to have a father who did pretty much the same thing as
this guy. Growing up in the 80s, I was introduced to the DOS command-line,
BASIC, Turbo pascal, building and upgrading my own computers, etc. I
distinctly remember the day when I was 8 years old and asked my father, with
no prompting, "Dad, how do you make programs?". This was 24 years ago and
pretty much every day since then I've been working with computers in some form
or another, completing three CS degrees, teaching the subject at university,
and starting my own software company. I'm pretty sure none of this would have
happened if it wasn't for my father.

As a CS lecturer I've seen some students who come into the first year courses
having never written a line of code before in their lives, and others who were
writing their own games all through high school. While there are some
exceptions, the latter group tend to do far better at their studies and also
often just naturally do their own projects outside of formal study, which IMHO
is critical for learning the subject properly.

I think getting kids into the technical aspects of computers at an early age
gives them a tremendous head start over their peers who are playing Xbox and
angry birds on their iPad. This guy is giving his kids two of the most
important gifts of all - education and inspiration, of the sort they'll never
get in school.

------
dbaupp
I love reading about the adventures of Jacob and his computer (and Oliver
too!). These stories pop up on planet.haskell.org and they always make my day!

------
ExxKA
Sweet story. I cant help thinking whether all of these experiences would have
seemed completely natural to your kids if they had been presented with a GUI
from day one.

And if it would, would that make it easier to learn more, or if the excitement
from switching to a GUI is really what they needed to tackle a steep learning
curve.

------
jaredstenquist
I was born in 84 and have a lot of fond memories with Windows 3.1, solitaire
and the progression of computer games as I grew up.

I sincerely hope this father kids his kids out of the house and into the
backyard to make friends, built forts, break things, and all the other
awesomeness I experienced as a kid growing up. If my dad started putting me in
front of a terminal when I was 2 or 3, I'm nervous how I would have ended up.

Because I received my first programming book (HTML in 24 hours) when I was 13,
I had plenty of years to learn to code, but didn't sit inside while all the
other kids were playing for 13 years. Now I'm coding everyday, having a blast
at my startup, and my best friends today are the kids from my neighborhood
that I was building forts and setting off fireworks with 20 years ago.

~~~
jgoerzen
Absolutely I do. See my blog for examples. The other stuff is more important
than the computer, and they spend far more time outside than they do at the
computer. One of their favorite activities is to build their own river systems
using a slow trickle of water out of a hose & pipe onto a small mound of dirt.

------
wildtype
To use commandline, we must be can read and write. I even can't read when i'm
6 yo.

------
sgt
When I have children, I also want to do things like these. I have a bunch of
old Sun computers that I want to expose them to, not to mention an Amiga 1200
and a SGI O2.

~~~
timc3
Can I come over to play as well - that is a great collection of hardware that
you have.

~~~
sgt
Everyone's welcome!

------
millerfung
This is really awesome and I finish the whole article. I am 21 now, having
almost graduating from a finance degree now and I started to learn coding,
there are just way too many things in my head that I want to build. I keep a
journal for all my ideas and hopefully one day I build all of them. The
excitement is just awesome! I have done some investing and trading and I
thought it was my favourite to do but then no...I am like new born now!

------
shirro
My 4.5yo has been using iOS since a bit before 2, has his own ipod touch and
uses the family 1st gen iPad. He came home from kindy excited by using a PC. I
couldn't understand it but now I do. Kids love to learn and he needs new
challenges and this is another thing I can do with him. I have been waiting
until he has better literacy to start on the cli, but perhaps the cli will
help him learn letters and typing. Nice one.

------
ericssmith
I have a 34month old and 4yo, and this has inspired me to give them a old
machine tonight. They will love 'sl'. I will also try the xmonad and tuxpaint
stuff with the 4yo. She will like having her own computer and will be tickled
to be 'working' like Daddy. They use an iPad sometimes, but I'll be interested
to see how they feel about typing on keys and using a trackpad to paint with
(the mouse doesn't get used).

~~~
jgoerzen
I would love to hear how they react. I'm excited for you just reading this!

~~~
ericssmith
The 4 yo was excited about getting a computer, but didn't care at all about
using it. She just didn't 'get' the steam locomotive. She was willing to
participate (and was interested) in typing characters on the screen and having
something happen, but I just didn't have enough at an appropriate level to
maintain her interest. I had hoped to work up to the gui and tuxpaint, but we
didn't get that far before she completely gave up. I think there would've been
(general) merit in this approach, but there's just not enough command line
apps that are suited to this age group. The 2yo could also make the train go,
but he didn't recognize it as a train. It was probably too fast to decipher
the ascii art.

Somewhat strangely, starting the following day, the 4yo started calling her
fake baby cell phone a 'computer' and is really in to pretending to do things
on it. Crazy stuff like talking about how well she's doing at playing videos
games. We don't play any video games in our house. It's as though I unlocked
some possibility of having her own computer and her mind is running with it.

------
munin
when I started using linux, I went through two phases. the first one was
marked by knowing, generally, which commands to invoke from the command line
to make the computer do what I want. I had very little idea of what was going
on in the operating system and the userspace runtime, and it didn't matter
because the creators of the OS and runtime were smart and the system behaved
sensibly.

I thought I knew what was going on, I had this feeling that I was in control
of the computer, but really I wasn't, I was just as much at the mercy of the
operating system maintainers as I was when I ran Windows. If a command line
program reported an error or crashed, the procedure to fix it was identical to
the one on Windows: ask your friends, or search the Internet.

It was only after many years of doing system level programming that I was
actually able to fix problems that the original tool creators did not
anticipate.

I think many people park themselves in front of a command line for five
minutes, "learn bash", and think "hooray I am in charge of the computer".
You're not.

------
TamDenholm
One of the coolest things i remember doing as a kid was sitting on an acorn
computer and writing some text that then controlled a Lego robot. I didn't
know it at the time but that was my first exposure to programming.

It's really great when a kid gets massively excited about learning how to make
things work whether it's a computer or something else.

------
jasimq
I think that modern OS GUI has helped increase productivity. Not giving your
kids exposure to a modern OS means that your kid would be playing catch up
with other kids when exposed to one, say, in school.

A person's job prospects may also be limited if they don't know, or are not
comfortable with, what the majority uses

~~~
ef4
We're talking about a five-year-old here. I think it's absurd to think that
any of us know what a mainstream productivity OS is going to look like by the
time it affects his "job prospects".

At that age, what matters isn't any of the material learned. It's the
attitudes and self-conceptions that matter. If a five-year-old learns that he
likes telling computers what to do and that he can get steadily better at it
by exploring, that's a huge win for his future.

------
daemon13
Can someone explain in simple words what is xmonad?

Is it used together with X? Instead of gnome or xfce?

Or instead of X?

~~~
tikhonj
It's a window manager. That is, all it does is draw and position windows for
your programs. It serves the same role as KWin in KDE or Metacity in Gnome.

There are some important differences between XMonad and normal window
managers. In XMonad, you cannot drag windows around and they cannot overlap.
Instead, the windows are positioned automatically and can be controlled with
some simple keyboard commands. Additionally, XMonad lets you configure its
behavior--how it lays its windows out--with Haskell, a very nice functional
programming language.

You can use XMonad with an existing environment like Gnome; you would then
have tiling windows that do not overlap with all of the normal Gnome features
you're used to. However, XMonad can also run alone for a more minimal
environment where you do not have extra panels and menus and use the keyboard
much more often than the mouse.

Everybody I know that has used XMonad really likes it. It really makes you
more productive by managing windows for you--you don't have to drag them
yourself. If you have some spare time, you should try it out and learn the
basics. It's also a good excuse to learn Haskell, which is an insanely awesome
language and great fun.

------
10098
> I helped him them in as root for the very first time.

Aww, this is so adorable :-)

------
andyobryan
I don't have my own children yet, but hope to some day. Thanks for the story
and a lesson on good parenting.

Nice to read such stories in today's world of doom and gloom.

------
zobzu
im tired of these "1mo old discover the theory of relativity" articles and it
the best thing evar. can't we actually evolve a little bit?

------
asdfdsa1234
O, wonder! How many goodly creatures are there here! How beauteous mankind is!
O brave new world, That has such people in't!

------
daemon13
My son is 1 year 10 mths old.

To people with actual experience - when to start showing cli?

~~~
jgoerzen
Here's what I'd suggest.

Find an old keyboard, one you don't mind taking some abuse. Plug it in to a
computer somewhere, put it in a 80x25 text mode where the letters are nice and
big.

Then log in and let them bash at it randomly to their heart's desire. They'll
be able to make lights on the keyboard turn on and off, and see the effect on
the screen of what they do on the keyboard. It might only last a few minutes
at first, and that's fine.

Once they can recognize letters pretty reliably, they could start with some
simple CLI things. At almost 3, Oliver can log himself in, but I usually have
to point to each letter in his username before he hits it. He knows his
letters, but not his QWERTY, yet. He also has some issues with repeating
letters. But once he's logged in, it's mostly random mashing at the keyboard
for him yet too. I bet it won't be for long though.

As to age, each child is different. Follow their cues. If they happily sit on
your lap for 15 minutes, seriously studying, or laughing at the hilarious
error messages they make, then it's time. Or if they start wanting to use your
computer. If they run off after 30 seconds, try again in a month or two.

~~~
daemon13
John, thank you for excellent advice! Will try this approach.

I allways stumbled when my son was drumming the keyboard with all apps open,
feeling uneasy that he could do some damage.

Please continue with BabyHacks series.

------
papsosouid
Ouch, teaching kids to log in as root. Bad dad, bad! Teach them sudo and
explain that you were possessed by the devil when you mentioned root before,
and to forget all about that.

------
gcb
Remember when i was 3 and typed commands on a XT to run games (Sokoban, etc)

Learned to use dir and cd by just watching my father doing stuff. Soon i took
more fun exploring other files than playing the games

