Slashdot Mirror


Revisiting Why Johnny Can't Code: Have We "Made the Print Too Small"?

theodp writes: In What is Computer Science?, the kickoff video for Facebook's new TechPrep diversity initiative, FB product manager Adriel Frederick explains how he was hooked-on-coding after seeing the magic of a BASIC PRINT statement. His simple BASIC example is a nice contrast to the more complicated JavaScript and Ruby examples that were chosen to illustrate Mark Zuckerberg's what-is-coding video for schoolkids. In How to Teach Your Baby to Read, the authors explain, "It is safe to say that in particular very young children can read, provided that, in the beginning, you make the print very big." So, is introducing coding to schoolkids with modern programming languages instead of something like BASIC (2006) or even (gasp!) spreadsheets (2002) the coding equivalent of "making the print too small" for a child to see and understand?

23 of 270 comments (clear)

  1. Dice, by Anonymous Coward · · Score: 5, Insightful

    Please stop shilling for Facebook. You do it endlessly. No one likes Facebook or its douchebag in chief.

    1. Re:Dice, by TWX · · Score: 4, Funny

      Well my HS wardrobe would be *very* hipster today.

      Oh. My. God. You just went on to be Hipster by claiming you were Hipster before it was hip to be Hipster...

      --
      Do not look into laser with remaining eye.
  2. Statements are too long by Anonymous Coward · · Score: 5, Funny

    The statements are too long.
    Writing a working program should be as easy as:

    LOL
    LMFAO
    ROFL

    Therefore I suggest we teach beginners assembly language and exchange the mnemonics for common texting short forms.

    1. Re:Statements are too long by MagicM · · Score: 4, Funny

      ROFL > LMFAO because ROFLCOPTER

    2. Re:Statements are too long by Anonymous Coward · · Score: 5, Funny

      https://en.wikipedia.org/wiki/LOLCODE

  3. BASIC by Anonymous Coward · · Score: 4, Informative

    "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

    -- Edsger W. Dijkstra

    1. Re:BASIC by 91degrees · · Score: 5, Insightful

      "Dijkstra's a dick"

      -- 91degrees

      Influential and important to CompSci, certainly but that doesn't mean he wasn't a bit up himself at times. Not everything he says is gospel.

    2. Re:BASIC by plover · · Score: 5, Funny

      They run around and talk too fast, but the effects soon wear off.

      --
      John
    3. Re:BASIC by BarbaraHudson · · Score: 4, Informative

      "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

      -- Edsger W. Dijkstra

      Knock it all you want, but it's simply not true. And it wasn't true 30 years ago either. One of the lessons BASIC teaches is that you better be rigorous about what you type in - even a small error will screw you. Especially the buggy code that actually runs but doesn't do what you think it does.

      The "B" in BASIC stands for "Beginners" for a reason. It was never supposed to be the be-all and end-all of languages, just a way to get your feet wet (and addicted) to making a computer do what we tell it to.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    4. Re:BASIC by Pseudonymous+Powers · · Score: 4, Insightful

      "Dijkstra's a dick"

      Yup. But the particular polarity of his dickishness helps to balance out its opposite--that is, all the millions of shitty programmers who hate rigor just because it's rigorous, and proselytize against it at every opportunity. He's a lot like Richard Stallman in this way--an impractical dick, to be sure, but a useful dick nontheless.

      Plus, Dijkstra had a sense of humor, which makes him more fun to quote.

  4. Basic logic and flow control by Richard_at_work · · Score: 5, Interesting

    Kids should be introduced to programming using marble runs and physical switches or conditionals. Get them interested in the toy aspect, introduce rewards for working out how to achieve goals, and gradually introduce virtual modelling of the physical layout as complexity increases - they will gradually move completely to the virtual model, and then you can introduce the next stage of exposing the code when managing click and drag objects becomes a hassle.

    Baby steps. Literally.

    1. Re: Basic logic and flow control by bill_mcgonigle · · Score: 5, Informative

      Lightbot is the phone app version of this. My boy loves it - it's roughly LOGO for 2015, and he's working on subroutines that call other subroutines now. Except he doesn't know that (we did basic IO and loops, verbally with pseudocode, on a long car ride prior to getting Lightbot). It's more fun than the VIC-20 assembly that was my only option at his age.

      Academic: does this theoretical problem exist?
      Market: download the free app.

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  5. Maybe Johnny just doesn't give a fuck by NotDrWho · · Score: 5, Insightful

    Maybe Johnny wants to choose his own fucking interests, instead of having them imposed by a corporate oligarchy only interested in cheap labor.

    --
    SJW's don't eliminate discrimination. They just expropriate it for themselves.
  6. Adult programmers don't understand it either by jfdavis668 · · Score: 4, Interesting

    I have seen a lot of programmers who are totally dependent on the IDE to develop the code. They have no idea how it works or where it runs from once it deploys.

  7. Basic is good, but not enough by gb7djk · · Score: 4, Insightful
    Forty five years ago, I started with some BASIC. But the thing that really got me hooked was that I had a simple problem, that mattered to me, that needed solving.

    The need to solve a problem, being presented with a tool simple enough to understand and some help to get started seems to me to be the true trigger that can start someone off down the programming track.

  8. Simplicity by JBMcB · · Score: 4, Interesting

    I think there's something to be said for learning programming on a very simple machine.

    First, you need to keep in mind that kids have absolutely no idea how a computer works, at even the most basic of levels. It's a box with a keyboard and stuff happens on the screen. You need to cement the idea that you have to tell the computer to do stuff, and link the idea of coding to that stuff.

    This is much easier to do when you have a computer that does pretty much nothing when you turn it on. A flashing cursor comes up and it's waiting for you to tell it what to do. 10 PRINT "HELLO" RUN and it does something. 20 GOTO 10 RUN and it does something else. You get the link between what you're telling the computer to do and what the computer is actually doing pretty quickly.

    Compare that with booting up Windows/MacOSX/Linux, getting into your desktop environment, loading up a browser or IDE, creating a new project, explaining the UI of the IDE, making sure you have the right includes to do IO, directing your output to console or a UI object, etc...

    --
    My Other Computer Is A Data General Nova III.
  9. Way too small by Anonymous Coward · · Score: 4, Insightful

    When I was a kid getting into programming, I constantly ran into a wall. The basics, like hello world, and command line input->output programs that can do an enormous variety of calculations, background work, execute even big and fun commands were always easy, instructions prevalent, how to's everywhere and easy to understand.

     
     
    Then you want to actually move from moderately complicated programs that are useless to real ones that do something, and I hit a wall. How to make a GUI work, how to make graphics appear, how to do anything useful at all in any kind of app, desktop program, etc, and the tutorials jumped from 5 easy to understand lines to 50 page books on how to get a single line to appear, much less do anything else.

     
     
    Excessively complicated syntax, and extremely difficult, complicated programming required for even simple programs in a useable context make it opaque, that is the small print. The resources are plentiful for the most basic coding, plentiful on algorithms and how they work, but the second you get to a moderately complex topic of actually making applications you can double click and use, I might as well be trying to learn how to do complex multivariable calculus in a non-euclidean geometry based on a few comments on a thread on a help page that was posted and died 8 years ago.

  10. What's Facebook? by Anonymous Coward · · Score: 4, Funny

    I never hear of it. What's it? I even try go there today, but website is down. Maybe I tomorrow try again if it is good site.

    Sincerely,
    A Chinese

  11. We've had the perfect language for the job by silentcoder · · Score: 4, Interesting

    for decades. I learned it when I was 7, learned basic when I was 9 and was using proper programming languages within 2 years of that.

    Give them LOGO and turtle graphics.

    It was the best tool for the job in 1967. It's still the best tool for the job today.

    The reason is because nobody has tried to build a better one. You don't teach 7 year olds ruby or javascript or python but FFS you don't teach them BASIC either - give them LOGO, and when they mastered that, they will be able to grasp any modern language you throw at them.
    And if you want something new and shiny, then design that something FOR CHILDREN. That's why LOGO remains the best for the job - because it was designed specifically for children by a team that included a behavioral child psychologist.

    --
    Unicode killed the ASCII-art *
  12. Who Cares? by sycodon · · Score: 5, Insightful

    Johnny can't cook a souffle, Johnny can't make a dove joint, Johnny, can't fix a car, Johnny can't set a broken arm, Johnny can't balance and income statement, etc.

    But there is at least SOME people that can do it. These are all disciplines/careers that people elect to pursue. Not everyone needs to know how to code. That's stupid. Does everyone need to know how to design, cut, and sew together a pair of pants?

    Does knowing how to code make it any better when Windows or Windows apps go toe up? Really? Are you going to debug Windows or Mathematica because you took a coding class?

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
    1. Re:Who Cares? by Half-pint+HAL · · Score: 4, Insightful

      Any job that involves sitting at a computer leads to days when knowing how to automate a simple task is beneficial. My big brother's doing data entry, and he's been battering together VBA scripts (VBA because Excel is the nearest thing to a programming environment on his client's computers) to generate search strings that account for common mistypings of address formats etc, making him one of the quickest on his team. I did a 3-day data filtering job in 1 day because I scripted in in Windows .BAT rather than manually searching through the data. I'm now training to be a school teacher, and I'm programming my own web-pages to make use of the interactive whiteboard in a way that's natural to me and keeps me in control of everything happening in the class. Everyone can use some programming now and again.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  13. Strawman by NewWorldDan · · Score: 4, Interesting

    As the parent of a 12 year old girl, I can assure you all, kids today are not having trouble learning to code. They have resources today that I couldn't have dreamed of when I was their age, and they are using them. There are two major problems that I see happening: there are too many languages out there and no one works in text/console mode anymore.

    Computers were text based when I was learning basic 3 decades ago. As such, BASIC made a perfectly sensible starting point. Instead, today, a web or mobile app requires knowledge of HTML, JavaScript, CSS, some backend language such as C# or Java, SQL, and probably some other things AI haven't thought of.

    Really, if you want to bring back a version of BASIC that was reasonably accessible but could still write something resembling a modern app, bring back Visual BASIC 6.

    But like I said, kids today aren't really having much of a problem. My kid and her friends are learning JavaScript and C# and C++ and I have no idea what else. There are lots of resources out there and kids are taking advantage of them.

  14. Re:One interesting thing he can do by sycodon · · Score: 4, Informative

    Actually, he can't edit a fucking comment once posted.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.