Slashdot Mirror


Ask Slashdot: How To Introduce a 7-Year-Old To Programming?

THE_WELL_HUNG_OYSTER writes I'm a professional programmer and have been programming since I was a small boy. I want to introduce this to my 7-year-son but know nothing about teaching this to children. Since he enjoys Roblox and Minecraft very much, and knows how to use computers already, I suspect teaching him to write his own small games would be a good starting point. I'm aware of lists like this one, but it's quite overwhelming. There are so many choices that I am overwhelmed where to start. Anyone in the Slashdot in the community have recent hands-on experience with such tools/systems that he/she would recommend?

6 of 315 comments (clear)

  1. BASIC by Orgasmatron · · Score: 4, Insightful

    Did BASIC get uninvented recently? Why do people not start there?

    --
    See that "Preview" button?
    1. Re:BASIC by dbrueck · · Score: 5, Insightful

      I guess in some ways I got into programming because computers were a novelty and there wasn't an endless supply of free stuff, so in many ways programming was the entertainment. But now there is gobs of relatively high quality and free stuff to entertain that also /sort of/ scratches the builder itch (as I write this, my son is sitting nearby on the free-to-play Robocraft).

      So the "problem" is that there is an endless stream of stuff competing for my kids' attention that (a) is of a quality leagues beyond anything they can hope to do anytime soon and (b) gives /some/ of the same "fix" I get from programming. Back in the olden days the gap between what you could do with e.g. BASIC and what you saw in commercial apps looked a lot smaller.

      I'm always searching for something that does a good job of being an intermediate level - I can get my kids to do a lot of the intro / visual programming stuff and they like it, but then they run into this seemingly huge chasm when they try to go beyond that. It's like, "ok, so now you made a rudimentary game that runs inside this special environment on some website. You want to advance to something more flexible? Ok, um, now we need to talk about files and directories and a whole slew of tools and junk you never knew existed or were needed. Also, prepare to start typing a lot and using all those punctuation characters you rarely use in school assignments. And don't get me started if you want to get your little game onto a device so you can show your friends!"

      On the one hand I think it's just part of getting into "real" programming and they just have to suck it up and deal with it. But I really think one or two of my kids could really get into programming and really like it, but I've yet to help them get over that hump from super basic stuff.

    2. Re:BASIC by Anonymous Coward · · Score: 2, Insightful

      Because it's a bad language that teaches people bad habits.

      The same can be said for PHP, Python, Perl, Pascal, Cobol, Lua, C, C++, C#, Java, Javascript and pretty much any language out there that you can use to solve problems.
      Heck, programming on any computer with memory protection will teach you bad habits if you consider trial and error programming to be a bad habit.
      Basic may be bad, but it isn't as bad as people make it out to be.

      Unless you go for esoteric languages that only exists in academia then there will be quirks that can be misused.

  2. Simple answer ... by angel'o'sphere · · Score: 5, Insightful

    Don't?

    Why the heck are you supposing a 7 year old one should/could/want do that?

    Can he write already? Read? (Likely yes) ... how is he in math? And why the funk do you want him to exercise his hobby behind a computer instead of playing outdoors with other kids, a dog or hanging in a rocking chair and reading, if he can read ...

    Coding is a nice word to camouflage all the variations of developing, programming, software engineering, computer science ... what actually do you mean with coding?

    Why don't you let him practice cooking and read a cook book and then let him experiment with cooking and write his own cooking book? That is far more "coding" than most "coders" ever do in their job.

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  3. Don't! by EmeraldBot · · Score: 4, Insightful

    Unless you're kid truly displays a passion for it, I would not advise pushing him onto it. It's very likely that it'll overwhelm him, and then he'll never want to touch it again. If you are dead set on doing something like that, I would recommend starting with a LOGO implementation: those are usually pretty easy for most kids to handle, and indeed I got my start with it.

    But seriously, playing Minecraft and Robolox != enjoying programming. If anything, it shows that he likes building things, but that does not mean he is a programmer. Give him small and short steps, if at all; if you force this on him, he is going to hate it for the rest of his life. And if programming doesn't work out for him (and I highly suspect it might not), try giving him something practical or more physical; building models sounds like something he would enjoy, and LEGO's (if he doesn't have them already) would probably interest him.

    Do keep in mind, he might be playing Robolox and Minecraft for the social element behind them. It's very well possible he's playing them to make things, but a bunch of kids I've seen play it do so because it's an activity to do together, and I don't know they'd do it alone. Obviously, you are going to have to make that decision and I can't, but it's something to keep in mind.

    I don't mean to sound scary or anything, but you really want to make sure this is something your kid enjoys before exposing him to the full brunt of it. If he doesn't have a natural liking for it, it's going to be very stressful for the both of you. A lot like if your father ever made you play sports when you were younger - make sure gently stroking his interest does not turn to squashing it.

    Whatever happens, just keep an open mind and be sure he knows he can say what he wants. I wish nothing but the best of luck for you and your son!

    --
    "Set a man a fire, he'll be warm for the rest of the night. Set a man afire, he'll be warm for the rest of his life."
  4. HEY YOU KIDS, KEEP OFF MY COMPILER! AND LAWN! by TiggertheMad · · Score: 4, Insightful

    The perfect tool is whatever the kid is interested in. If you try to teach them how to write a game with Minecraft, and they want to write spread sheets, they are going to hate coding. Now, as parent post notes, Minecraft will probably hold most kids attention.

    Figure out some fashion that code interacts with their favorite thing, and there is your in. Building basic web pages might be a start, or perhaps set up a command line application where they can play with string manipulation. There are many ways you can simplify complex tasks and projects with 'training wheels', ex: APIs and such to hide away complex stuff that isn't important to a beginner. Get them a really simple sandbox where they can change things and see the effects of their changes, and then get the hell out of the way. They will be better than you are in two weeks.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!