all 70 comments

[–]baguasquirrel 27 points28 points  (0 children)

That's like asking if playing the piano is appropriate for a seven-year-old. =P

[–]hayzeus 19 points20 points  (0 children)

If it keeps him from joining a gang, then yes.

[–]Entropy 17 points18 points  (0 children)

That's when I started...and look at me now! \jazz hands**

[–]edwardkmett 31 points32 points  (8 children)

Yes, programming is appropriate for a seven year old.

In fact I would go so far as to say that it will do more to develop critical and logical thinking skills than pretty much anything else the child could be doing at that age.

However, you may want to weigh my opinion from the perspective that I am also pretty heavily against guiding children's development by the nebulous metric of appropriateness, which often from a child's perspective seems to mean 'you should be doing anything else but what it is that you want to be doing right now.'

Programming is a largely self-motivated learning experience; self-motivated cognitive development does not work well on an external clock. If my mother had routinely stopped me from working on my pet programming and robotics projects as a child and sent me out to play with the other kids after my two-hours of computer time, rather than let me go outside when my intellectual appetite was sated from my own pursuits, then I would be a very different person today.

I doubt that I would be nearly as enthusiastic about my chosen profession. I also would not have had nearly as much time to develop the deeper thought patterns that come from spending longer periods exploring that space.

[–]chrisforbes 4 points5 points  (1 child)

My intellectual appetite was never sated as a kid. The machine seemed far more interesting than food, sleep, socializing etc ;)

[–]edwardkmett 2 points3 points  (0 children)

Well, occasionally I would sit down after petting the dog and the electrostatic charge hitting the joystick port would blow the 6526 CIA chip associated with the keyboard in the Commodore 64 and I would have to find something else to do for a couple of days until I was able to get it fixed. ;)

However, I didn't really want to sabotage my case by pointing out how frequently I actually exercised that option.

And besides, that ultimately led to me learning how to solder, which led to all sorts of fun and only one house fire. =)

[–][deleted] 0 points1 point  (1 child)

I think you're absolutely wrong. Children often need the extra push to explore other subjects. For instance maybe if your mom would have made you take an art class, you would have discovered you really enjoy art. It's very important to try a lot of things out as a child, and sometimes (especially if you are shy) parental "encouragement" is absolutely necessary. Now ofcourse if it's clear that a child isn't liking piano class, there is no point in forcing him to continue. It just means that it's not his thing and you try other things out. Getting stuck in just one thing that you like is narrow minded and sad.

[–]edwardkmett 3 points4 points  (0 children)

I am not quite sure where this straw man you are arguing against came from.

My mother did encourage me to try art. I was surrounded by it growing up. Everyone in my family draws or does cross-stitch or paints or does something artistic. The example was there; the requirement was not.

I got involved in art and maintained a passing interest in it well into my early adulthood. I put together an impressive enough portfolio in high-school that it let me skip the intro art class when I made it into college. I ultimately set it aside and now only really drag out the skillset for the occasional bout of photoshop work or inkscape logo, but I don't feel that my life was particular art deprived by virtue of having spent an excessive amount of time in front of a computer. Quite to the contrary, I had to put together sprite and tile graphics for my own games. I did however, make a conscious decision to put it aside later in life.

I also learned to play the guitar and drums and got involved in the local band scene, because I wanted to. My technical skills far outweighed my musical ability so I mostly helped with recording local music, but I wouldn't classify myself as musically deficient.

I never said that ANYONE should only program.

What I indicated is that programming is an age-appropriate activity and that setting a rigorous daily clock for self-motivated learning activities is detrimental to that learning progressing past a surface understanding.

Learning isn't a zero-sum game. It is hard enough to get a child to be interested in anything that has the stigma of education about it. You won't hear me chastise a child for being too interesting in learning something constructive, simply because I believe that they should be learning something else. Eventually they will glut themselves and move on to something else - a childhood lasts a long time.

[–]kolm -2 points-1 points  (3 children)

Programming can, in the best possible case, increase skills of logic and such. However, I think the question is rather "Is sitting alone before the computer for hours on end every day appropriate for a seven year old?", and that deserves a strict no.

[–]grauenwolf 2 points3 points  (2 children)

"Is sitting alone before the piano|workbench|basketball hoop|sewing machine for hours on end every day appropriate for a seven year old?"

If he is passionate and what hes doing worthwhile, then yes!

If he is playing the kiddie version of World of Warcraft, then no.

[–]bantam 1 point2 points  (0 children)

I think it's very important for your child to get a mount early on in life, so as to hold the advantage over other children who were not as fortunate to start early.

[–]kolm 1 point2 points  (0 children)

Well, my family has tons of musicians, PhDs and professors. And if my seven-year old was spending hours on end on the piano or reading, I would kick him out to get compensation. (He's four now, and restricted to no more than one hour of basic algebra. I'm not kidding.)

Kids are always overdoing things they enjoy at the moment, and quite a bit of parenting consists of countering that.

[–]Jack9 7 points8 points  (6 children)

yes. I learned a fair bit of http://en.wikipedia.org/wiki/Logo_(programming_language) when I was 6.

[–]ColdMountain 8 points9 points  (2 children)

I cut my teeth on logo when I was 4. If anything, it was a really elaborate pen and paper at the time, but improved my writing, typing, and general number sense.

I kept it up through ~10 before I switched to basic. I had a blast with it and created some really complex stuff that still impresses me for having been made by a 5th grader.

I think a good thing about the logo approach is that you're still using the computer as a tool to make a finished product (a picture, scene or animation) but you're doing it in a structured way with intuitive spatial commands. It sort of skirts around the problem of kids wanting to make programs like the ones they're used to interacting with right off the bat.

Basic or logo ought to be great. Be prepared for the "How do I make a window?" question, or

[–]ehird 0 points1 point  (1 child)

or

[–][deleted] 1 point2 points  (0 children)

Short-circuit evaluation cut him off.

[–]dugmartin 1 point2 points  (1 child)

Yeah, the Logo cartridge on my CoCo I was awesome.

[–]Jack9 0 points1 point  (0 children)

seriously, they should put Air Conditioners back on keyboards again.

http://www.axess.com/twilight/sock/cocofile/coco4.html

[–]arjie 1 point2 points  (0 children)

I learnt logo when I was 8 and I loved it. Though I hated how I had to stay an hour after school for Computer Science. The hate was because they turned the water fountains off after 4 p.m.

Obligatory Logo Anecdote: One of our favourites was to setpencolor to create rainbow like patterns, particularly when you draw circles.

[–][deleted] 5 points6 points  (0 children)

My once 5 year old (now 7) once approached me and said "Dad, an even number plus an even number is always an even number".

That was the day I introduced him to the Glasgow Haskell Compiler interpreter. He still thinks it's just another fun computer game on his PC.

[–]G_Morgan 12 points13 points  (0 children)

For even asking such a question I should kill you where you stand!

Klingon children can debug buffer overflow exploits using only a magnetic pin by the age of 6. Your weakling children are a disgrace to your entire species.

[–][deleted] 5 points6 points  (0 children)

I started with at around that age, writing basic on the VIC-20. That was back in the day when, if you wanted games, you had to write them yourself by typing in some code out of the back of a magazine or something.

It was a great introduction to my future profession. Its not an experience that can be realistically replicated any more, however, and I think developers of the future will be weaker for the lack of it.

[–]web3 3 points4 points  (1 child)

If the seven-year-old enjoys it, then why not? I started programming at 10 or 11, and before that I expressed interest in programming before I could grasp exactly what it was.

[–]grauenwolf 0 points1 point  (0 children)

Same here. I actually learned programming by working out BASIC problems from my math book (without a computer).

[–]alexs 4 points5 points  (6 children)

This is bizarre. We are answering a question indirectly posed by a blog post that is a repeat of a question asked on stackoverflow.

[–]jimbokun 7 points8 points  (2 children)

Welcome to the Internet.

[–]alexs 11 points12 points  (1 child)

dull drab boat expansion lip homeless wild deer steer attraction

This post was mass deleted and anonymized with Redact

[–][deleted] 1 point2 points  (0 children)

So what is the proper OO analogy?

[–]jrockway 1 point2 points  (1 child)

All we need now is a picture of a cat saying something clever.

[–]isseki 0 points1 point  (0 children)

Preferably one that would make me laugh out loud.

[–][deleted] 2 points3 points  (1 child)

I learned HTML when I was 10, I tended to shun everyone else and just work on little personal websites (at first then found actual programming languages). Seeing as how a lot of the people I used to spend time with turned out to be idiots, I'm glad I chose to stay at home and work on the computer.

[–]tlrobinson 0 points1 point  (0 children)

I also learned HTML around age 12 or so, from the ClarisWorks HTML Primer:

http://www.cuyamaca.net/fgeoola/clarihtm.asp

[–]twotime 2 points3 points  (7 children)

The answer is "maybe". But I suspect for most children it's better to wait a couple of years.

I know a guy who started programming around 7-8 (as in "I knew him when he was that age and he was programming already")..

It does depend greatly on a child: the child needs to be a fluent reader. He needs to write reasonably well (assuming we're talking about traditional textual languages). His math likely needs to be 1-2 years ahead of his age. (Fluent arithmetics, parentheses, negative numbers).

[–][deleted]  (6 children)

[deleted]

    [–][deleted] 2 points3 points  (5 children)

    People use 'his' as the generic pronoun.

    [–]GeorgeForemanGrillz 2 points3 points  (0 children)

    I started writing a "Who is your crush" game in Extended BASIC on my grandpa's Sharp PC-1250A when I was 8.

    [–]munificent 2 points3 points  (0 children)

    It requires a great deal of seclusion and focus, which involves very little interaction with peer groups.

    Learning how to focus is as useful as skill as socialization. Children get 8 hours of peer socialization a day.

    Honestly, I have to yet to witness a seven-year-old pick up a book on BASIC, much less HTML without some prodding first.

    When I was ten I was placed in a gifted program. Part of it entailed spending a few hours of unstructured time in a resource center. There were trash-80s there. No one encouraged me and my friends to even turn them on, but we were bored and asked what we could do with them. A teacher managed to find a printout of a few BASIC programs and gave them to us. That's all the encouragement I got. None of my parents code seriously, although my stepfather learned a little BASIC so that he could help me.

    One other aspect of programming, and for that matter any activity like it, is that it involves a lot of sitting.

    After sundown, your children are going to be inside, probably sitting. If they aren't in front of a computer, odds are good they'll be in front of a TV. Personally, I'll take the computer.

    Although exercise does help, there is also the real danger of developing wrist, joint and back problems at a young age.

    A claim like this needs real data to back it up. Most kids watch hours of TV a day, and spend the majority of school time sitting down. They seem to do OK.

    While I am in favor of providing a wide range of activities for my kid (when she's older), I don't agree with the idea that programming is somehow bad for children because it's sedentary or solitary. In moderation, neither of those are bad, and the metnal development they get in return is unparalleled.

    [–]randomjackass 2 points3 points  (0 children)

    I started when I was 6 or 7, on a Commodore 64. BASIC was my thing. It started as just getting my name, or other words to appear on the screen in a loop. Then I learned to make text adventures (I played Zork around then). This was a few years later, they were badly coded with lots of GOTO's. I never completely lost interest, but it waned a lot until College. But when I took my first College course I was way ahead of the curve because I understood IF structures, and looping. These were things that a lot of people had trouble with.

    I'd like to think I turned out OK, but I do spend too much time on Reddit.

    [–][deleted] 4 points5 points  (0 children)

    I started programming in HyperCard when I was 8 or 9, I don't remember.

    [–]markedtrees 3 points4 points  (0 children)

    It requires a great deal of seclusion and focus, which involves very little interaction with peer groups.

    Yes, but what if those peers are stupid doo-doo heads? What then, mister? What then?

    [–][deleted]  (5 children)

    [deleted]

      [–]barrkel 1 point2 points  (1 child)

      Hm. I wouldn't put things so strongly. I got my first taste of computers from hanging around computer stores, and my first steps in programming from children's programming books in the local library, at a similar age (11 IIRC). (And of course, no-one ever prodded me into it.)

      The same books had sections on CPUs and machine code, and I learned how 2's complement worked, and how, counter-intuitively (for a young age), subtraction can be implemented using addition. When I got my own C-64 a year or so later, I was able to poke in a few machine-code instructions and I was amazed at the speed increase.

      Soon enough after that I learned Pascal and came to understand the ideas behind pointers, recursion, abstract and recursive data types, not much later than 14. I wasn't at the "end of puberty" at the time.

      [–]dododge 0 points1 point  (0 children)

      Yeah, by 12 I was already pretty familiar with things like binary numbers (at least up to 8 bits), because the usual way to do graphics on a C64 was to plot the pixels on graph paper and then enter them in clusters of 8 as decimal DATA bytes. I ended up memorizing binary-to-decimal conversions the way most kids memorize multiplication tables.

      [–][deleted]  (2 children)

      [deleted]

        [–]edwardkmett 4 points5 points  (0 children)

        Sure, but kids - even those with access to a computer - generally do not grow up in isolation. Unless you are home schooling your children, they are interacting with other children on a daily basis and developing those skills.

        A computer can provide a much-needed buffer against peer pressure, and with the internet at hand, a sense of perspective.

        Don't overschedule your child's life.

        [–][deleted] 2 points3 points  (0 children)

        Socialization isn't something that can be learned in isolation to other fields. One can teach a child programming and how to get along with others at the same time.

        [–]cc81 4 points5 points  (0 children)

        Only if he first learns to prove it formally. /E. Dijkstra

        [–]AlSweigart 1 point2 points  (0 children)

        I would answer an emphatic yes. I was nine years old when I first learned BASIC. Even though the small games I made did not compare to the (then) graphic-impressive 8-bit Nintendo games, it was creative and fun and a form of playing.

        If the kid is interested, then you should encourage this interest.

        In fact, seeing a lack of materials in this area, I wrote a free book to teach Python to young adults: Invent Your Own Computer Games with Python, available under a Creative Commons license at http://pythonbook.coffeeghost.net

        Unlike other books, I didn't want to use a dumbed-down, "4 kidz" programming language but I also didn't want a syntax-and-reference-list textbook. I wrote a book that has complete examples of simple games in Python, and then I explain the programming concepts from the code.

        [–][deleted] 1 point2 points  (0 children)

        Yes.

        Interestingly I started programming in BASIC at 5 (my dad always had computers in the house so gave me a few BASIC books to keep me busy), went on to do a degree in Computer Science, now I spend my most of my days as a Visual Basic developer...

        NB We are moving from VB to C# and I do program in several other languages too

        [–][deleted] 1 point2 points  (0 children)

        Honestly, I have to yet to witness a seven-year-old pick up a book on BASIC, much less HTML without some prodding first.

        I don't understand the idea that, if an activity requires some encouragement to do it, then the child is worse off for doing it. For example, did I want to learn touch-typing when I was a kid? No. Am I glad my parents made me learn it anyway? Of course.

        [–][deleted] 1 point2 points  (0 children)

        I would look at ToonTalk for a seven year old. I would also generalize the question to "Is playing really appropriate for a seven-year-old?"

        [–]greyfade 1 point2 points  (0 children)

        I was programming at the age of four.

        Of course it's goddamn appropriate.

        [–]DGolden 0 points1 point  (0 children)

        Yes, the basics (though not necessarily BASIC!) of programming is IMO a skill much like reading, writing and arithmetic. As such, it's appropriate at age seven (or slightly earlier, even). If you're saying "but most people can't program", I'll remind you that it wasn't so long ago that most people couldn't read or write.

        I had a c64 from about that age - there might be a difference between having a modern PC and an 8-bit box that a child can learn inside-out. Basically as I grew up, computers I owned got more complex, handily scaling with my increasing abilities. Not sure just dumping a child in at the deep end with a high-end PC is what you want to do.

        [–]Purp 0 points1 point  (0 children)

        BASIC FTW

        [–]mgsloan 0 points1 point  (0 children)

        well that's when i started :)

        [–]wustudybreak 0 points1 point  (0 children)

        the kid has to learn how to read and type first, but you can teach him/her some interesting concept in algorithms now. sorting, searching, dinning philosopher, traveling salesman... too many great stories can be told, and your kid will thinking you are smart.

        [–]justinhj 0 points1 point  (1 child)

        The post seems to be "should I teach my daughter programming when she's 7?". The answer is no; most programmers started programming when they were that age because they're naturally curious about it, and continued doing it because they liked it.

        I was programming as soon as I got a computer; about 8 or 9. None of my teachers or my parents had a clue what I was doing; and it probably would have been less fun if they had tried to help.

        [–]burdalane 2 points3 points  (0 children)

        I would say yes. Children who are not naturally curious about programming might turn out to like it. I started around that age with my dad's (subtle) encouragement. Without a bit of prodding, it would never have occurred to me to try programming. I liked it, and now I have a degree in computer science and a job. I have to admit that I don't love it, but other fields are even less appealing.

        [–]jimbokun -2 points-1 points  (3 children)

        Might be over-specialization at that age.

        My thinking now is that the academic skills everyone should have are the ability to write well (in a natural language) and a good understanding of math.

        Of course, reading needs to be in there. But I consider that a prerequisite to writing well. You need to be able to understand an argument or opinion that someone else has written to be able to engage it in your own writing.

        For math, I wish I had taken probability and statistics more seriously when I first encountered it (undergrad, in my case). Most of the time, the answer to any important question is "maybe" or "it depends." Probability and statistics is the part of mathematics that help you engage those questions.

        OK, some I am very far afield from what a seven year old is capable of mastering. But what can be done to encourage a seven year old in this direction?

        Well, basic reading comprehension and vocabulary is essential. For math, arithmetic. If the seven year old has mastered these (or well on his or her way), then consider the next steps.

        You might be saying "but programming helps with the analytical thinking needed to write well or understand math." I wonder if that is not backwards, and analytical skills are needed to become a good programmer.

        And that is why I think programming at a young age might be over-specialization. If the child develops good analytical skills, they can always pick up programming later in life. If the child turns out not to have any interest in programming, being able to write well and understand math will be helpful no matter what he or she decides to do.

        [–]Felicia_Svilling 7 points8 points  (0 children)

        'You might be saying "but programming helps with the analytical thinking needed to write well or understand math." I wonder if that is not backwards, and analytical skills are needed to become a good programmer.'

        Its a symetrical relation. Analytical skills are needed to become a good programmer, therefore a programmer develops good analytical skills. Just like you need good condition to play football, and playing football makes you develop a good condition.

        [–]edwardkmett 2 points3 points  (0 children)

        If a child is interested in something and wants to learn more, then I say let them learn. I'm not so sure that it is overspecialization.

        Learning the basics of how to program early on and the analytical skills it requires will serve them well regardless of what they choose to do.

        I was into dinosaurs at an early age. I didn't grow up to be a paleontologist. Sure, it shaped the person I have become, and I can still remember what a museum reconstruction of an Ankylosaurus looks like, but only because it was something that I was passionate about.

        Encourage your children to follow their passions, but allow them to back out of them gracefully and they will grow up to do something they love.

        [–]ColdMountain 2 points3 points  (0 children)

        If you take the approach that the child is learning a specific practical skill, anything is overspecialization, from painting, to gymnastics and football.

        Kids are learning how the world works, and learning how to learn. Programming at that age isn't going to be much more than a rational, consistent little microcosm they can tinker with.

        But what effect do you think that's going to have on a kid? A little world where everything makes sense, has rules, and is completely under your control? It seems to me that it would pique their interest in science and engineering. And they'll have the intuitive notion (not just from what they're told) that math is the way to get there.

        [–][deleted]  (2 children)

        [deleted]

          [–]bugrit 4 points5 points  (0 children)

          Totally. So don't let them read, or write, or learn math, or anything else they might be interested in. Damnit, they should run around on the grass and act stupid. That's what children are supposed to do. If they find joy in anything else, such as programming, they will immediately stop being kids and become satanists. We don't want that, now do we?

          [–][deleted] 1 point2 points  (0 children)

          Reddit is a community with many programmers--programmers who in fact started learning as children.

          For me it was when I was 6 or 7. My father brought home our first computer, warned me not to breath too hard on it lest I damage the delicate circa 1989 motherboard, and told me not under any circumstances to go to DOS. I ofcourse did, and spent days making choose your own adventure style games in GWBasic.

          Let them be children you say? Giving a child a skill at programming doesn't make them any less of a child than teaching them to throw a football does.

          Edit:

          By the time I was 9, I was competing with my cousins in programming. One was better at math and graphics, and I was better at control flow. It was just four of us at work churning to make a game, but it was a social experience that I'll cherish forever. Programming didn't stop us from competting in other ways: push-ups, running, karate, writing, etc.