Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

for my kids i've just thought of introducing them to computers via linux tiling window managers, they can operate from a terminal and learn to code.

i think browsing the internet via terminal like w3m does might take out a lot of the addictive nature of what catches your eye, and you can keep the utility of stack overflow

another equivalent would be teaching them to scrape each individual web-page for text on their own



sort by: page size:

My kid is never more fascinated than when she sees me inspecting HTML or using the terminal. I wouldn't ever push a CLI on her, but she is genuinely more interested in learning about computers when she's staring at a screen of text she doesn't understand. We've started doing an HTML tutorial, and her initial enthusiasm seems to have generated enough momentum that she's now excited about what we can do using these previously-daunting text-based tools.

Unplug the computer from the internet, hand the kid a UNIX manual, and suck all joy from computing.

Having a working browser teach you programming is like having an android in the form of Kelly LeBrock teach you robotics. You're gonna want to do things to it that engage your little brain.


If they mainly use computers for web browsing, why not show them how can programing make it more convenient? Teach them how to use, then modify and later create userscripts to simplify annoying stuff. Same with Discord bots. Show them how to scrape all videos of their favourite tiktoker. Help them create webpages to troll their friends. Some might find interesting Game of Life. If they are into art, teach them Processing. If they are into video games, they might be interesting in creating mods.

Any site that they like, doesn't matter which one.

IME, the easiest way to get an adolescent interested in programming is to show them the browser's built-in debugger.

Show them how to change a style rule or make a post look like it contains arbitrary text, and they'll be hooked.


With JavaScript/HTML, Scratch, or anything that requires the internet, I'm concerned about attention span. I don't want to commit some, "it was better in the old days" fallacy, my 6 and 8 years olds are using scratch, but when they're 12, my plan is to give them an offline PC and a printed copy of Learn Python the Hard Way. It's just too easy to be distracted by the internet. When they're 16 (we homeschool, so I can do this) I'm going to let them take a half a year off from other studies and work through The Elements of Computing Systems, where they will built their own VM, language and compiler in Java.

As a former teacher, who ran a programming club at a middle school and taught an advanced 8th-grade math class included programming, I have some perspective on this. I would say, be wary of "fundamentals" and "doing things the right way." Teaching a 10 yo something optional needs to be fun, or else it won't happen.

The author of this article nails it: there's nothing quite as motivating as adding "Poop" to the title of a real web page. Also, you can Inspect Element and get what is effectively an IDE. Is JavaScript the best language? No, it's inconsistent and confusing. But, so is English, and a lot of people learn English first - because it is practical to do so.

Another option that can be useful are Google Sheets. If they are a certain type of kid, they might like logging all of their toys in a spreadsheet and finding the total of the toys and making charts. Of course, most kids will find this boring... but you can also use Google Scripts to do something like scrape a subreddit and store it in Drive [1], which could be fun.

However, why not start with Scratch, or Snap! [2]? They are powerful enough (especially Snap!, I think you can define new data types in it...) and so much less intimidating.

[1] http://ctrlq.org/code/19600-reddit-scraper-script [2] http://snap.berkeley.edu/


This. My 12 year old son was never very interested in school coding (Scratch mainly), but when shown how to manipulate existing web pages using Inspect in Chrome that really caught is imagination.

This. Personally, I think something that involves looking behind the curtain on websites would be pretty gratifying to most teenagers. It's a bit of a revelation to see how the webpages they interact with all the time work.

Maybe scripting something to make a headless browser to do useful tasks, or crawling pages.


For the vast majority of kids these machines are replacing textbooks, and aren't supposed to be tools for learning computer science. That said, you can also learn programming with nothing more than a browser.

I find that browser automation impresses both adults and children. It would help to find something content relevant to them like for example, some multi page website where they would have to fill forms or click on things. Skip headless and launch it visible and show them how the computer can automate away repetitive tasks. Ideally, pick something concise and give them a peek at how you can do this in say 100 lines of code and they should see the power behind tools like this.

One of my interns did something like this for himself as the school’s dashboard for grades worked inconsistently (high school) so he built a tool that logged in once per hour and checked his grades for any changes and notified him when there were.


Just use Javascript and make some games with canvas or something. It's pretty fun, you can iterate fast and web based things are easy to share so your kid can show all their friends their cool stuff. Then if you need to torture your self you can learn how to serve websites with Linux and web servers

Smalltalk (pharo etc.)? E.g. Squeak has/had some special widgets for small kids. IIRC they also used it to teach programming to kids.

If they're older, I would probably go with javascript. The browser is the new terminal.


This. And if they want to learn the what's and why's and get to the guts of it, they'll find a way outside of that UI as I'm sure that's how we all got to where we are in web, because we care and we're curious and neither of those traits are disappearing in kids.

I've found that kids can pick up on scratch, cs unplugged (http://csunplugged.org/) and html/css fairly quickly.

Seriously?

If you say the main problem for kids is to use a browser on a computer in the first place, than I really doubt those kids could just start coding in basic on a computer in 1984.

And since most do use chrome, or are able to download it - and are also able to press F12 (most kids I told this, could) ... they could immediately start digging into the code of any website. Just changing colors of elements, rearranging ... and then finding out how to do the same with code.

Also, there is Scratch, Lego Mindstorms, etc. etc. the barriers have never been lower. The only problem might be, that it is too much choice and easy to get lost and loose interest, but any dedicated kid can jump into it.


Kids(and anyone without the preexisting motivation to try the harder problems of programming, which would include most adults too) will want something with a lot of immediate responsiveness and simple failure modes. This rules out languages needing "build systems" of any kind, languages that require hooking up a "foobar library" to do anything but console output, and languages with obscure error messages and ample means of shooting oneself in the foot.

HTML/CSS mixed with a little bit of JS is roughly equivalent to learning BASIC these days - you can throw something on the screen quickly, and add bits of functionality from there. Since errors throw exceptions, they're pretty easy to understand, and with the newer HTML features there's tons of room to grow into different domains. Plus there's a zillion resources for JS coding out there.

A good alternative, if the kids in question are not old enough to care about the prestige factor of "real" languages yet(an issue as you get near the teen years), is Scratch: http://scratch.mit.edu/ It reduces syntax to drag-and-drop while retaining some key concepts that bridge the gap into more powerful languages(conditional branches, named variables, and list manipulation)


When I was a kid that was very much a hobby!

I’d save whole websites and play with their code (back then that meant html2/3 and early css and Javascript, but still). It was enticing after playing with terminal views for years before that. Kids like colourful things, what can I say.


Create a development "playground" for your children. The way children learn anything is by trial and error, remember them trying to learn how to walk? Remember how many times they fell before being able to walk?

Do the same with teaching them to code. Pull HTML source code from a simple website and paste it to your text editor. Then let your child play around with the code and see how it renders in the browser. It will be fun and exciting for them because they will actually get to see their work right away (instant gratification).

Once you have done this, move on to css.

Good luck!


If your kids get into coding and if they're doing Javascript (which I think is a good place to start for lots of reasons, but python might be better) I can personally recommend Free Code Camp for learning basics and intermediate topics in javascript web development. The interface is thoroughly gamified and it's very effective for people who are, but ONLY after they're enthusiastically hacking away at web dev. They'll be much more successful at learning the basics once they realize that they want and need the basics.
next

Legal | privacy