Teaching kids to code


  • 🚽 Regular

    I think he's got it ass-backwards. Creativity and inquiry are tangential, structured thinking is much more important and you get that from learning how to code.

    You also can't teach a thirst for understanding, some people simply don't care what the Wizard behind the curtain is up to.

    All you'll get from not teaching kids to code is...kids that can't code.


  • Banned

    @Cursorkeys you're underestimating the impact that a little child's activities have on their future character. You absolutely can teach them thirst of understanding - but only until they're about 10. The same way you teach them responsibility, kindness, modesty, cautiousness - it's called parenting. Sure, part of the character is genetically determined and there's no way to change that - but a lot depends on the environment and early activities. You can absolutely teach children to be curious, and it will stay with them for a long time (if done right, and if the child isn't genetically predisposed to not care - most aren't).

    As for teaching to code specifically - I'm not sure one way or the other. On one hand, starting early absolutely helps (I've started writing my first C++ programs when I was about 11, and it greatly helped my early career). On the other, I'm not sure if a preteen child is really capable of grasping the more complicated concepts of programming like algorithms, abstraction, indirection - basic things that you absolutely cannot do without when doing software development for real, but that cannot be taught when writing very small pieces of code like on all those "let's play a game but with code instead of controller" sites. So that would render learning to code ineffective - and there's huge opportunity cost here: instead of coding, they could be doing something else, something that really cannot be taught at later age (like playing violin - maybe it's just that I don't know many musicians, but I never heard of any professional violinist who didn't start before 10).


  • Considered Harmful

    @Cursorkeys

    I understand his point. Mind you, I'd still try to teach my son to code if he had any talent or interest in it (which he doesn't seem to have so far), but more because it's something I care about, as something we can connect in. If/when I'm ever going to do this, it will indeed be much more about thinking like a programmer as opposed to the mechanics of any particular language. But that's not what's usually happening in those courses where kids get "prepared for the future" by parents who think you have to start the training for commercial exploitability before they're out of the nappies. The time kids spend at an early age learning how to follow the particulars of some hipster tech that will be out of date before they have their first pubic hair would be better spent doing kid stuff that actually teaches them creativity. And, exceptions notwithstanding, that means tangible things for most of them.



  • The guy seems to conflate learning the fundamentals of programming and his personal experience of diagnosing a non-trivial defect in his software that was managing multiple remote machines.

    It is probably a good idea for children to learn the basics of how to program a computer for no other reason than they will have an appreciation of what is actually going on in their devices. In an world where almost everything has a small computer running in it, it seems sensible that future generations should have a basic concept of what is happening under the hood.


  • BINNED

    The part I don't understand is, he goes on about taking apart a chair and teaching his son how to use the wrench. Then about making cookies, and teaching his son about ingredients and cutting cookies properly.

    So, the difference between putting pieces of a chair together, putting flour, eggs and whatever in a bowl and stringing commands together properly is... What? Every one of these are a technical skill on some level. They involve tools to use and parts that have to be assembled in a specific order.

    I don't see a huge difference between a wrench and a screw and keyboard and a function call, on an abstract level.


  • ♿ (Parody)

    @Onyx I read this as an article that got published because it seems to have a contrarian message on the surface, even though he contradicts himself as you mention with the chair and the cookies. He's really saying that you shouldn't force kids through some 101 level coding class, which seems fair enough, but to make it into an article it needs all those other things to make him sound wise.


  • BINNED

    @boomzilla I dunno, I loved LOGO as a kid, I don't think it would kill anyone to mess with that at least.

    I wouldn't give a 6-yo kid C, mind you.


  • ♿ (Parody)

    @Onyx oh yeah, let the mess with stuff and answer their questions, maybe even give them little challenges. That's all different than a 101 / bootcamp setting.


  • BINNED

    @boomzilla Well, I haven't read the books he's referring to, nor visited any of those camps, so I have no opinions on how good those particular materials are. But TFA seemed to disagree with the concept itself. Or, it was just written too smartly for me.



  • I think doing a few basics is okay. My first exposure to code was QBasic, and I was probably 8 - 9 years old. I didn't go very deep into anything but I learned that statements are executed line-by-line, and was able to do a little basic math and print stuff to the screen. I don't think I ever got into conditionals, branching, for-loops, functions, etc. But even the little bit I did learn helped a lot with my understanding of computers.


  • ♿ (Parody)

    @Onyx suppose his kid started showing interest in programming. Would the dad take the same approach there as he did with the chair or the cookies or would he just tell him no? The title implies the latter but everything else in there implies the former.

    You'd teach the kid the syntax, etc, as he asked / needed it for whatever he was currently exploring, but not as some planned ahead curriculum.


  • Banned

    @boomzilla there's a chance the headline was written by someone else - someone who's not a programmer themselves but is very good at writing clickbaity headlines.


  • BINNED

    @boomzilla I guess so. Dunno, it just reads overly hostile to me. After all, there are books that teach kids about animals, numbers, letters, social interaction... but programming is suddenly a step too far?

    Again, it depends on the material, naturally. If the book starts off with sorting a B-Tree I'd shove it up the publisher's /dev/null myself. But I'm not hostile towards the concept itself immediately. Also, the very existence of a book or a camp does not imply to me that children should be forced into it just because they exists. If parents are forcing children into doing stuff like that even if the kids hate it, that's reflecting on the parent, not necessarily on the resources.


  • ♿ (Parody)

    @Onyx said in Teaching kids to code:

    After all, there are books that teach kids about animals, numbers, letters, social interaction... but programming is suddenly a step too far?

    I think books would be useful for them as a reference. If there were some specifically for kids similar to the stuff you mentioned I think they'd look very different from the sorts of programming books I'm familiar with. I'd guess there are some out there already but I've never seen nor looked for them.


  • Banned

    @Onyx said in Teaching kids to code:

    @boomzilla I guess so. Dunno, it just reads overly hostile to me. After all, there are books that teach kids about animals, numbers, letters, social interaction... but programming is suddenly a step too far?

    I think it's more aimed at the kind of parents who enroll their kids for lots and lots and lots of different courses - swimming, martial arts, piano, foreign languages, horse riding - all at once. Programming is currently the new big thing in this market.


  • 🚽 Regular

    @Gąska said in Teaching kids to code:

    @Cursorkeys you're underestimating the impact that a little child's activities have on their future character. You absolutely can teach them thirst of understanding - but only until they're about 10. The same way you teach them responsibility, kindness, modesty, cautiousness - it's called parenting. Sure, part of the character is genetically determined and there's no way to change that - but a lot depends on the environment and early activities. You can absolutely teach children to be curious, and it will stay with them for a long time (if done right, and if the child isn't genetically predisposed to not care - most aren't).

    I'm not a parent myself, so it's entirely possible I am underestimating it. I think that teaching should be done alongside then.

    @Gąska said in Teaching kids to code:

    On the other, I'm not sure if a preteen child is really capable of grasping the more complicated concepts of programming like algorithms, abstraction, indirection

    Possibly not, although I remember getting time with a Turtle as a preteen and that was really good for simple loops, conditions and instruction ordering/flow (and for ramming table/people):

    0_1544112349096_93296b8b-8fc8-4283-abc2-f1d392debc7c-image.png
    0_1544112325864_dd9e5733-eb69-487e-941d-af11fb92ddb6-image.png


  • Banned

    @Cursorkeys said in Teaching kids to code:

    @Gąska said in Teaching kids to code:

    On the other, I'm not sure if a preteen child is really capable of grasping the more complicated concepts of programming like algorithms, abstraction, indirection

    Possibly not, although I remember getting time with a Turtle as a preteen and that was really good for simple loops, conditions and instruction ordering/flow (and for ramming table/people)

    Loops and conditions are straight forward. But try explaining reference semantics to a child, or teach them how to restate a given problem in a way that lets them apply a stock ready-made solution to it - both of which are absolutely essential for software developers, but neither is required when only writing simple code snippets.


  • Fake News

    @Onyx said in Teaching kids to code:

    I wouldn't give a 6-yo kid C

    How could that possibly be any worse than requiring an average programmer to use C? 🚂


  • 🚽 Regular

    The article is horribly written, so much that I had to re-read it a few times to get his fucking point.

    He appears to have the following axioms:

    • Kids' coding education consists of learning syntax and not problem solving
    • Kids' coding education does not teach how to make something "well-designed" and considers a "working solution" to be good enough, when in reality a marketable coder in the future needs to learn how to properly design a solution.

    Both of these axioms are BS:

    Most of the coding exercises I've seen now actually remove the syntax, as it's often taught using drag-and-drop blocks that fit like puzzle pieces. The syntax is basically provided for you; your task is to fit them in the proper fashion.

    Software design is an ever-developing skill. I've been doing software engineering both as a child hobbyist and a professional for 20+ years. I'm still discovering new ways to factor code in the most elegant and efficient manner. In the end, it's often a derivative of algebraic methodology. Factor out the commonalities, reduce repeating expressions, and simplify the expression. It's just that unlike the usual quadratic formulas, FOIL methods, and "solving for x" that academic algebra teaches, your code is the equivalent of a math equation with dozens of variables and sub-expressions. You can't expect a child to pick up those nuances, but you can still put them in a path to understanding that when they are ready. I'd say that by the time the child says, exasperated, "What is the point of algebra?!" as I did in grade school, I'd revisit the coding, and give some examples of how it's a useful skill to have.

    All that being said, I do agree that coding isn't something you should force on someone. Giving someone the message that they need this skill to be successful in life could cause a lot of harm from someone who either has other interests or is just not inclined to succeed in coding. I've always been of the opinion that your goal as a parent or an educator is to give your kid the opportunity to try different talents out, and if something clicks, encourage them to pursue it as a discipline. Not every kid is going to be gravitated towards computer science, and there's nothing wrong with that. It would be terrible to give them the impression that if they aren't into that, they'll be shit in life.



  • @Gąska said in Teaching kids to code:

    @Cursorkeys said in Teaching kids to code:

    @Gąska said in Teaching kids to code:

    On the other, I'm not sure if a preteen child is really capable of grasping the more complicated concepts of programming like algorithms, abstraction, indirection

    Possibly not, although I remember getting time with a Turtle as a preteen and that was really good for simple loops, conditions and instruction ordering/flow (and for ramming table/people)

    Loops and conditions are straight forward.

    But they are the basis of programming. Simply formulating a problem in a series of individual steps that are executed one by one and can be repeated is a concept that some people have a very hard time grasping, and I have the feeling that, like learning to cycle or another language, being exposed to that when young can help.

    But try explaining reference semantics to a child,

    That's more of the complexities of the actual job of programming, vs. the basic idea. Like if you're teaching a child to cook, you're just going to mix ingredients, but not going to tell them about how some pieces of meat are better slow-cooked and some other can be eaten raw and how that relates to the muscular fibres and so on. That's important to be a cook, but when you start with the basic principles, getting them to cook an hard-boiled egg is already an achievement.

    or teach them how to restate a given problem in a way that lets them apply a stock ready-made solution to it

    That one is more a matter of pure maturity. I don't think a child can really easily grasp this idea. This is the same when teaching them science, you start with "random" experiences and then later on bind them all together with abstract laws, but you don't start by telling them about abstract things like forces and mass and momentum, that's just too abstract.

    So I agree with your premise that "children cannot grasp the more complicated concepts of programming" but at the same time, it's true for any activity (cooking being a nice example, but that also applies to learning an instrument, which you mentioned -- an 8 yo playing piano is just pressing keys, they don't know much about writing musical sentences and so on) and yet we teach them those. So I don't see why we can't do the same for programming.


  • kills Dumbledore

    I won't force my kids into coding but I'll certainly encourage it and provide them with Scratch or similar when they're old enough, and move them on if they enjoy it. Knowing even a little bit of programming is useful for demystifying computers, and is a valuable life skill even if you don't go into programming as a professional



  • @lolwhat said in Teaching kids to code:

    @Onyx said in Teaching kids to code:

    I wouldn't give a 6-yo kid C

    How could that possibly be any worse than requiringteaching an averagejava programmer to use C? 🚂

    There's something to give you some nightmares...


  • Banned

    @remi said in Teaching kids to code:

    So I agree with your premise that "children cannot grasp the more complicated concepts of programming" but at the same time, it's true for any activity (cooking being a nice example, but that also applies to learning an instrument, which you mentioned -- an 8 yo playing piano is just pressing keys, they don't know much about writing musical sentences and so on) and yet we teach them those. So I don't see why we can't do the same for programming.

    Because unlike cooking or playing piano, you can't do anything useful at all with basic programming knowledge alone - and also, basic knowledge is so easy that it can be taught successfully at pretty much any age very fast - compare to musicians or athletes, who either start very very young or never achieve anything (except in rock). It's not that there's something inherently wrong with teaching kids to program. It's just that whatever you teach them, can just as well (and I mean "just as well" very literally) be taught later, in their mid-teens, and whatever they learn before mid-teens is useless for any practical purpose anyway. And in the meantime, learning programming takes time in which they could've learned something actually valuable - something that's useful right off the bat (like cooking) or something that they'll never be able to catch up later (like athletics). It's all about opportunity cost.



  • @Gąska said in Teaching kids to code:

    @remi said in Teaching kids to code:

    So I agree with your premise that "children cannot grasp the more complicated concepts of programming" but at the same time, it's true for any activity (cooking being a nice example, but that also applies to learning an instrument, which you mentioned -- an 8 yo playing piano is just pressing keys, they don't know much about writing musical sentences and so on) and yet we teach them those. So I don't see why we can't do the same for programming.

    Because unlike cooking or playing piano, you can't do anything useful at all with basic programming knowledge alone

    I guess it could be disputed whether cooking an hard-boiled egg or playing "happy birthday" is really a useful thing, but without splitting hairs endlessly, let's say I agree with you on that.

    and also, basic knowledge is so easy that it can be taught successfully at pretty much any age very fast

    That part I'm not so sure. I only have limited experience on that, but I spoke with some people teaching the basics of programming and all signs point to the fact that there seems to be a significant group of people who simply don't get programming -- at all. Not "get it" as in "are interested in it", but "get it" as in "understand the basic logical steps behind it". Like, I don't know, some people can't sing in tune. Not "don't want to spend the effort to", but really, honestly, deeply, physically cannot. And I do believe that, as far as programming is concerned (singing is different... my metaphor stops working here!), a share of those could have, if they were taught when their minds were still malleable enough.

    Like learning a new language is easier when you're a child -- not that you can't do it later, and some people do manage it, but while doing it as an adult takes a significant effort and some people never really manage it, doing it as a child just requires being exposed to enough of the language. Or like any of the other examples that you mention where starting as a kid is easier, really.

    I believe that programming is the same, at least in some part.

    And in the meantime, learning programming takes time in which they could've learned something actually valuable

    If you start this way, you'll have to justify why you'd let children play, or watch TV, or practice a sport (or any activity) when they're not in the top-tier of their age group. If your criterion for deciding whether an activity is worth for children is the best value they'll get from it as adults, I'm not sure we're going to agree on a lot here.



  • @Gąska I disagree.

    I learned to program on 8bit micro-computers. I remember reading about what an interpreter was, compiler, ROM, RAM etc and what each part of the computer did in the manual. While obviously the tech we have today is leaps and bounds ahead the same principles generally apply. When I went to uni programming assignments were relatively easy because while the languages I had used where totally different, conditional, loops, procedures etc were concepts I already understood so it was a matter of reading the manual on how to perform them rather than learning the concept itself.

    Once you we started doing OOP things got more difficult because there are quite a few concepts you have to learn all at once. But you can write quite a lot of useful code without it being OO. I've got quite a few powershell scripts that are rough and ready which make data processing a breeze.



  • I picked my daughter's charter school partially because they mention teaching coding at elementary grades.

    I also liked it because of other enrichment activities, chess, Taekwondo, innovation lab (basically they can tinker with building stuff, problem solving, etc across disciplines).

    Of course, I would love her to be interested in coding but I like the diverse programs the school has.

    One of the schools, she was accepted focused all it's curriculum around music and while I want her to love and appreciate music, what if she likes other things more? And this school would have been way more convenient location wise (.25 mile vs > 1 mile).

    I did my first coding in 5th grade on a TRS-80. We had one in our class and my grandmother had one. I didn't do anything else until HS learning Pascal in AP Comp Sci and then not again until several years after I graduated college (with a degree in biology and decided not to go to med school).

    There's no rush. I will encourage her what ever she wants to do.


  • Considered Harmful

    @Karla said in Teaching kids to code:

    I did my first coding in 5th grade on a TRS-80.

    Hey, same here!



  • @pie_flavor said in Teaching kids to code:

    @Karla said in Teaching kids to code:

    I did my first coding in 5th grade on a TRS-80.

    Hey, same here!

    Jesus, how ancient was that machine? Because aren't you like less than half my age?


  • Considered Harmful

    @Karla said in Teaching kids to code:

    @pie_flavor said in Teaching kids to code:

    @Karla said in Teaching kids to code:

    I did my first coding in 5th grade on a TRS-80.

    Hey, same here!

    Jesus, how ancient was that machine? Because aren't you like less than half my age?

    It's been held constant to keep it admissible on standardized tests.


  • Considered Harmful

    @Karla that depends on how old you are. And yes, the thing was ancient. It died recently; the display capacitors caught fire due to dust, and I don't think they make replacements anymore.


  • Discourse touched me in a no-no place

    @Cursorkeys said in Teaching kids to code:

    0_1544112349096_93296b8b-8fc8-4283-abc2-f1d392debc7c-image.png

    BBC Micro?

    I remember Podd (although until recently I thought it was called Popp).

    https://www.youtube.com/watch?v=G090ju-DpqU


  • Considered Harmful

    @pie_flavor They do. I've been thinking of the TI-81 this whole time. On which I had a really awesome triangle solver. See, it would take your knowns, then rotate them to a standard form and apply either law of sines or law of cosines to them, then rotate the results back along with the knowns for display. It was awesome.



  • @pie_flavor said in Teaching kids to code:

    @Karla that depends on how old you are. And yes, the thing was ancient. It died recently; the display capacitors caught fire due to dust, and I don't think they make replacements anymore.

    I was in 5th grade in the early 80s.



  • @loopback0 said in Teaching kids to code:

    @Cursorkeys said in Teaching kids to code:

    0_1544112349096_93296b8b-8fc8-4283-abc2-f1d392debc7c-image.png

    BBC Micro?

    I remember Podd (although until recently I thought it was called Popp).

    https://www.youtube.com/watch?v=G090ju-DpqU

    It is for sure. We had these at school.



  • @pie_flavor

    https://www.youtube.com/watch?v=XT5SYlqM7wk

    It is quite funny though that the guy doesn't know how to spray paint.


  • Considered Harmful

    @Karla Then I am, in fact, less than half your age.


  • Considered Harmful

    @pie_flavor said in Teaching kids to code:

    @Karla Then I am, in fact, less than half your age.



  • @Karla said in Teaching kids to code:

    I was in 5th grade in the early 80s.

    Oh, a youngun. (I was in high school then)


  • Notification Spam Recipient

    @pie_flavor said in Teaching kids to code:

    @Karla that depends on how old you are. And yes, the thing was ancient. It died recently; the display capacitors caught fire due to dust, and I don't think they make replacements anymore.

    Actually, it's entirely possible that all the components you might need to replace are still available. After all, it's stuff like capacitors and wire.


  • Considered Harmful

    @Gribnit No, not yet.


  • Discourse touched me in a no-no place

    @Gąska said in Teaching kids to code:

    It's just that whatever you teach them, can just as well (and I mean "just as well" very literally) be taught later, in their mid-teens

    The thing I'd want them to learn early is that a computer is a machine that follows instructions, and that everyone who wants to can learn to write those instructions for themselves. Oh, there'd probably be a bunch of other stuff too, but the real goal is for them to not think of computers as purely magic boxes. They can start thinking of hardware as purely magic boxes once they become software engineers…


  • Banned

    @dkf said in Teaching kids to code:

    They can start thinking of hardware as purely magic boxes once they become software engineers…

    Software too.


  • BINNED

    @dkf said in Teaching kids to code:

    They can start thinking of hardware as purely magic boxes once they become software engineers…

    I contest that they are at least partially magic. Transistors work because quantum. So do some of the touchscreens these days. Fucking quantum, how does it work?


  • BINNED

    @Gąska said in Teaching kids to code:

    software engineers…

    software engineers are magical boxes too ... you stuff things in and shit comes out


  • Banned

    @Luhmann that's called metabolism.


  • BINNED

    @Gąska said in Teaching kids to code:

    @Luhmann that's called metabolism.

    don't use them fancy words on me boy!


  • Considered Harmful

    Programming is a branch of applied mathematics. An exceedingly difficult branch, perhaps the most complex in practice. A very large number of conditions and variables are involved at even the most simple tasks.
    Encourage curiosity in all of STEM subjects, do not focus on this coding thing. Better mathematicians should then try programming, that is, apply their rigorous logic and discipline to a different class of problems.
    One of the most unfortunate aspects (and developments) of programming is that it is deceptively simple - Timmy had 5 apples and Johnny stole 4 of them. The task at hand seems to be a first grade subtraction. In programming it isn't. One must understand or even define what apple is, what stealing is, does Timmy still own the apples even though Johnny already ate them, and so on. The simple solutions will cripple the mind. Such mind will then attempt to invent complexity on top of simple things without appropriate understanding. I've done that, I [have to] keep doing that and I regret that. Arguably, I can't help myself.

    The only other outcome are Agile babbling Javascript idiots cranking MEEELIONS of LoC of garbage. But I'd rather have a kid be a proper garbageman than one of those.

    On the other hand, I don't know squat about parenting. Or programming for that matter.


  • BINNED

    @Applied-Mediocrity said in Teaching kids to code:

    I don't know squat about parenting

    nobody does until it's too late



  • @Onyx said in Teaching kids to code:

    Or, it was just written too smartly for me.

    From what I've heard about the article (I haven't read it), it does sound like it was written too smrt-ly for me, too. It may have even been brillantly smrt.


  • Considered Harmful

    @Onyx said in Teaching kids to code:

    @dkf said in Teaching kids to code:

    They can start thinking of hardware as purely magic boxes once they become software engineers…

    I contest that they are at least partially magic. Transistors work because quantum. So do some of the touchscreens these days. Fucking quantum, how does it work?

    The magic comes from the smoke that they are stuffed with in the factory. If you let it out, the device stops working.


Log in to reply