Follow

how would you explain a terminal/shell to a 10yo?

@wolf480pl A way to make a computer do what you want, but only through text. Not sure if that's the best way to put it but it explains it in pretty simple terms.

@wolf480pl it's hard enough to explain it to an adult 😬

@wolf480pl A way to exchange informations with the computer using only text (without clicking and pointing...).

@wolf480pl
"You open the shell to see what's inside. If you're lucky, you find a pe[a]rl. " 😎

(But beware of the daemons, zombies, ELFs, DWARFs, pythons, GNUs and other funny creatures...)

From a user perspective, the shell (text or graphical) is the most fundamental process that needs to run after boot.
It allows to observe, start and kill other processes. (And by extension: files)

@wolf480pl Depends on the 10 yrs old. If I must speak with someone who it's not reasonable to address in an age and experience independent manner... I would describe it as a conversation; command lines are just early chat clients for talking to computers. They understand weirdly specific phrases and are prone to saying silly things that require interpretation, but it's just a chat.

@feonixrift hm.. ok, what if the 10yo knows how to program in one programming language, but has never used any Unix-like system, and there's no reason to believe they used cmd.exe either?

@wolf480pl Same thing; it's a chat. But in code - you can program how it replies. You can make it do things. (My daughter is younger, she gets search/commandline as 'magic incantation to make it go'..) Hence the modern term repl - which is literally a chat in code.

@wolf480pl Put them in front of one if these shell mockups to learn and play with it?
Maybe some video demo of their absolute power?

@lanodan the usecase is making a video showing how to use the Linux distro we provide for the programming contest.

So there's gonna be stuff "here you start Geany which is a source code editor with nice keyboard shortcuts for compiling your code" and there's gonna be stuff "here you launch a terminal which is (?). You can type cd to change directory, you can type ./myprogram to launch the program you just wrote, you can redirect input with <, ...".

Now what do you put in place of "(?)" ?

@lanodan I guess "a window into w hich you can type commands and the computer will run them" would do the trick

@wolf480pl it's like talking to a computer
you give it commands, it performs them
you ask it questions, it tells you answers

@grips you tell it a name of a program, it runs it. yeah, that could work.

@tmy "Back in my day, there was no GUI, we had to run our programs from terminal. So during this competition, we will require you to run programs from a terminal, too. We had it hard, so you're gonna have it hard, too. Deal with it."

:D

@wolf480pl Make sure to use the 😎 emoji when you say "deal with it" so that you seem *cool* and *with it* for the kids.

@wolf480pl Do you think they'd need a very different explanation than would an older person? "A shell is an interpreter for a language that you write into the terminal window" might be my first attempt.

@zipheir they may not know some more sophisticated words.

@wolf480pl I think it's possible to be precise about computing in simple language (c.f. The Little Schemer!). IMHO it's preferable to use some technical terms (like "interpreter") than to give people simplistic, or--worst of all--anthropomorphic explanations ("You tell the computer what you want through this, but you have to speak its language...").

@zipheir I was hoping for something in the style of the Simple English wikipedia.

Anyway, you think that it's better to introduce multiple new terms at the same time instead of using analogies?

@wolf480pl I don't think I advocated for "introducing multiple new terms at the same time".

Sometimes introducing a fresh term is a good way to clarify things, since a familiar term might come with lots of unwanted connotations. A challenge of explaining things in Basic/Simple English might be that it's hard to be precise with the language's basic vocabulary.

Example: Simple English WP on programming languages: "A programming language is a type of written language that tells computers what to do in order to work." It's necessary to expand this a lot to explain that there may be many layers of abstraction, what it means for a computer to "work", and that "telling" it "what to do" does not mean the computer is conscious and capable of "understanding"!

@zipheir
but your proposed explanation introduces 3 new terms at a time:
- shell
- interpreter
- terminal

@wolf480pl I was defining 'shell', and you could imagine me jabbing my finger at the screen instead of saying 'terminal window'. So that leaves 'interpreter' as the sole new term, hopefully.

@rghvdberg "ok kids, now we click this icon which opens a Terminal. Terminal is where l33t h4x0rs live, so if you wanna be a l33t h4x0r and win the competition, you need to learn to use terminal too. It's not easy at all as only l33t people know the right incantations, but as a beginner, you should learn how to use `cd`."

@wolf480pl
I freak the kids out by not clicking on an icon but quickly tapping F12 to drop down my quake terminal

@wolf480pl You can talk to a computer and make it do things. But you have to type in a special language. You already know most of the words though, so it will be easy. And then you can make it do anything you want.

@wolf480pl An app to message your computer to tell it what to do.

Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!