1. 31
  1. 43

    When the kids are still learning to read, text will probably be intimidating.

    Slow down. We don’t need to try so hard to get five year olds to code.

    1. 2

      We don’t need to, no. But as a toy, I don’t see anything inherently wrong with this – more fun, more better.

      1. 1

        Yes, and learning to read is already learning to code in some way. Programming languages

      2. 33

        In other news, resistors and capacitors are keeping kids from electronics, and getting their hands icky is keeping kids from cooking.

        It’s been proven that saying programming is easy is a bad idea, it isn’t. Also all instructions given to a computer in anyway get translated at some point or other into machine code (best represented by lists of text instructions if you want a human to read it). Pretending that’s not true doesn’t seem useful.

        It would be better to frame this conversation in terms of the group of people who want to make computing in some way accessible to other people. What are they trying to achieve and what do they want out of this ‘coding’ experience. Let’s just stop pretending that that has anything to do with programming, which is always going to be processing lists of instructions.

        1. 24

          The whole point of the article is that their playtesters were intimidated from starting the game because the text UI looked too scary, but if the game started with icons and gradually switched over to text kids had no trouble with it.

          1. 14

            That’s funny because for me it was exactly the other way around. Ok, I was a bit older than five years old, twice that even. Still a young kid. Back then I discovered mIRC and learned how to write mIRC scripts. To this day IRC has been my favorite protocol: next to being able to easily talk to each other, the event based potential is just very appealing.

            (Ok, anekdote time. If there was an ability to hide the rest of my comment underneath a “read more” link, this is where you could click. But since there isn’t any such functionality, the best I can do is offer my apologies to anyone who is displeased by the length of my comment. Clicking on the [-] next to my nick will hide the entire thing.)

            Maybe a year or so later if memory serves me right — I can’t have been much older than 12 because I can still remember both the old house where I used to sneak into the other room to steal, err, borrow my stepdad’s external ISDN modem and extremely long phone cable; and the monthly fights we had about the phone bills — an online friend told me that you didn’t have to use an IRC client (intended to be used interactively) for automation: someone named Robey Pointer had designed IRC bot software called ‘eggdrop’.

            (My friend also kept going on about how envious he was of Robey’s last name which initially made me reconsider our friendship, it sounded so weird that it made me unsettled – many months later a different friend unsettled me again when he told me about pointers, causing me to realize that my first friend actually might not have been that weird at all)

            This ‘eggdrop’ thing made me very curious and I couldn’t wait to give it a go. So I got onto my 486SX with Windows 95, downloaded and extracted the zip file, executed eggdrop.exe and.. wait.. what was this? All I saw was a command prompt that did appear to show some text, but it disappeared before I could make sense of it.

            So I opened up a command prompt myself, typed ‘eggdrop.exe’, and read something cygwin something, and about there not being a user file, et cetera. Alright, my curiosity was now really piqued.

            Eventually I got it running and was very pleased with myself – anyone who’s ever configured an eggdrop knows that it’s not exactly trivial, and even more so when most of it is way outside the things you know about.

            Then I discovered that it actually wasn’t for Windows at all. Thanks to the integrated Cygwin it worked, but as it turned out most people would use something entirely different from Windows. Called Linux.

            And that’s how I discovered and got fond of Linux. First RedHat, then SuSE, then Slackware… and to this day, 20 years later, I still enjoy using the terminal, and IRC, and all kinds of other exotic things that people call anything from unappealing, to downright scary, with ‘complicated’ somewhere in the middle. I don’t think it’s any of that. All one needs is a curious mind, the ability to disregard what other people say about it, and fun ideas. I didn’t care about how esthetically pleasing any of it was, at all. I cared because of how thought provoking it was; a new dimension, and mine to explore.

            To me this is where the heart of the matter is and I think it’s where most people are mistaking - in my view, computers in and of themselves aren’t fun. Computers shaping people aren’t fun either. People shaping computers is where the fun’s at.

            What makes working with computers so intriguing, especially from an engineering perspective, is that you’re immersing yourself into a world of codified thoughts made entirely by human brains. The choices, and even psychology behind things. It’s like a labyrinth: intelligently designed by humans, so there simply has to be logic to it.

            Discovering the logic. That’s the appeal.

            1. 7

              I was a bit older than five years old, twice that even. Still a young kid.

              That’s a huge difference in terms of reading skill. Maybe bigger than the additional reading skill you acquire between ten and twenty years old.

              I think this article has more to do with early childhood development than it does with teaching programming in general. The more I think about, the more I’m impressed that children that young were able to do any kind of programming.

              And the more I think about it, the more I hate the title.

              1. 2

                Agreed. Plus, the more I think about it, the less I trust the research: you can never go wrong with 5 year old subjects. Totally unreliable.

                But, gah, I’ll admit. I wrote most of my comment before realising how old they were. So that explains that.

              2. 3

                This was very unexpected and gratifying; thanks. (My last name got a lot of laughs in programming classes, too.) :)

                On topic, I think “the thrill of solving puzzles” is a big part of what got me into coding as a kid, too. I still remember Silas Warner’s “Robot War” and trying to figure out why one bot always won. Part of the disconnect here may be that 5 is too young for most kids to find fun in written language, so the puzzles have to be scaled down. But my instinct agrees with yours: dropping a puzzle in front of a kid and saying “this should work, if you can figure it out” is usually a great way to motivate them to learn something.

              3. 4

                It’s more likely a lack of autocomplete and red squigglies. Also having a cheat sheet on hand would probably help when getting started.

                1. 3

                  “Danny! Don’t eat the cheat sheet!”

                  5 year olds ¯\_(ツ)_/¯

              4. 11

                I’m sympathetic to text, and to programs as lists of instructions, and I totally agree that saying programming is easy is counter-productive. But I feel I’m missing something about your argument given the obvious holes, so can you elaborate?

                1. I don’t understand this distinction you’re making between ‘programming’ and ‘coding’. To the extent that programming isn’t accessible, I think we should be changing programming to be more accessible. Creating new distinctions seems unnecessary, and also inherently a political rather than technical act: even if you don’t intend to, you’re liable to end up creating us-vs-them divisions between ‘programmers’ and ‘coders’.

                2. Programs always eventually get translated to zeros and ones. Surely that doesn’t mean we should be programming in zeros and ones? You’re obviously aware of expression-oriented languages like Hy. Similarly, translating icons to addresses doesn’t seem much different to me than translating words to addresses. What am I missing in your argument?

                One of my students is contributing to this project which assigns icons to new procedures by default. It seems useful.

              5. [Comment removed by author]

                1. 12

                  Important context: their target demographic and playtesters are five years old. Some of the kids they’re teaching to program are still wetting the bet!

                  when the trouble starts it’s easier to blame the entire history of the software industry rather than fix your assumptions.

                  Couple thoughts on this:

                  • The software industry is notoriously cargo-culty in what it thinks works or doesn’t work, and very few assumptions are rigorously tested
                  • The entire history of the software industry is younger than a lot of people alive today
                  1. 0

                    “Need to prove your hypothesis? Just run those tests with 5 y.o. kids!”

                2. 7

                  Problem is, many newcomers, kids and adults alike, believe that code is inherently complex simply because it looks complex. Our first challenge became ‘How do we make code look friendly?’

                  Go back to the start of the personal computer era and you’ll find plenty of books that made code look “friendly” without completely divorcing programming from what it is- an exercise in thinking clearly about steps and writing them down. Here are two great examples:

                  Getting Started With TRS-80 Basic

                  Personal Computing On The VIC-20 - A Friendly Guide

                  I credit those as being two of the most influential texts of my programming career. They put me on the path, and I read ’em when I was nine years old.

                  1. 3

                    I played with MIT’s Scratch with a friend’s kid, then four years old I think. She was picking it up, and things seemed cool, and then she said something like “oh, that’s an if because it’s red” and I realized she was putting basic programs together without being able to read and I was suddenly really impressed with what the Scratch folks had done. Seemed like there was something legit there, whatever the differences between it and the kind of coding that most of us are doing here.

                    1. 2

                      When we asked parents what they imagined the target age group for the app to be, we got responses that estimated ages 9, 10 and up

                      First off, I agree that it’s crazy to expect 5-year-olds to be able to read and write code. But I think that what they’ve done here – starting with something visual and then progressively introducing text – is a very smart idea. I could see it working on older kids and even adults. So I’m just going to pretend that’s their audience :)

                      It felt somewhat silly

                      I think this is the key point of the article. There are many, many, many tiny bits of knowledge that we, over time, have accumulated as developers. Some of those are small ideas, but some of those are big ones! And if you’re learning programming for the first time, you have to make a mental leap to gain understanding of these big ideas.

                      And to make a mental leap, you have to start from somewhere – somewhere you know, somewhere you’re familiar with. The problem is that new programmers don’t have much to start from – everything is unfamiliar. Shoving a bunch of text in front of them won’t help, even if they can read just fine. For one, a computer language isn’t just text – it’s a bunch of characters that follow a complex set of rules. Certainly some people will be able to internalize those rules better than others, but none of that matters if you’re teaching fundamental programming concepts. Second, programming isn’t learning how to write in a language – that’s merely a means to an end. There’s a reason why Engrish shirts are funny. The people that make the shirts just like how English looks, but they clearly have no idea what they’re saying. Learning syntax is certainly important to programming, just as learning music theory is important to learning to play a musical instrument. But until that happens, you need to bridge the gap.

                      Text isn’t the only way to convey ideas, and we need to be conscious of that when we teach people programming. It shouldn’t be silly to think like this, but we’re so used to our text editors and how programming is “supposed” to look like that we don’t seriously consider any alternatives.

                      1. 1

                        I guess they will not be these kind of programmers: https://lobste.rs/s/iewkiw/