Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

QBASIC was also my intro to programming.

I think in a way it’s a shame that kids now first see visuals rather than code.

There’s something much more thrilling about seeing a bunch of written instructions become a game, than some sprites that already look a lot like the game start moving about.

Another awesome QBASIC feature - the help section taught you everything you ever needed to know to learn every feature.



I was randomly messing around with a Chez Scheme REPL of all things recently. My 7 year old wanted to have a go. So I got here to do basic (+ 1 3) type stuff to add numbers. I think what made this work is I didn't explain anything, she did it, and if there was an error I would say why. She didn't question why the plus was at the beginning not in the middle like at school. I guess what I am getting the feeling of is "monkey see monkey do" might work better than "big tutorial-type explaination". Kids will understand - they have the intellegence to understand "the thing", but not necessarily will they understand the abstract dry way adults describe "the thing".

Also applies to adults somewhat - Monad tutorial vs. just use a few monads and see what they do.


One-on-One learning like what you're describing is kind of the holy grail of all education, or the second-holy grail after finding ways of making students interested in things they don't yet know/understand (which is also the case most of the time in the parent-child bond, because kids are interested in whatever daddy and mommy do). This kind of enviroment takes the child from being a helpless ape to a functional human with intricate understanding of very complex rule sets (language, society, technology,...) in about 15 years.

But learning enviroments are typically the more inferior Many-To-One variant, so even if your child isn't confused by RPN, and even if (n-1)/n children aren't confused by RPN, the teacher must clarify it nonetheless for the 1/n student who is (or appears to be) confused, a book writer might have even less options and more constraints.

Basically, education is a very complex human-to-human Serialization-Deserialization problem. Knowledge isn't what's in the books, or the video lectures, or on github, all of those are just on-disk "dead" representations, the result of calling toString() on actual knowledge. Knowledge is all the intricate in-memory data structures built up in all the human brains that are currently living. The problem of teaching is : given a brain, reconstruct some of its internal data structures in another brain with an error not exceeding some threshold.

It's bad enough that you have to serialize the very rich and graph-like patterns in your brain into flat streams (words, pictures,sounds) to transmit it, it gets much worse when you have to do it for multiple brains simultaneously, because each brain parses streams differently. The more brains and\or the less you know about each brain, the worse your teaching performance and the uglier the representations you come up with to transmit your knowledge.

This isn't to say that teaching is easy when it's parent->child, just that (assuming reasonably healthy bond) it's as good as it ever gets. A single receiver who is extremely interested in whatever you have to say and will re-try on error a lot of times to understand it, that's the teaching problem on easy mode.


I assume that Scratch is more accessible to very young kids, who may have trouble with the ergonomics of correctly inputing text. Also, the whole "drag and drop" workflow can potentially be better suited to modern touch-based devices.


There's also the fact that –let's face it– code is intimidating. Having a ui

- that looks more like what children are used to in everyday UI

- that is *localized*: in general programming languages are centered on English. Most young children in the world don't speak a word of English (beside "hello, what's your name?" If they had the luck to get English classes in grade school)

Lowers the entry barrier by a lot


Have you tried scratch? The blocks are written programming instructions, with some puzzle piece connectors which help avoid basic syntax errors. These instructions drive the sprites.


I’ve tried it on the iPad. Does it work the same there?

I still think it’s more awesome to see just a written sentence that I typed out become something. Once you introduce any form of barrier between that and output, it’s hard for anyone to know what’s really happening behind the scenes to help you.

There’s a beautiful purity to just simple text becoming something awesome.


Typing can certainly be more productive. However, it can also be error prone. You might checkout Blockly (the lower level language used to implement the current version of Scratch).

A lot of the stuff we type out in code is syntax and templates. Like this loop:

  for (let i = 0; 
       i < cars.length;
       i++) {
    text += cars[i] + "<br>";
  }
Starting out, it’s hard to tell if the program syntax is wrong or if the program logic is wrong (just getting the snippet above to look close to right on HN is a pain :-)). Blockly makes that easier by mistake proofing the syntax so the programmer can focus on the logic, variable names, etc.




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

Search: