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?

270 comments

  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 Anonymous Coward · · Score: 2, Informative

      Is that you, Mark?

    2. Re:Dice, by Anonymous Coward · · Score: 0

      What do they use it for? Posting pictures of their fucking dinner. Piss off will you.

    3. Re:Dice, by onkelonkel · · Score: 0

      Be honest with yourself, even if you aren't honest with anyone else.
       
      You like facebook. You envy Mark Zuckerberg.

      --
      None of them can see the clouds; The polished wings don't care.
    4. Re:Dice, by bistromath007 · · Score: 2

      Nope. I don't even use Facebook. CAN'T, in fact. Had an account years ago and intentionally scrambled my password, since I only even signed up to talk to one person who I then fell out of contact with. Why the hell would I engage with that shitpile on purpose? Why would anyone? People "like" Facebook for the same reason they "like" their bank or their employer. Not having to use Facebook is the sole benefit of being incredibly unpopular.

    5. 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.
    6. Re:Dice, by Anonymous Coward · · Score: 0

      Why the hell would I engage with that shitpile on purpose? Why would anyone?

      In order to keep in touch with family and friends, many of whom are non-technical and Facebook is their most sophisticated form of communication?

    7. Re:Dice, by pla · · Score: 1

      In order to keep in touch with family and friends, many of whom are non-technical and Facebook is their most sophisticated form of communication?

      Granny can handle a phone. Sometimes even email, though Zeus help anyone who opens one of her virus-of-the-week attachments...

    8. Re:Dice, by desdinova+216 · · Score: 2

      never go full hipster?

    9. Re: Dice, by Anonymous Coward · · Score: 0

      That's Twitter, not Facebook. Facebook is used for stalking their crush.

    10. Re:Dice, by ShanghaiBill · · Score: 3, Informative

      Please stop shilling for Facebook.

      The point made in the summary is stupid, so it is not effective shilling anyway. It was written by someone who has no idea what is actually happening in the schools. I am involved in teaching elementary school kids programming. None of the schools that I know of are starting with Ruby, or Python, or Java, or any other language being criticizing. They all use Scratch, which is a much better introduction to programming than BASIC.

      The high schools tend to use Java, because that is what the AP-CS test uses, but high school students can handle small print.

    11. Re:Dice, by lister+king+of+smeg · · Score: 1

      Granny can handle a phone. Sometimes even email, though Zeus help anyone who opens one of her virus-of-the-week attachments...

      Though Zeus may actually be the attachment.

      --
      ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    12. Re:Dice, by Anonymous Coward · · Score: 0

      Why do hipsters prefer hot pizza to cold? Because they like it before it's cool.

    13. Re:Dice, by Anonymous Coward · · Score: 0, Insightful

      Shut the fuck up, homo.

    14. Re:Dice, by phantomfive · · Score: 1

      How has Scratch been working? Have the kids been getting good results?

      --
      "First they came for the slanderers and i said nothing."
    15. Re:Dice, by Darinbob · · Score: 1

      Pascal is still probably the best. And one advantage is that no one uses it much anymore. Teaching the popular stuff is counterproductive and mostly only serves the corporate overlords.

      AP can be ignored, teach what's relevant rather than to the test, because high school is too early for real computer science.

    16. Re:Dice, by Anonymous Coward · · Score: 0

      I don't envy Mark Zuckerberg. I envy his money, but if I have to be a douchebag like he is to be a billionaire, I'll settle for not being one.

    17. Re:Dice, by Anonymous Coward · · Score: 0

      I'm going to tell your mom you're talking about her like that. Don't make her come downstairs ...

    18. Re:Dice, by ShanghaiBill · · Score: 3, Interesting

      Pascal is still probably the best.

      For 4th graders? I don't think so. With Scratch, they can have something up and moving around on the screen the first day. In a week, they can get a shooter working (boys) or an animated dollhouse (girls). With a language like Pascal, they are going to be bogged down in syntax, and there is no native graphical output.

      Pascal is a poor choice for older kids as well. It has no OO, and uses ancient BEGIN END syntax. Java or Python are much better choices. They use modern syntax, are object based, are widely used in industry, prepare the kids for college, jobs, etc. Java is also the language used for the AP-CS test.

    19. Re:Dice, by ShanghaiBill · · Score: 1

      How has Scratch been working? Have the kids been getting good results?

      The kids love it. We start in 4th grade and continue for 5th and 6th. Scratch is mostly drag-and-drop, which is nice because the kids don't type well. The school is dropping cursive writing, and instead teaching touch typing (an infinitely more useful skill) so the typing should be less of problem in the future. Scratch is nice because you don't have to worry about syntax. The program will always run. It may not do what you expect, but it will do something. That makes the learning curve less steep. Scratch is graphical, and mostly used to create interactive animations. Kids this age are very visually oriented.

    20. Re:Dice, by Darinbob · · Score: 1

      I didn't realize you were referring to younger kids when I hit submit.
      There's always the classic Logo. Also not as popular but the Squeak Smalltalk was nice.

    21. Re:Dice, by david_thornley · · Score: 1

      Some of my friends don't use email, but do use Facebook. Facebook makes it possible to communicate with them asynchronously.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    22. Re:Dice, by Anonymous Coward · · Score: 0

      Why did you feel the need to drop boys and girls into different, grossly stereotyped buckets? It added nothing to your point.

    23. Re:Dice, by ShanghaiBill · · Score: 1

      Why did you feel the need to drop boys and girls into different, grossly stereotyped buckets?

      We don't drop them into buckets. We offer a range of projects, and THEY select which they want to work on. All of the projects are equally challenging, and all of them allow for a lot of individual creativity and innovation.

    24. Re:Dice, by Jane+Q.+Public · · Score: 1

      The point made in the summary is stupid, so it is not effective shilling anyway.

      Besides, OP is wrong anyway. It compares the "magic" of a BASIC print statement with two scripts that do something much more complex. That's dishonest.

      In fact, the basic Ruby print statement is the simplest of all three:

      puts "Hello World!"

    25. Re:Dice, by Jane+Q.+Public · · Score: 2

      "Begin...End" may be ancient, but a lot of languages, including new languages, still use it for good reasons.

      If you want to make comparisons, a lot of people can't stand Python's "significant white space". And good reasons for that, too: why should the spacing of your code be important to the code? Using your own reasoning: that's ancient. It went out of style with FORTRAN.

    26. Re: Dice, by Anonymous Coward · · Score: 0

      Haha, you use email to sign up for FB so that's a lie.

    27. Re: Dice, by LordKronos · · Score: 2

      It could be a lie. Or you could just be an ignorant asshole.

      http://touch.facebook.com/r.ph...

      "Phone Number or Email"

    28. Re:Dice, by Anonymous Coward · · Score: 0

      Pascal is a poor choice for older kids as well. It has no OO, and uses ancient BEGIN END syntax.

      As much as some software developers think that OO is the sole available choice, I think it's very difficult to learn it, and double that for children who have no previous programming experience.

      Procedural and functional languages are much easier.

      The only thing you get from 'baby OO' is that you can write the method calls in a left-to-right order.

      Hell, even at the university/adult level, I think that it's completely ass-backwards to teach OO before the students have tried to write a program of some complexity (and ran into problems). You can't model a good object before you know what problems that object solves, and experience is the only teacher available there.

    29. Re: Dice, by bistromath007 · · Score: 1

      Texting is asynchronous, and requires no engagement with that disgusting ass nightmare of a website.

  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 khallow · · Score: 1

      I would LOL at slashdotters arguing over what is better, LMFAO or ROFL.

    2. Re:Statements are too long by Anonymous Coward · · Score: 0

      This is how the world ends.

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

      ROFL > LMFAO because ROFLCOPTER

    4. Re:Statements are too long by Anonymous Coward · · Score: 0

      The one I use is best. Duh!

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

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

    6. Re:Statements are too long by operagost · · Score: 1

      ROFL considered harmful

      --

      Gamingmuseum.com: Give your 3D accelerator a rest.
    7. Re:Statements are too long by Anonymous Coward · · Score: 1

      HAI
      CAN HAS STDIO?
      VISIBLE "HAI WORLD!"
      KTHXBYE

      How about LOLCODE?

      some extra text due to the caps filter

    8. Re:Statements are too long by BronsCon · · Score: 1

      I disagree...

      LMFAO > ROFL because Shots.

      --
      APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
    9. Re:Statements are too long by WinstonWolfIT · · Score: 1

      AFAIK: IIRC
      IIRC: AFAIK

    10. Re:Statements are too long by Tablizer · · Score: 1

      Hey, you invented a great new training language:

      10 LOL
      20 LMFAO
      30 PROFIT!
      40 PUT ASS BACK ON
      50 WTF?
      60 GO TO 10

    11. Re:Statements are too long by lgw · · Score: 1

      This already exists LOLCODE is in ur base, hacking ur codes.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    12. Re:Statements are too long by Anonymous Coward · · Score: 0

      ROFLCOPTER :: LOL -> ROLF -> LMFAO

    13. Re:Statements are too long by Tablizer · · Score: 1

      70 INTERWEBS BEAT ME 2 IT

    14. Re:Statements are too long by bmo · · Score: 1

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

      Back in the day of Apple ][ machines, we were taught both BASIC and 6502 assembly and wrote code in both. We were taught the assembly after BASIC and when polled which one we preferred to have been taught first. It was the 6502 assy that won out, unanimously.

      So no, this isn't so much of the joke you think it is.

      --
      BMO

  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 Z80a · · Score: 3

      And what about people that were exposed to java?

    3. Re:BASIC by Anonymous Coward · · Score: 1

      BASIC, at least the early variant without the structural or OO programming additions, is a slow and safe assembly like language. It's closer to how a computer works than typical high level languages, and knowing how a computer works is still the number one aspect which enables programmers to write efficient code. If Dijkstra could not teach high level programming to people who have been exposed to low level imperative programming, then maybe he just wasn't a good teacher.

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

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

      --
      John
    5. 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.
    6. Re:BASIC by amalcolm · · Score: 1

      Well played, sir

      --
      Time for bed, said Zebedee - boing
    7. Re:BASIC by FatdogHaiku · · Score: 1

      "Dijkstra's a dick"

      So that's how it's pronounced!
      Seems like a lot of unnecessary letters in there...
      did Congress have input on the spelling at some point?

      --
      You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
    8. 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.

    9. Re:BASIC by TWX · · Score: 2

      I don't even think it's that complicated. For kids to do a given thing, that thing either needs to be fun, or they need some form of reward for their success, or some combination thereof. I started playing with BASIC when I was ten or so and line numbers were still required. shortly thereafter I played with batch files. Then I played with rudimentary bash scripting. Then the TI calculator, then some light instruction in C and C++, and now I do some intermediate bash scripting incidentally when I do my non-programming admin job.

      I don't think it's wrong to use languages like BASIC for the very earliest exposure so long as the curriculum migrates off of BASIC very quickly and also works to avoid emphasizing language-specific methods that truly are dead-ends. Once the concept of programming is understood, then it's time to introduce other languages.

      --
      Do not look into laser with remaining eye.
    10. Re:BASIC by Sarten-X · · Score: 3, Insightful

      That is indeed the point that is often forgotten.

      I've long been an advocate of using BASIC (or a more forgiving variant) for the first two weeks of a programming curriculum... ...and no more.

      To use the analogy of TFS, BASIC has big text, and is useful for illustrating the alphabet of programming. Students should understand a few key concepts from the exercise, the misunderstanding of which often leads to difficulty following later classes.

      I've seen countless students who missed the core concepts that statements run in order (some language exceptions apply), variables change, and that every step of the process has to be listed.

      Frankly, I think those concepts are more important than learning how to build a class or compile a binary. BASIC was a good place to start.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    11. Re:BASIC by oh_my_080980980 · · Score: 1

      And you are who exactly? Oh, that's right, nobody...

    12. Re:BASIC by oh_my_080980980 · · Score: 1

      Not if you want structured programming....

    13. Re:BASIC by 91degrees · · Score: 1

      And you are?

    14. Re:BASIC by oh_my_080980980 · · Score: 1

      LMOL any language can accomplish that. Christ you could do that with COBOL.

    15. Re:BASIC by Anonymous Coward · · Score: 0

      When I was learning programming, it went BASIC, Pascal, C. After that the faculty couldn't decide whether to go with C++, Java, or Python.

      I don't think there's anything wrong with teaching BASIC at first. It's simple and gives you and idea of syntax, data, and control flow. The problem is when you teach is using a "BASIC is your hammer" approach.

      Pascal was great for learning structured programming, but now I think it's kind of a waste of time since C gives you the same knowledge and is more powerful. The problem there is that beginning C is very different from the production C you encounter in the real world.

      JavaScript is probably the best thing to use now once you've covered BASIC. I know a lot of people hate it, but it is insanely useful in the real world and allows you to teach structured programming, functional programming, and OOP all in one fell swoop.

    16. Re:BASIC by BarbaraHudson · · Score: 1

      One of the important ones is to be able to understand the difference between the string "1" and the number 1. It's a good introduction to variable types.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    17. Re:BASIC by Anonymous Coward · · Score: 0

      This autistic freak had a degree in neuroplasticity too?

    18. Re:BASIC by BarbaraHudson · · Score: 1

      Never heard of Borland's good old Turbo Basic and it's successors, PowerBASIC, PBDos, PBCC, and PBWin? They all create stand-alone executables without needing a runtime or an interpreter. Makes it easy to distribute finished programs.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    19. Re:BASIC by Anonymous Coward · · Score: 1

      People keep pulling out this quote as if it's still relevant. Dijkstra was talking about the problem of GOTOs and unstructured 'spaghetti' code in BASIC ca. 1975, not modern structured BASIC.

      Besides, Dijkstra was fond of engaging in hyperbole. He was brilliant but also full of himself and his self-perceived "wisdom" that he felt the need to share. It doesn't make him right.

    20. Re:BASIC by gweihir · · Score: 1

      Most suck, but there are some that make the language work well. Makes me think not Java is broken, but all these people producing really bad code with it are.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    21. Re:BASIC by Half-pint+HAL · · Score: 3, Interesting

      The thing that BASIC got right was simple IO: PRINT and INPUT. The reason "real" languages are usually unfriendly to beginners is the amount of hoops you have to jump through to get that input and output. Back when C was the language of choice for CS classes, I think the mistake was to start with "hello world" in C -- they should have started with BASH scripting and then introduced C in its original natural context -- writing commands to extend the shell. Input and output handling could have come later.

      Now, the problem with saying "we should go back to BASIC" is that people's expected I/O channel is not a scrolling text shell window, so PRINT and INPUT are no longer adequate. As they are the only specifically meritorious features of standard BASIC dialects, suddenly, BASIC is valueless. We can fit any language with a dialog "This is equivalent to print." and variable = inputDialog "Enter number of whatever:" and we're just as well off as we would be doing that to BASIC.

      Making a "simple" language is hardly even a question of language architecture (although JS's variable scoping rules are a right pain), because most are largely straightforward, if you leave OO models out of it. It's the general purpose nature of modern languages, and thus the reliance on libraries, that makes languages unfriendly to beginners (which also drags OO models back into the equation). Scratch isn't considered good for learners because of its programming model (it's just a standard C-alike, really) but because it has a specific purpose and therefore a very limited set of actions.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    22. Re:BASIC by Half-pint+HAL · · Score: 1

      Javascript has horrible scoping rules that result in really weird behaviour if you forget to var something (particularly a problem for loop indexes) -- I wouldn't put a beginner anywhere near it.

      You cannot teach functional programming in JS, because JS is not functional. Not only does it not have immutability, but the scoping problems mentioned in the last paragraph mean you've also got global variables, which is the polar opposite of immutability, if such a concept makes any sense.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    23. Re:BASIC by Anonymous Coward · · Score: 0

      Javascript has horrible scoping rules that result in really weird behaviour if you forget to var something (particularly a problem for loop indexes) -- I wouldn't put a beginner anywhere near it.

      Scoping in JS isn't hard to learn, you just have to be mindful of it. But you're right, beginners should start with something with fewer pitfalls.

      You cannot teach functional programming in JS

      I beg to differ - JS has first-class functions, which is enough to get started with the concept of FP.

    24. Re:BASIC by Half-pint+HAL · · Score: 1

      First-class functions is only a tiny part of it. Functional programming was a movement to make computer programming better match classical maths, and determinism is a huge part of that. If you throw away immutability, you've lost practically everything that made FP a worthwhile endeavour (like provability of code).

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    25. Re:BASIC by Anonymous Coward · · Score: 0

      I didn't say JS was a functional language, just that it does support functional programming to a degree. So in a classroom setting, you can at least introduce the topic. You wouldn't tell students to use JS for all their FP needs.

      Jesus, what's with all the black-and-white thinking around here lately?

    26. Re:BASIC by Darinbob · · Score: 1

      Yes and no. It depends on the person. The worst were the students who felt they knew it all already, and that classes pointless. They'd bitch that declaring variables was a waste of time, they'd not do well in groups, and overall it felt like they had a big chip on their shoulder because they went from the guy who know how to program to the dummy who can't figure it out. Other people however who didn't show up with preconceptions or ego were able to move away from BASIC more easily.

    27. Re:BASIC by gweihir · · Score: 1

      For modern BASIC (in particular no line numbers, only limited global variables, functions, no GOTO or one you do not usually need, etc.), I agree. For classical BASIC, I fully and completely agree with Djikstra. It is an abomination and exposing people to it hurts them. I was fortunately to recognize it as bad when I bough a C64 way back and moved on to a pretty good macro assembler.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    28. Re:BASIC by Sarten-X · · Score: 1

      You can illustrate the concepts with any language, but usually not nearly as well.

      It is not enough to merely show someone a concept in use. They must see only that concept to be able to learn it. It's not as effective to mix variables in with namespaces, class definitions, library imports, or namespaces. Students will often focus on the boilerplate that they're not expected to understand yet, and miss the fundamental concepts that the lesson is supposed to be teaching. It's that simplicity that makes BASIC ideal.

      Sure, other languages can be that simple, but usually they simply choose not to be. Rather, language creators want to market their creations as solutions to the much-discussed STEM crisis, so the language has to support all of the latest ideas. That often means adding boilerplate declarations, by which the students will happily be distracted.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    29. Re:BASIC by Anonymous Coward · · Score: 0

      Is Java the new VB now? As in irrationally classifying everyone who uses it as a bad programmer.

    30. Re:BASIC by lgw · · Score: 1

      Is Java the new VB now? As in irrationally classifying everyone who uses it as a bad programmer.

      No, Java is the new COBOL, and it's a fair assumption that anyone who only knows Java is damaged goods. I say this as a full-time Java coder.

      VB is different - we the coding aristocracy, who use languages with curly braces, sneer down on the poor peasants who can't afford curly braces in their languages, poor things.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    31. Re:BASIC by lgw · · Score: 1

      Input and outpur in C++ is dead simple, if you don't start with the C legacy baggage. Stroustrup harps on this in his occasional rant about how badly C++ is taught. Personally, I hate the C++ I/O constructs, but wow they're so much easier to learn.

      Ultimately, though. C/C++ suck as early languages because of the includes, a problem shared by most professional languages. What makes a first language strong is that all the libraries are just there for you to use. The other advantage of old style BASIC is the control block boundaries are very explicit and easy to grasp. Once you internalize the concept, moving to a curly-brace language is easy, but it can take a while to understand the point of that, or for that matter the point of structured programming.

      Line number BASIC was such a win because you didn't need includes, and because the structure - loops and subroutines and so on, could be added after the fact. Jumping to a line number is less abstract, more explicit, than indented blocks of code, and thus easier to start with. There are teaching dialects of Scheme that also work surprisingly well, because they make control flow very explicitly in a totally different way, that only seems weird if you already know a procedural language.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    32. Re:BASIC by BarbaraHudson · · Score: 1

      Classical basic is a great way to get your brain ready for assembler, because you don't have the benefits more modern languages have. Also, every jmp instruction (jmp, jle, jgt, jne, etc) in assembler is a goto.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    33. Re:BASIC by Anonymous Coward · · Score: 0

      "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

      And on that point Dijkstra is an idiot.

    34. Re:BASIC by Anonymous Coward · · Score: 0

      I developed a data processing programme in Microsoft QBASIC in 1999 because it was the only programming language installed on the workplace computer. The programme produced the desired output and I was able to provide a report to my manager based on the output of that QBASIC programme. My first exposure to BASIC was Commodore PET BASIC running on a Commodore PET computer in 1982.

    35. Re:BASIC by Anonymous Coward · · Score: 0

      What I find funny is when professors, 'high end' programmers, design teams, etc are all in a room discussing a programming problem and they go up the the whiteboard to outline the logic of what they want to do.
      They go up, write 50 lines of Pseudocode, discuss it, then eventually agree and someone takes a pic or saves it off if it is a smartboard.
      Then they get to work writing 500 lines of C++ or Java to replicate the Pseudocode.

      Funny thing is, Pseudocode is a couple of declares and some error handling away from just being BASIC in the first fucking place.
      MOST programs out in the real world are just little 100 line programs to automate some obscure little thing at small to medium size businesses.
      They import customer files into a custom system. Automatically print out a shipping label from some one off production machine or something like that.

      Performance, flexibility, reuse-ability, team coding.. None of this applies.

      What does is concise, understandable, and easily written code that can be modified years later by someone else because it truly is self describing.
      BASIC works great for this. It is also great when you have to work on business logic with someone who is a non-coder. It helps them see that a exception they overlook as a human is not handled in the code and must be thought about and defined as proper logic.

      I think everyone with any kind of job that involves using a computer should have some basic programming knowledge for small tasks and BASIC does this great.

      I really feel like there are many out there acting like Programming is a Calling from the Priesthood..
      Hence we all must speak in Latin and not allow our scared programs to be touched by the dirty tong of the common people. All programs will be written in Latin by ordained Priests after years of schooling. No understanding of our Lord CPU that we the High Priests of the Word C don't confer to you during our weekly PowerPoint sermon allowed.
      Only the Priesthood is allowed the Word of our Lord CPU.
      "Now pass the collection plate and prey that He, in his abode of transistors forgives you your sins and does not banish you to a Blue Screen.
      For the AMD, For the Intel, blessed is the TI. In Motorola we have faith, in ATOM we find strength."

      But seriously... at the least just "Hello world" should be exactly 1 line in every single programming environment ever made.
      Anything else is a failure on the part of the people who developed it, not the new programmer.

    36. Re:BASIC by lgw · · Score: 1

      Neither globals nor mutability are a problem with calling something a functional language. Scheme is a great teaching language, and no one would seriously claim it's not a functional language.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    37. Re:BASIC by gweihir · · Score: 1

      You seem to have no clue about the features that a good macro-assembler offers. It is vastly superior to BASIC.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    38. Re:BASIC by gweihir · · Score: 1

      Well, being AC is certainly the new stupid (same as the old one). My statement is from experience, such as in external code reviews. Java code, without doubt, takes the crown for most badly written code in general, rare exceptions non-withstanding.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    39. Re:BASIC by gweihir · · Score: 1

      I agree. However anybody that knows only one language is basically incompetent. The Java-bunch just seems the worst of the lot, for whatever reasons. Maybe it is that Java has so much tool-support and so many libraries that even the most incompetent coder can produce something.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    40. Re:BASIC by bzipitidoo · · Score: 1

      For years, I thought iostream was a terrible mistake because of poor performance relative to the older stdio library. Didn't matter whether it was a better model, the lack of performance made that moot. Then recently I heard that iostream is only slower when support for stdio is enabled, which it is by default. I had no idea there was such a toggle, never thought to look for anything of the sort. The worst part is the legacy support is enabled even if all the source code is C++ and stdio is never used.

      Maybe C++ is badly taught. But language designers and implementers ought to take the blame for not informing the community how best to use iostream. We know not to mix new and delete with malloc and free. Why weren't we able to discover that iostream does not have a performance problem after all? Legacy support for stdio should have been off by default, so that the iostream library would run at maximum performance, and the compiler should have been programmed to issue an error if stdio was used along with a helpful message about the correct flags, compiler options, directives or whatever was needed to use stdio if the coder really wanted to.

      I agree that C/C++ is a terrible choice for a beginning programmer. Pointers are especially tough for newbies to learn. But BASIC? No. When I first learned how to program, I thought the program would exit a loop the moment that the exit condition was satisfied. It was not obvious to me that the exit condition was checked only at the end of the loop. Now I understand it's done that way not because that's inherently better or more intuitive, no, it's done that way because it's easier and faster for the computer. And that's a big problem with most languages. The capabilities of computers still play too big a role in programming language design decisions. That's one reason why I think we don't have any programming languages that have achieved the goal of making programming as simple and accessible as possible while at the same time being fully capable.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    41. Re:BASIC by LinuxIsGarbage · · Score: 1

      I fiddled a bit with BASIC growing up, and I took 2 intro C++ courses in university, but I'm not a CS grad, or programmer by trade, but for the past 8 years I've been tinkering with AutoIt for almost all of my programming needs. For better or worse it has a BASIC like structure (though there is no GOTO), and it's purely interpreted, but they make input and output dead simple with MsgBox() and InputBox() commands.

      You can scrape data out of, or put data into the clipboard with ease, and you can scrape data out of existing windows, or put data into existing windows. This makes it easy to make a small program that acts as "glue" to automate a real application do something useful. Little by little you can build something more and more complex. I've done TCP programming with it, I got it to scrape data out of a window and create a CSV log where the functionality didn't exist, you can even build real, more complicated GUI's with relative ease.

    42. Re:BASIC by Anonymous Coward · · Score: 0

      How can you know all that and still not see that it's means it is?

    43. Re:BASIC by BarbaraHudson · · Score: 1

      Nonsense. After writing assembler without a macro processor, I got Turbo Assembler and never looked back. It's also why I think Java sucks over C - lack of a macro pre-processor to abuse. And there's nothing to write a pre-pre-processor to use your own custom "language" and translate it so that it's suitable input for a pre-processor.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    44. Re:BASIC by BarbaraHudson · · Score: 1

      You can do structured programming as well as OOP in many languages, including assembler.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    45. Re:BASIC by Anonymous Coward · · Score: 0

      If you have studied programming, you know that writing non-trivial programs which are correct for all inputs is actually an amazingly difficult thing to do. Error handling is not a masturbatory exercise. It is necessary to prevent a program from being used on data for which it would not work correctly. "Garbage in, garbage out" isn't even the worst case for many programs. It is very easy to shoot yourself in the foot by knowing just enough programming to automate the good cases, particularly because automating a task is often only considered when a processing task is so big that completely checking the correct execution is also too daunting. So the amateur programmer only does some cursory inspection of the result and fails to see a problem. Many of these "little 100 line programs" will corrupt data without anyone noticing before it's too late, because the programmer did not bother to check for and handle errors.

      Another way these things go wrong is that amateur programmers usually consider a program done when it does what they need it to do for all expected inputs, but they do not make sure that the program does not do what they do not want it to do for malicious inputs. Then one day, little Bobby Tables shows up in the database, and all the time saved by that little 100 line program is now worthless, because the data is gone, and with it the customers. Or: Oh, the customer entered a negative donation value to our favorite charity, so we deducted the item price from the accumulated donations, charged $0.00 to his credit card and shipped his order?

      Programming is a spectacularly powerful skill, but it can also cause spectacular failures. With great power comes great responsibility. That's why you need to learn it properly. Pseudo-code is definitely not production-quality code, even if you can make a one-to-one translation into an actual programming language. Pseudo-code is used for abstracting away the tedious parts which get in the way of understanding a concept. But in real code, those tedious parts cannot be omitted, because abstracting something away does not actually make it go away. You have to deal with the special cases.

    46. Re:BASIC by Anonymous Coward · · Score: 0

      QBasic is a structured-programming language, as was QuickBasic before it.

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

      "Like QuickBASIC, but unlike earlier versions of Microsoft BASIC, QBasic is a structured programming language, supporting constructs such as subroutines and while loops.[3][4] Line numbers, a concept often associated with BASIC, are supported for compatibility, but are not considered good form, having been replaced by descriptive line labels.[1] QBasic has limited support for user-defined data types (structures), and several primitive types used to contain strings of text or numeric data.[5][6]"

    47. Re:BASIC by Half-pint+HAL · · Score: 1

      It's not black-and-white thinking, it's what's-the-point thinking. When I was at university, I struggled to see the practical purpose behind FP, and part of the problem was the problem set we were given didn't naturally show the benefits of FP, and part of the problem was the gaps in SML's functional model undermined what should have been the whole point of FP.

      As a student I always had difficulties learning to do something a particular way when there seemed to be a better or more appropriate way to get the same results more efficiently -- human learning is all geared to getting results the easiest way. As a student teacher, I'm now spending a lot of time trying to avoid my students suffering the same frustrations as me.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    48. Re:BASIC by Half-pint+HAL · · Score: 1

      The thing with Scheme's mutability is that it's got to be an explicit choice by the programmer. Mutability-by-default leads to unintended changes of value (eg C if(c=0)) which is one of the commonest sources of error, and often the hardest to debug, and the biggest practical advantage of FP to me is that immutability-by-default vastly reduces the opportunities for such error.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    49. Re:BASIC by lgw · · Score: 1

      It's also the problem domain. COBOL was mostly used for "card walloping" software: payroll, inventory management, and similarly boring stuff often written by consultants with MBAs. Java is often used for the modern-equivalent: CRUD software to manage payroll, inventory, and what was I just talking about? Nodded off there.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    50. Re:BASIC by lgw · · Score: 1

      But BASIC? No. When I first learned how to program, I thought the program would exit a loop the moment that the exit condition was satisfied. It was not obvious to me that the exit condition was checked only at the end of the loop.

      This is why line-number BASIC was so easy to grasp. With only explicit IF and GOTO for control structures, there's no source of confusion. Internalize that and it later becomes obvious how while loops etc work, because you can see them in terms of test-and-branch.

      The capabilities of computers still play too big a role in programming language design decisions

      There's always Scheme instead. No concern for the capabilities of computers at all, though you'll wake up in bed one morning with the Lamba calculus next to you wondering how that happened.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    51. Re:BASIC by lgw · · Score: 1

      Mutability-by-default leads to unintended changes of value

      Oh, I agree with you fully about that. C++ would be a teriffic language IMO if the default for any member/variable/parameter was "const reference". Pass-by-value is just a trivial compiler optimization for pass by const reference.

      eg C if(c=0)

      Well, you can't do that in Java, but I wrote C++ professionally for ~10 years an never made that mistake - I never did get why people obsessed on that one. Not using an IDE maybe?

      Anyhow, none of this is specific to a functional language.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    52. Re:BASIC by Anonymous Coward · · Score: 0

      FINALLY. Would you believe you are the first person in all the Java-bashing around here I have seen make this incredibly simple point (a point that could be made about any programming language)?

      All I hear is "This screwdriver sucks - it can't hammer nails at all!", and constant references to the Java Web Plugin as 'Java'. For a bunch of supposedly logical, educated people I see the most outlandish and ridiculous statements being made about a language/platform that clearly the commenter never put in the time to learn how to use or what it is good for. Most of the time the statement makes about as much sense as "SQL is better than Java", or "Apples are better than pencils".

    53. Re:BASIC by Anonymous Coward · · Score: 0

      > I wrote C++ professionally for ~10 years an never made that mistake

      It may be worth considering why you never made that mistake... you quickly learned to be mindful of that syntax pitfall.

      Sometimes the hard lessons are best learned by falling down repeatedly early on.

    54. Re:BASIC by Anonymous Coward · · Score: 0

      IMs are frequently poorly written - is that is an indictment of IM as a useful technology? Or does that just mean that, by its prevalence, it has attracted many people who have no business laying their hands on technology in general? Is that Java's fault? Would not any other language that becomes more prevalent take on the 'crown' of being the most frequently crappy? Do you even listen to yourself when you talk?

      For somebody who is supposedly practicing some form of logical thinking, your notion of causality is pretty backwards.

    55. Re:BASIC by gweihir · · Score: 1

      Hehehehe, nice!

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    56. Re:BASIC by gweihir · · Score: 1

      Thank you. I recently started working with a student that kept insisting you can produce good code in Java and was able to demonstrate it. Made me re-think the problem. It may be that Java just became popular at a time where a lot of people entered the coding business for all the wrong reasons.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  4. No. by Anonymous Coward · · Score: 0

    Johnny Can't Code because an "oppressed person" who really doesn't want to be there has taken his place.

  5. 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 Anonymous Coward · · Score: 0

      Never thought of it this way. It makes a whole lot of sense though, salut!

    2. 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)
    3. Re:Basic logic and flow control by WillAdams · · Score: 1

      Then, when they're ready, introduce them to the game Roborally.

      --
      Sphinx of black quartz, judge my vow.
    4. Re: Basic logic and flow control by Jason+Levine · · Score: 1

      Thanks for the recommendation. I had looked at this app awhile back for my boys (12 and 8 years old). Given their love of playing games on their tablets, this could be a good tool to get them learning about programming while they are playing games.

      --
      My sci-fi novel, Ghost Thief, is now available from Amazon.com.
    5. Re:Basic logic and flow control by Anonymous Coward · · Score: 0

      The BEST intro to coding I ever got was: Write the steps to tying a shoe. Then have someone read the instructions out loud to your stupid friend who does exactly what you said. You quickly learn how important all the steps are.
      No computer required.

    6. Re:Basic logic and flow control by Anonymous Coward · · Score: 0

      Yes. As a kid I was an electronics fan. The Radio Shack 28-218 Science Fair Digital Computer kit (where you basically wire up a whole bunch of logic switches with actual wires) is what got me interested in logic, then a BASIC Nim listing for the TRS-80 made me realize programming was simple.

    7. Re: Basic logic and flow control by Simon+Rowe · · Score: 1

      It's more fun than the VIC-20 assembly that was my only option at his age.

      Heretic! Nothing is more fun than 6502 assembler in 3.5 K of memory!

    8. Re:Basic logic and flow control by Gibgezr · · Score: 1

      That is how I start the first week of my Intro to Programming course off; by having the students play Roborally. It is an excellent introduction to the concept of a program as a series of ordered instructions.

    9. Re:Basic logic and flow control by plover · · Score: 1

      I remember learning a bit about state toggles on Dr. NIM, a marble game in the 1960s, but didn't yet have the basic skills to come up with a state table for the full game. (Hey, I was 4 years old.) Unfortunately, Dr. NIM passed away like so many other toys from the era -- tossed by parents in one of those terrible cleanings.

      About 25 years ago, when my son was 3, I gave him a binary based marble color sorting game, and we played with that for a long time. It had no internal toggles or states other than the sliders the player would set, but he learned 4-bit binary at a tender age. We both held a special place for that toy, though, so he always made sure to hang onto it through the cleanings all parents must do. Somewhere in one of his storage totes it awaits the rite of passage to his offspring, and a fourth gen computer hacker will no doubt emerge.

      --
      John
    10. Re:Basic logic and flow control by StatFiend · · Score: 1

      How about introducing a scripting language into one of the popular MMOs to automate tedious tasks? If the API and syntax are simple, and there are nice examples for common tasks, the self-interest of players will push them to use it... learning programming as a side effect.

    11. Re:Basic logic and flow control by __aaclcg7560 · · Score: 1

      I had a BigTrak tank toy with a programmable keypad when I was a wee lad. This was the physical version of using Logo, a programming language I would use on the Apple ][ in the seventh grade. I used to write out the instructions on paper, keyed them in, and let BigTrak do its thing.

    12. Re:Basic logic and flow control by pak9rabid · · Score: 1

      Holy shit that's a great idea! I loved playing with marble runs when I was a kid. I think they fueled my interest in trains and other discrete logical constructs, which eventually led to my interest in programming.

    13. Re: Basic logic and flow control by Half-pint+HAL · · Score: 1

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

      Oooohh... if only. I've been looking for various things, free OR paid, on my iPad, and many aren't there. Or if they exist, the basic function is trapped in some webservice somewhere.

      Case in point: pencasts. I have an iPad, and I have a stylus for touchscreen. I have a microphone. I want to make little video clips that I can mix with camera videos to create little educational shorts. I've found pencast software that works with an expensive proprietary digital pen that requires expensive custom-printed digital paper. I've found a free package that allows me to dynamically resize, scroll and write on images while simultaneously drawing over them -- but the output is only available via a webplayer on the company's website. So I'm now just looking at going low-tech and mounting my ipad over a desk.

      The app market is really good at generating millions of stupid games, but very few niches are being genuinely filled.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    14. Re:Basic logic and flow control by Anonymous Coward · · Score: 0

      My first Computer Science class at Stanford (which something like 50% of undergrads take) started with Karel The Robot. Of course, it was only for the first couple lectures (at the time moving on to Pascal, but they use Java now).

      It was a great intro to many basic concepts of programming without bogging down the students with a lot of initial setup of tools/IDEs, syntactical crud, etc (from what I read they now use a custom version of Eclipse for their Java assignments - man, being forced to use Eclipse would certainly make me run away from programming).

      The only problem with it is now most Stanford grads have an unreasonably hard time turning right.

    15. Re:Basic logic and flow control by Anonymous Coward · · Score: 0

      This is pretty insightful.

      Image giving a young kid a sort of boring wooden plastic toy that if you pressed down on one side, it went up on the other, with both sides fitting like puzzle pieces into others.

      Tomorrow, you add a second one that takes two presses, and if both are down, the other one goes down. Etc, for all the logical operations.

      Then give them a few additional copies of each, then some wooden rigs with lightbulbs that, when they are pushed down on, glow.

      Then some challenges: using four finger-operated inputs, build something that would only light the bulb if #1 and #4 are pushed down, but not if #2 and #3. Then, reconfigure it #1 and #3 down, but not #3 or #4....then make something that will add one plus one. Etc, etc.

      Finally, you could could connect it up to an arduino and continue doing the same thing on the screen, etc.

  6. COBOL by Anonymous Coward · · Score: 2, Funny

    COBOL would be a good use for something that's extremely easy to read and understand and can do powerful things.

    1. Re:COBOL by silentcoder · · Score: 1

      >can do powerful things.
      But do you really want to give the big red "End of civilization" button to a 4 year old ?

      --
      Unicode killed the ASCII-art *
    2. Re:COBOL by silentcoder · · Score: 2, Funny

      On second thought... apparently a helluva lot of people want to give that power to Donald Trump... I'd trust the average 4 year old more with it.

      --
      Unicode killed the ASCII-art *
    3. Re: COBOL by Anonymous Coward · · Score: 0

      You mean because it is so reduced to the max?

      IDENTIFICATION DIVISION.
                    PROGRAM-ID. KARTEST2.
                    ENVIRONMENT DIVISION.
                    DATA DIVISION.
                    PROCEDURE DIVISION.
                            DISPLAY 'HELLO WORLD ! ' .
                            GOBACK.

      I don't think COBOL is a good language (for beginners, nor advanced). It raises a lot of questions like "why is X required" to all of which the answer is "because" and "not really important to what the program does".

      To compare that to Python (and other languages more in tune with the world):

      print "Hello"

      Now I say that is something a beginner can work with. Simple, direct, no clutter.

    4. Re:COBOL by Anonymous Coward · · Score: 0

      GO TRUMP!

  7. 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.
    1. Re:Maybe Johnny just doesn't give a fuck by Anonymous Coward · · Score: 3, Insightful

      Maybe Johnny wants to choose his own fucking interests.

      It's video games. Johnny wants to play video games. Leave him alone and let him play video games.

    2. Re:Maybe Johnny just doesn't give a fuck by bfpierce · · Score: 1

      Should be a test for this. I mean if Johnny doesn't give a fuck maybe I shouldn't give a fuck about paying his welfare when he goes on to double major in the Humanities. Maybe he just doesn't give a fuck about doing you know, 'homework' and doesn't do well enough to set himself apart from the pack and can't find a job after college.

    3. Re:Maybe Johnny just doesn't give a fuck by AmiMoJo · · Score: 1

      I knew this would be among the first posts, and it is of course complete rubbish.

      Have you ever looking at how babies and young children play? They are easily led by what toys are available and what adults lead them to. That's why they tell parents to read to their children - not to torture kids by forcing them to endure things they hate, but because educators understand that leading children to learn through play is better than leaving them to their own devices.

      I remember when I was very young, maybe 3, my play school got a Big Trax. It's a kind of tank toy with a numeric keypad on top. You give it really simple commands, like "forward 1m, turn left, forward 2m", and it executes them. It was amazing. All the kids loved it, boys and girls, and wanted to play with it. I can honestly say that it sparked by interest in programming and making things do what I want them to do.

      No real syntax, didn't even have to learn to spell (when I started BASIC I kept mis-spelling UNTILL and RETERN), but I could make a program and see it run.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    4. Re:Maybe Johnny just doesn't give a fuck by bluefoxlucid · · Score: 1

      Nobody wants that. If they have to think about the corporate oligarchy trying to get cheap labor, they have to realize that public-access college (free or federally-supported tuition) is just a way to get cheap labor at the expense of the individual. Whenever I explain this, people say that businesses would *never* respond to a labor shortage by *training* new employees; they'd just not hire anyone. They can't understand "Education" as K-12 and "Workforce Development" as college.

    5. Re:Maybe Johnny just doesn't give a fuck by Anonymous Coward · · Score: 0

      Have you ever looking at how babies and young children play? They are easily led by what toys are available and what adults lead them to.

      Not really. Children are naturally curious and will generally explore widely on their own. It's less about what the parents "lead them to" and more about what the parent restrict them from doing. A "good parent" will not just "lead" a child, but rather expose the child to a wide variety of stimulus, pay attention to what the child's attention is caught by, and encourage learning behavior.

      because educators understand that leading children to learn through play is better than leaving them to their own devices.

      No, educators understand that children learn through play, and that there should be a balanced between structured and unstructured learning activities. It's just as important to give kids the chance to discover things when "left to their own devices" as it is to present more directed learning opportunities.

    6. Re:Maybe Johnny just doesn't give a fuck by Anonymous Coward · · Score: 0

      But everyone implicitly gets that college is workforce development when they tell their kid to drop the history major and pick up engineering. They just disagree with you about companies training employees.

    7. Re:Maybe Johnny just doesn't give a fuck by Dahamma · · Score: 2

      Primary education isn't about Johnny's "own fucking interests". It's about trying to give all kids the same basic knowledge that they can use to get by in the world at a minimum, and as a stepping stone to more advanced education if they so choose. They are already learning basic math, science, language, geography, history, etc. Like it or not, simple programming concepts are now a pretty fundamental part of basic math/science education.

      Does that mean Johnny is being coerced to get a BS in Computer Science as a result? Obviously, no, not any more than learning algebra forces you to be a mathematician or learning biology forces you to be a doctor.

    8. Re:Maybe Johnny just doesn't give a fuck by friesofdoom · · Score: 1

      You're making a joke, but as a kid, from the age of 4, all I wanted to do was electronics until I used my first zx spectrum at about 7 or 8 years old, then after that all I wanted to do was code/program. I work as a game engine programmer but have no interest in playing games.

      Johnny who wants to do nothing but play computer games has no hope to begin with. Teach aspiration to Johnny, rather than something he's not interested in, and then you may see some results.

    9. Re:Maybe Johnny just doesn't give a fuck by ArylAkamov · · Score: 1

      people say that businesses would *never* respond to a labor shortage by *training* new employees; they'd just not hire anyone.

      What? Every job I've had is a lie?!

    10. Re:Maybe Johnny just doesn't give a fuck by Cinnamon+Beige · · Score: 1

      I knew this would be among the first posts, and it is of course complete rubbish.

      Have you ever looking at how babies and young children play? They are easily led by what toys are available and what adults lead them to. That's why they tell parents to read to their children - not to torture kids by forcing them to endure things they hate, but because educators understand that leading children to learn through play is better than leaving them to their own devices.

      I'd believe that a lot more if I hadn't ended up reading a lot of stuff in the family of "Unexpurgated Grimms" as a very small child simply by virtue that it was on a tall shelf which suggested it was excitingly forbidden...and I was more capable of scaling shelves than the adults around me ever suspected. (And by 'ever expected' I mean they only know because I admitted it...once I was tall enough to reach it without climbing and they'd hand me it if I asked.)

      It was overall fortunate that Burton's translation of the Arabian Nights was on the bottom shelf and thus written off as probably kiddy-safe and therefore boring. (Those familiar even with their reputation should know exactly how accurate this is.)

      A kid who is sufficiently interested in getting at a given toy will--regardless of parental encouragement or discouragement--make great efforts to find a way. What you're doing by reading to your child is helping associate it with 'family activity,' demonstrates that you value the skill, and also helps the child start associating the spoken word to its written counterpart.

      Some of this I learned simply by studying dev psych, some of this I know because it's not fun being a gender-nonconforming kid with relatives who will refuse you things they deem gender inappropriate. I still managed to get them, and it was not always because I asked relatives who were more tolerant; I have one book I refuse to part with simply because I wanted it badly enough to spend years tracking down a copy I could afford. (I had already started following specific artists before I hit my teens, and wanted a specific artist's version of a particular children's book. Usually, copies in so-so condition sell for $50+ on Amazon.)

  8. 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.

    1. Re:Adult programmers don't understand it either by Anonymous Coward · · Score: 1

      As an embedded developer, and I am the complete opposite. I work outside the IDE as much as physically possible, then learn the bare minimum to get the code compiled and programmed and start debugging. I wonder if I'm just as bad, as I'm performing a sometimes clunky find-and-replace with cscope.

    2. Re:Adult programmers don't understand it either by silentcoder · · Score: 1

      I'm pretty sure the word "programmer" should always be in quotes when describing those...

      --
      Unicode killed the ASCII-art *
    3. Re:Adult programmers don't understand it either by BlackPignouf · · Score: 2

      It really depends on the language.
      VIM is more than enough for Python and Ruby, but completely inadequate for Java.
      You need to write so much boilerplate code and redundant shit with Java that it's a torture to write it without Eclipse or Netbeans.

    4. Re:Adult programmers don't understand it either by Kjella · · Score: 3, Insightful

      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.

      But is it part of what they need to know? A brick-layer needs to know how to use his tools to build a wall, he doesn't necessarily need to know how to make a brick or brick-laying tools from assembler. Nor is he the architect or the structural engineer who says what the wall is for or if it's thick enough to be a load bearing structure. But he does need to know enough to make a structurally sound wall. Sure, it wouldn't hurt him to know all these other things. But it might be more important for a GUI developer to understand the difference between a modal and non-modal dialog than learning all the plumbing to display a dialog. I'd say the most important part is being good enough at what you're good at, not necessarily what you're bad at. As long as you don't deploy straight to production, or rather if you do then you won't have that permission for very long.

      --
      Live today, because you never know what tomorrow brings
    5. Re:Adult programmers don't understand it either by jfdavis668 · · Score: 2

      Yes, but a brick layer needs to know where the wall goes. It is also really helpful if he knows what it's used for. I have had programmers write out files and then wonder why they don't show up on the customer's desktop computer. It worked in their IDE. They don't comprehend that they just wrote it out to the application server, and they need to use the web server to display it.

    6. Re:Adult programmers don't understand it either by plover · · Score: 1

      IDEs like Eclipse and Visual Studio are not rubber safety bumpers for beginners. They're productivity enhancers for professional developers. But because they have 'icons' and 'wizards', people often equate them with "no training required" programming tools like Lego brick language.

      Of course, many of these people can't tell the difference between "scripting if statements 'til it works" and software engineering, either.

      --
      John
    7. Re:Adult programmers don't understand it either by phantomfive · · Score: 1

      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.

      But is it part of what they need to know?

      I've never known a good programmer who didn't understand that kind of thing. If you're dependent on a single IDE, you're probably crap.

      --
      "First they came for the slanderers and i said nothing."
  9. Why aren't babies learning to code? by Anonymous Coward · · Score: 0

    Put them in timeout till they try harder!!!

  10. Why can't Johnny code? by Anonymous Coward · · Score: 0, Interesting

    Because all the coding classes are for women only and all the jobs are for Indians only.

  11. print "Hello World" by Anonymous Coward · · Score: 0

    Works fine in Python.

  12. Hooked with message windows by Anonymous Coward · · Score: 0

    I got hooked by writing one-line VBScript message box scripts on Windows. To see my own text appear was a revelation: I can work from the "inside" of the screen and not just from the outside!

    Let the kids do something creative, or pull a harmless prank, in a simple way. Hello world is idiotic and boring. Javascript is too terse and poorly designed, designed not for optimal coding but rather to make C++ programmers feel at home.

    Perhaps more to the point, why do young kids need to be interested in coding? Most never will be. Most will never need to be. For those who have the aptitude, there's plenty of time. Let them discover trees and playgrounds first. Skipping childhood in order to "get ahead" is a cruel and pointless thing to impose on a child.

  13. 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.

    1. Re:Basic is good, but not enough by Anonymous Coward · · Score: 0

      its why teaching kids to program basic video games (not just replicating existing games) is effective.

      most kids like video games. video games require programming. most kids also have ideas for games, or things theyd like to change in the games they play. having them build a basic game directly engages them in a familiar way while exposing them to new information.

      programming is scary sounding to most kids. video games arent. plus its just fun and encourages creativity.

  14. Of course the print's too small by Anonymous Coward · · Score: 3, Insightful

    Of course we have made the print too small. I recall attempting to 'grok' Fortran and Algol as a teenager and having difficulty understanding the difference between reserved words and variables and so forth.

    BASIC is a brilliantly-designed language for the beginner because the concepts you need to understand are so simple. Even the much-maligned line numbers are important in the learning curve. When you start, a variable, a reserved word and a label are all concepts you have real difficulty separating. BASIC line numbers, though, you can immediately map to the idea of a sequence of control. Once you have mastered this you can then absorb the more advanced concepts gradually.

    For those who take a snobbish attitude to BASIC I still feel that Kemeny and Kurtz understood absolutely how to create a language that simplified programming to its essence. As such, it really should be the starting point - it's easy to teach students better techniques once they have written some simple BASIC programs and hit issues like running out of places to insert a line, etc, because they can SEE why better techniques make their lives easier.

  15. 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.
    1. Re:Simplicity by saider · · Score: 1

      Like a shell prompt?

      You could use BAT files or shell scripts to do this.

      They can test each command individually, and then learn how to link them together.

      --


      Remember, You are unique...just like everyone else.
    2. Re:Simplicity by JBMcB · · Score: 1

      You loose the immediacy - now you have to explain what an editor is, what a file is, why one file will execute and another will not, etc..

      It's not a huge hurdle, and would be a great second step, but you are adding additional layers to the "type this - computer does that" connection.

      --
      My Other Computer Is A Data General Nova III.
    3. Re:Simplicity by Solandri · · Score: 2

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

      Well, not too simple. The computer I learned to program on didn't have external storage. I had to type in the programs again by hand every time I turned the computer off and back on. Course that's a lot easier when the computer only has 2kB of RAM...

      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...

      Actually, the biggest impediment (if you can call it that) I see with modern GUIs and learning programming is that they're all event based. You write up separate pieces of code and they all kinda float around out there until magically the right piece runs when a certain event occurs. The "magic" which makes the right piece run (like on a mouse click) is nearly always hidden in some included library, so you don't get the sense that the code you wrote is completely in control of the machine.

      Conceptually, it's a lot easier for a beginner to grasp procedural based code like BASIC or LOGO or even assembly (that's what we used in my jr. high computer math class on huge HP programmable calculators with punch card readers). You tell the computer to do something, and it does exactly what you told it to do. Or maybe not; maybe I'm biased because that's how I learned. I'd love to hear from people who learned event-based coding first.

    4. Re:Simplicity by Anonymous Coward · · Score: 0

      Indeed. It would be stupid to teach kids to drive a car before teaching them how to feed and saddle a horse. They won't know how a car works until they've learned the musculature of horses, after brushing their hair and caring for them.

  16. I would teach with graphics first by ranton · · Score: 2

    I learned to program in 4th grade, and yes the INPUT, PRINT and IF THEN ELSE statements made up the first tutorial I went through. But as soon as I got to the section of the tutorial on PSET, LINE, etc. is when I really got interested.

    I may have eventually had fun writing MUD-like text based games, I first got hooked writing games like Tic-Tac-Toe and space invaders.

    --
    -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    1. Re:I would teach with graphics first by MightyYar · · Score: 1

      I still remember laying out screens on graph paper and then laboriously "plot"-ing it all out. When I got access to a PC in high school with it's totally different graphics capabilities it was fun to explore the new system.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  17. 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.

    1. Re:Way too small by CrashNBrn · · Score: 1

      MsgBox, This is a GUI Dialog.
      --- AutoHotkey

    2. Re:Way too small by Anonymous Coward · · Score: 0

      You can do a dynamic 2D graphical simulation of the Metropolis algorithm for the Ising Model in 80 lines of BASIC.

  18. According to Facebook, women are too dumb to code? by xxxJonBoyxxx · · Score: 2

    So...this is part of Facebook's "please don't class action us" effort and a product manager goes on video to say that the current batch of entry level languages and examples (which my kids mastered in middle school) are too hard for his target audience (women) so we need to step back to a simpler language with fewer moving parts? OK Facebook, do you really want to own that, "women are dumb so we'll come down to their level" (as long as you don't sue us) message?

  19. 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

    1. Re:What's Facebook? by AmiMoJo · · Score: 3, Insightful

      It's like QQ or Wiebo, only the spying is worse.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    2. Re:What's Facebook? by Darinbob · · Score: 1

      I only use Fakeblock.

    3. Re: What's Facebook? by Anonymous Coward · · Score: 0

      Great firewall of China strikes again.

  20. DigiComp I was my first computer! by swm · · Score: 1

    DigiComp I was my first computer!

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

  21. Zuckerberg and his minions need more code monkeys by Anonymous Coward · · Score: 1

    But don't want to actually spend time or money training them. So the weight of this training should be offloaded onto the taxpayer and the parents. Schools shall be turned into training camps for future tech-slaves. For the same reason they're trying to attract more women and minorities to programming, it's a free pool of workforce that's largely untapped now.

  22. Logo (was Re:I would teach with graphics first) by WillAdams · · Score: 2

    Logo, and a moving turtle for the win.

    Tools such as Arduinos and gShields and inexpensive stepper motors (to say nothing of Grbl which is one of the most amazing programs I've ever seen in terms of memory efficiency and compactness) make this far more affordable than it was.

    Still kind of surprised no one has done a Logo to G-Code translator.

    --
    Sphinx of black quartz, judge my vow.
  23. Scratch by jonwil · · Score: 3, Interesting

    Here in Australia, a TV show called "Good Game SP" (which does gaming news, game reviews and other gaming related stuff aimed at kids) did a series of segments using the Scratch environment to build a game. I thought it was a great way to introduce kids to programming in a simple way (with things like if statements, loops etc) but without (as far as I can tell) teaching any of the bad habits you might get from something like BASIC.

    The LEGO Mindstorms robotics kit also seems like a great way to teach the simpler programming concepts without teaching bad habits (coincidentally both LEGO Mindstorms and Scratch came out of the MIT Media Lab)

  24. 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 *
    1. Re:We've had the perfect language for the job by AshPattern · · Score: 3, Interesting

      http://pencilcode.net/ is just that, designed for the web and made so kids can easily share their creations to friends and parents.

    2. Re: We've had the perfect language for the job by silentcoder · · Score: 1

      Looks interesting. As an unschooling parent that may come in handy in a little while. But the rugrat should at least be using sentences first. "Dog naughty" is her current crowning achievement.

      --
      Unicode killed the ASCII-art *
    3. Re:We've had the perfect language for the job by Anonymous Coward · · Score: 0

      Here you go: https://studio.code.org/s/frozen/stage/1/puzzle/1

      There's your turtle.

    4. Re:We've had the perfect language for the job by antdude · · Score: 1

      I agree. LOGO rocked. I remember my 6th grade teacher, Mr. Mangel (wonder if he is still around and a /.er), had one of those robotic turtle with his Apple 2 computers. It was so rad(ical). :D

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
  25. How about a BASIC interpreter web page? by Anonymous Coward · · Score: 1

    His simple BASIC example is a nice contrast to the more complicated JavaScript and Ruby examples

    How about a BASIC-like interpreter implemented in JavaScript?

    Then the student could visit the web page, enter the code in one box, click the "Run" button, and see the execution output in another box.

    That way, you'd get the universality of web pages, combined with the educational friendliness of the BASIC-like style.

    1. Re:How about a BASIC interpreter web page? by Anonymous Coward · · Score: 1

      How about a BASIC-like interpreter implemented in JavaScript?

      Quite BASIC
      Applesoft BASIC
      QBasic
      Simple Web BASIC

    2. Re:How about a BASIC interpreter web page? by BarbaraHudson · · Score: 1

      Not everything has to (or should) run in a web browser. That is probably one of the more important lessons kids (and many adults) need to learn.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    3. Re:How about a BASIC interpreter web page? by Anonymous Coward · · Score: 0

      Not everything has to (or should) run in a web browser.

      I never said that, and I never implied that.

      But the fact is that the web platform is the most common, so you need to start there.

      If someone wants to have their students ssh into a bash shell, fire up vi, and invoke g++ to develop programs, then that's great too. But my main interest is first looking at the environment that is most likely to be available.

      That is probably one of the more important lessons kids (and many adults) need to learn.

      I agree that it's important, but I disagree that it has primary importance. I would be okay with teaching introductory programming (say, at a 4th/5th grade level) for a few years within an exclusively web framework, and then, later, expose the students to native application development, embedded programming, etc. at the higher grades. I don't see a need to clutter up an introductory programming class at the 4th grade level with a general discussion of the different levels at which programming can be done, except by making a quick general comment such as: "Not every piece of software runs in a browser." and leave it at that.

      I say this as an educator: I know firsthand the importance of focusing the students attention, and eliminating distractions. Most importantly, I have found that it's crucial to refrain from overwhelming students with theory and general discussion too early in the process. A broad survey of all the different software development platforms is a fine idea, but it needs to be lower in priority, because it's not a concept that can be easily grasped by students who don't even have a concept of one programming environment yet.

    4. Re:How about a BASIC interpreter web page? by BarbaraHudson · · Score: 2

      Or you could just dig up an old BASIC interpreter and a simple text editor. No need for linux, vim, gcc or whatever. Let them run it locally in a terminal (full-screen is nice for kid's eyes and makes it easier to spot a typo such as a single quote instead of a double quote, etc. Absolutely no need to add overhead such as a web browser and the need for both an internet connection and a server. You could do this on computers that are two or more decades old, so if they don't have a box at home (or someone else is using it) they can still play around. And no hassles about malware, antivirus, etc. A simpler, gentler time.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
  26. Agreed by Anonymous Coward · · Score: 1

    I've wondered about this myself. When I was a kid I was excited by putting prints in a goto loop in BASIC. Kids nowadays might not be so impressed, because the gizmos they use are very shiny. I don't know how to get young kids interested in programming. I doubt they would be impressed by being able to print to the screen. So what do the 10-15 year old kids do to get started? However I was thinking python would be a good introduction, instead of basic.

  27. Facebook too cheap to hire real programmers by Anonymous Coward · · Score: 0

    No. You're too greedy to hire real programmers. You want expendable drones indoctrinated from childhood who will be trapped in your minimal wage "coding" McJobs.

  28. Fuck off. by Anonymous Coward · · Score: 1

    Can you fuck off with all of your "diversity initiatives" please? If Johnny wants to code, he'll fucking code. If he doesn't want to code he won't.

    1. Re:Fuck off. by serviscope_minor · · Score: 1

      If Johnny wants to code, he'll fucking code. If he doesn't want to code he won't.

      Yes adults should completely fuck off and never attempt to influence kids. Parents should STOP reading to kids and schools should close. Adults suck.

      IOW your post is silly.

      --
      SJW n. One who posts facts.
    2. Re:Fuck off. by Anonymous Coward · · Score: 0

      Y'know Servi, I always wondered why you were such a obtuse asshole. Then I clicked on your user profile and I noticed who you were friends with:

      AmiMoJo
      i kan reed

      As you might imagine, I lol'd heartily. You know what they say about birds of a feather.

      PS: I wanted to link that comment where you told someone to kill themselves, but I can't find it. Maybe you could help me out?

  29. Re:According to Facebook, women are too dumb to co by Anonymous Coward · · Score: 0

    By looking over the configuration pages and screenshots of failbook, it looks to me like Facebook's target audience are mild narcissists who don't do anything in their life worth remembering but want people to validate (like) everything they post.

    So, not that different from the most active portion of Slashdot, except here we get more people claiming to be important developers without providing evidence and significantly fewer beach photos.

  30. 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 Anonymous Coward · · Score: 1

      Not everybody needs to be able to write "apps", but programming as an abstract ability is as important as reading and writing. At its core, programming is the ability to understand the structure of problems and plan a solution. Note that I did not mention computers. The core aspects, sequence, variable, branch and loop are the fundamental building blocks of algorithms, but not just computer algorithms. Breaking problems down into things that you can do, information you can get, decisions you can make, and iterations you can plan is an important skill. I'm perfectly happy if nobody in high school is required to learn what a compiler is. But they do need to learn what an algorithm is and how to come up with one.

    2. Re:Who Cares? by Anonymous Coward · · Score: 0

      I dunno, I'm your pretty average hillbilly with a college degree. I can cook a soufflé, make a dovetail joint (it's not a dove joint, you illiterate hack), I keep tinkering with my 20 year old F-150 that I use as a daily driver, haven't set a broken arm, but certainly splinted a broken leg and then carried one of our buddes 5 miles back tot he trail when he broke his leg falling out of a tree stand, and I most certainly keep my checking account balanced. Those all seem like pretty basic life skills to me, but then, I haven't bought into the throwaway culture.

    3. Re:Who Cares? by Anonymous Coward · · Score: 0

      But they do need to learn what an algorithm is and how to come up with one

      Yes, this is already taught in several high school Math classes. They call them "Proofs" and "Story Problems", and are among the most hated and feared sections, and also the most quickly forgotten.

    4. Re:Who Cares? by Anonymous Coward · · Score: 0

      IIRC, "proofs" is where they teach you specific algorithms (like complete induction), and "story problems" is where you show that you recognize which of the algorithms you already know is applicable to a given problem, and that you can actually apply it, which is a step up from stating both the problem and the algorithm, e.g. solve 12345/13 using long division. But programming is another step up. It's not just recognizing problems. It's understanding the structure of problems.

    5. Re:Who Cares? by HideyoshiJP · · Score: 1

      Sure, I hear you. But Johnny should at least be able to cook hamburger/tuna/chicken/mystery meat helper, sand away a rough chair surface, change an air filter, stop or slow minor to moderate bleeding, and do basic personal money management.

    6. Re:Who Cares? by TWX · · Score: 1

      Yep. proofs aren't going to generate configuration templates for me based on a set of conditions I need to have satisfied.

      --
      Do not look into laser with remaining eye.
    7. Re:Who Cares? by Anonymous Coward · · Score: 0

      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 ANYBODY can program. It's simple! Johnny can do it and he's only 10. He made a program that prints out "Hello" 10 times! Because All You Have To Do Is...

    8. Re:Who Cares? by oh_my_080980980 · · Score: 1

      Oh good grief. Listen Potsy it's called critical thinking skills, i.e., logic. Look it up sometime.

    9. Re:Who Cares? by Anonymous Coward · · Score: 0

      Breaking problems down into things that you can do, information you can get, decisions you can make, and iterations you can plan is an important skill.

      You've described high school math and basic life skills. The things high schools are supposed to teach, remember ?

    10. Re:Who Cares? by Anonymous Coward · · Score: 0

      And math is just advanced counting.

    11. Re:Who Cares? by lister+king+of+smeg · · Score: 2

      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?

      Then johnny didn't earn many merrit badges in scouts did he.

      Mine included Welding, Survival Skills, Cooking, First Aid, Sewing, Computer (PC) repair, Barbering, and more, I never got the ones in automotive repair but learned some the skills (changing filters, spark plugs, fluids, lights, rotor, etc) elsewhere. And carpentry is something I did as a hobby with my dad growing up.

      --
      ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    12. Re:Who Cares? by ljw1004 · · Score: 1

      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?

      No.

      But what you're going to do is whip up the quotes you got from car dealership into a spreadsheet and write a little macro that empowers you better. Or you'll read a news story about something political, use a tool that scrapes the relevant websites, and do something with the data. Or you'll have written a LOGO program in class and it shaped your mind just a little bit to understand algorithms better, i.e. procedural instructions, so that the next piece of technology you see you have a grasp of what's going on rather than just throwing up their hands and calling it magic. Or you'll get fed up with doing something manually in Word all the time at your job so you'll put together a macro that saves then 20 minutes a day, or a bash script.

      Not everyone will do this for sure. But I've seen a lot of people become more empowered in lots of little ways through code.

    13. Re:Who Cares? by tehcyder · · Score: 2

      I'm your pretty average hillbilly with a college degree. I can cook a soufflé

      I'm your pretty average lumberjack, and I cut down trees, I skip and jump, I like to press wild flowers, I put on women's clothing, and hang around in bars.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    14. 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'
    15. Re:Who Cares? by LynnwoodRooster · · Score: 1

      Too Much Information!

      --
      Browsing at +1 - no ACs, I ignore their posts. So refreshing!
    16. Re:Who Cares? by Anonymous Coward · · Score: 0

      So you are saying Johnny needs to be introduced to the command line.

    17. Re: Who Cares? by Anonymous Coward · · Score: 0

      If it took you 1 day in .BAT programming, then it would take about 20 seconds in BASH/sh/csh ... If you seriously did text processing in a bat file, I commend you, but the power of the *box command line *will* blow your fucking mind. I used to do bat programming too when I was like 12, but once I moved to Linux (bsd actually) I couldn't believe I ever wasted my time w errorlevel goto set blah blah...seriously tho, go look at what sed and awk can do for text processing...you'll never want to use a BAT file again

    18. Re:Who Cares? by gweihir · · Score: 1

      Yea, well. And if people that do not understand efficiency and effectiveness, you get things like "laws", "processes", "forms", etc. that are complicated, unclear, dog slow, solve the wrong problem and generally are of massive negative worth because of the way they are done. So a course focused of efficiency, effectiveness, clarity, etc. would get my vote. Of course that would need to span all of education. And you would have to sack most teachers, as they cannot do well in this domain.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    19. Re:Who Cares? by Anonymous Coward · · Score: 0

      I don't think you understand. I'll repeat what I posted in the tech unemployment discussion.

      What's the difference between a burger flipper and somebody random off the street? An hour of training. What's the difference between a software developer and somebody random off the street? An hour of code.

      That is how the people on the top see it. The only explanation they can find for why they're paying us more than minimum wage is because there's some misogynerd conspiracy to lock up the secrets of coding and keep women out. Here's something else in common between burger flippers and software developers. Neither have professional associations.

    20. Re:Who Cares? by Anonymous Coward · · Score: 0

      " Johnny can't balance and income statement, etc."

      Johnny can't tell "and" from "an". I see that a lot lately, has the Solar System gone through a cloud of stupid recently?

    21. Re: Who Cares? by Anonymous Coward · · Score: 0

      An income statement doesn't balance; it shows net income.
      A balance sheet balances.

      Yours sincerely
      An accountant

    22. Re:Who Cares? by Anonymous Coward · · Score: 0

      People type stuff on mobile devices with autocompleting virtual keyboards. Misspelled words are getting rarer, but wrong words appear more often. It's quite annoying because typos are much easier to correct on the fly than syntactically correct nonsense.

    23. Re: Who Cares? by Half-pint+HAL · · Score: 1

      If it took you 1 day in .BAT programming, then it would take about 20 seconds in BASH/sh/csh ... If you seriously did text processing in a bat file, I commend you, but the power of the *box command line *will* blow your fucking mind. I used to do bat programming too when I was like 12, but once I moved to Linux (bsd actually) I couldn't believe I ever wasted my time w errorlevel goto set blah blah...seriously tho, go look at what sed and awk can do for text processing...you'll never want to use a BAT file again

      Do you know what might blow your fucking mind? The idea that when working in a corporate Windows SMS environment you are kind of likely to encounter Windows machines, and getting Cygwin approved for install on your domain controller is going to take a lot longer than simply using the tools available to hand. Now excuse me, I'm off to do test some theories in computational linguistics in Prolog. So don't start getting all smart about "real" tools with me, sonny.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    24. Re: Who Cares? by glitch! · · Score: 1

      If you seriously did text processing in a bat file, I commend you, but the power of the *box command line *will* blow your fucking mind.

      I have been using tcsh for two decades, but am not familiar with "*box". Could you give a reference where I can learn more about this feature I have missed?

      --
      A dingo ate my sig...
  31. 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.

    1. Re:Strawman by Anonymous Coward · · Score: 0, Interesting

      As the parent of a 12 year old girl, I can assure you all, kids today are not having trouble learning to code.

      Female kids, yes. But as the title of the article says, it's "why Johnny can't code", not "why Suzy can't code". Johnny can't code because unless he convinces his parents he has "gender dysphoria" and undergoes radical surgery and hormone treatments, he doesn't qualify for any coding programs, is excluded from learning opportunities, and instead gets to spend time in class being taught "how to not rape women".

    2. Re:Strawman by Anonymous Coward · · Score: 0

      Wait, is Johnny, MtF or FtM?

      If he's MtF, then he'll automatically shoot to the top of his field. (Bruce Jenner is Woman of the Year, the highest paid female CEO is MtF, etc.)

      If he's FtM, then that might be accurate.

    3. Re:Strawman by Anonymous Coward · · Score: 0

      Excuse me, could you please fuck off?

  32. Girl only classes, dumbed down language, STOP ! by Anonymous Coward · · Score: 0

    code.org must stop trying to shove programming down the throats of kids who DO NOT WANT to program, at the expense of those kids who do WANT TO PROGRAM.

    Sexism against keen, young, nerdy boys is Sexism - STOP, or we boycott.

  33. Ruby example by BlackPignouf · · Score: 1

    facebook.each do |user|
        user.send_message "Happy Birthday"
    end

    So facebook is just an Array of Users?
    And every User has his birthday today?

  34. Fair enough by Anonymous Coward · · Score: 0

    But people are individuals, not everyone is going to see 'magic' there, nor should they, we are allowed to be interested and good at different things. At this point I'm convinced Zuck (also Gates and Musk) truly do have serious mental issues, and not the heartfelt Allie Brosh variety.

  35. Betteridge's law of headlines by abies · · Score: 1

    Answer is no.

    I was learning to code by doing POKEs into graphic memory, by first drawing sprites on grid paper and translating it into binary. Not the most efficient way to be honest, but there was nobody to tell me right one and I have found a newspaper article about screen memory layout.
    Problem is short attention span and instant gratification mindset, not programming language change.

  36. Johnny can code.... by Dcnjoe60 · · Score: 3, Insightful

    Johnny (and Jane) can code. They just don't want to. Back in the 80s and 90s, computers were new and cool and if you could code, you could even make the computer do what you wanted it to do. Back then coding was freedom. It's like hot rods in the 50s. If you could soup up a car and make it run fast, others looked up to you. Now, fast cars, like computers, are common place and the "skill" isn't needed or valued like it was.

    In the future, today's hot fields will be asking the same question. Once the newness and prestige wear off, the Johnny's and Jane's of the world move on to something else.

    1. Re:Johnny can code.... by Anonymous Coward · · Score: 0

      It's not because anyone knows how to make the computers do what they want, though. It's because everyone has lost the free will and desire to do anything other than what the corporations tell them they want to do.

    2. Re:Johnny can code.... by friesofdoom · · Score: 1

      I don't remember /anyone/ thinking that I was cool because I could program...

    3. Re:Johnny can code.... by Anonymous Coward · · Score: 0

      There's a big difference now, though. Programming is the new factory work. It's what you need to be able to do if your "real interests" don't pan out. People used to rely on assembly plants or other factory-similar alternatives to get a simple income. Now that's all gone. Lots of programming jobs in their place, though. Everywhere. I can tell you about lots of people who are not into technology who think that it's still a prestigious or elite type of career. It shouldn't be seen this way. It shouldn't any longer be intimidating to do rudimentary coding. People need to be encouraged to take it up so that they can earn at the level they want to be paid instead of struggling with dead-end retail jobs. No, they're not going to be architects. They're going to do simple tasks - assembling lines to meet a goal, just like the toasters of old.

  37. Not so clever after all by Anonymous Coward · · Score: 1, Interesting

    If you were as clever as the image you try to portray, then you'd realize that if everybody was an engineer, you wouldn't have it so good. So either you do realize this, and you're just chest-thumping (like, ahem, a lesser being), or you don't realize it, and thus you're not so clever after all.

    1. Re:Not so clever after all by MightyYar · · Score: 1

      You don't need to become an engineer to find programming useful. I'm amazed at the very cool things that artists are doing with micro-controllers now that they have been made more accessible. There are amateur-focused stock trading websites that allow fully-automated trading based on code that you write. A great number of the people that I know who are self-employed have their own website and have IT needs that would be trivial for someone with a light programming background to tackle. Debugging consumer electronics is much easier when you know how machines "think". As our world becomes more and more run by computers, I think the idea that everyone should have some idea how they work is at least worth considering.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
  38. Yes by Anonymous Coward · · Score: 0

    As an GSI at a university, I have noticed that students in intro programming courses are struggling more here with Python than at my former institution where programming was introduced with spreadsheets.

  39. Big Text More Interest by ripvlan · · Score: 1

    If I remember the baby book correctly - kids focus on the Largest thing they see. Their brain processes items in a priority order - big first, small last. (hmm.... now wondering if small print in Ads is related to this and not space limitations) So big text allows them to "see" the text over any pictures on the page. Of course - this is for small kids. Old people it's because they need a new prescription for glasses.

    Aside from that - conceptually the JS example is certainly "small print" or too busy. When I'm first looking at something that interests me - but maybe I haven't made up my mind whether I want to commit, I like the examples to be simple. Conceptual. Interest me in the topic.

    The JS/HTML example is full of syntax and crowded with markup. Yes HTML is complicated (lots of typing). But Hello World in HTML is different from Javascript. Honestly I might have lied a bit and shown just the JS - and used a pretty printer to fit the space (and maybe black&white code - colors are busy and what do they mean?)

    I became interested in computers when I used a modem to direct-connect to a friend who also had one and we typed text back and forth. After that I learned BASIC and the AT commands for the modem. My fascination was in knowing that this Computer would obey my every command - I could make lights blink, or characters flash/blink on the display.

    Stupid simple things - but they were cool to me. My first exposure wasn't even code. It was dumb terminal program that shipped with IBM PC BASIC. But it was Simple and there was a Concept that spoke to me.

  40. It's all math word problems by wcrowe · · Score: 3, Insightful

    The reason Johnny (and Jenny) can't code is simple: coding is not easy. Most kids hate math word problems. Yet, that's what coding is. You're given a math word problem with all these variables and facts and rules, and you have to come up with a solution, that is translated into a foreign language of simple instructions for a very dumb machine that is fussy about how you talk to it. If you can't stand problems that start out, "A train leaves Chicago traveling 42 miles per hour...", then you are not ever going to like coding, and you most likely will never be very good at it.

    --
    Proverbs 21:19
    1. Re:It's all math word problems by Anonymous Coward · · Score: 0

      The reason Johnny (and Jenny) can't code is simple: coding is not easy. Most kids hate math word problems. Yet, that's what coding is. You're given a math word problem with all these variables and facts and rules, and you have to come up with a solution, that is translated into a foreign language of simple instructions for a very dumb machine that is fussy about how you talk to it. If you can't stand problems that start out, "A train leaves Chicago traveling 42 miles per hour...", then you are not ever going to like coding, and you most likely will never be very good at it.

      Maybe what you want to talk about is modeling? Understanding a situation, conceptualizing about it, and then modeling it, is what goes on in coding. Word problems have the model already built. All the ground work is prepackaged.

      Building software is about conceiving out of the universe of stupid whims what a good result would be, and then finding how to solve for it. It's not a series of prepackaged problems. Finding just the right balance of goals (taking into account the full implementation stack), then expressing it in a clear model and having that expression actually run is the thrill.

      Honestly, I don't think that giving a kid lots of word problems helps their coding much, if at all. I'd say the best way is piano lessons because a good teacher can give that insight into full-stack thinking they rarely get elsewhere.

    2. Re:It's all math word problems by bmo · · Score: 1

      If you can't stand problems that start out, "A train leaves Chicago traveling 42 miles per hour...", then you are not ever going to like coding, and you most likely will never be very good at it.

      I, and other people, can't fucking stand problems like that because they are fucking BORING AS FUCK AND TOTALLY UNINTERESTING.

      But I love writing code. As do many other people. Because the problems are more interesting than SAT style word problems, which rot your brain and make you hate math.

      --
      BMO

  41. Inventor/Builder and Computers by Dareth · · Score: 2

    My first computer was a TRS-80 color edition. https://en.wikipedia.org/wiki/TRS-80_Color_Computer

    At the time I got it, I spent a large part of my time finding and making materials to build tree houses. The best part of the computer was I didn't need physical materials to build something. I could type up a set of materials and use them. This really satisfied my need to invent and build stuff.

    I have just started showing my daughter, age 7, how she can build stuff on a computer using the Unreal Engine. She already does "art work" in Minecraft design mode. The idea of more realistic materials got her interest.

    --

    I only look human.
    My mother is a halfling and my dad is an ogre, so that makes me an Ogreling
  42. Small print by CanadianMacFan · · Score: 1

    If the print is too small try increasing the font size.

  43. One interesting thing he can do by Anonymous Coward · · Score: 0

    Johnny can't balance and income statement

    One interesting thing Johnny can do, however, is differentiate between an indefinite article and a conjunction.

    1. 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.
  44. Unlearning by cnaumann · · Score: 2

    The first programming language I learned was BASIC.

    I had to unlearn BASIC to learn FORTRAN.

    I had to unlearn FORTRAN to learn C.

    My brain is at its erase cycle limit.

    Now I basically program in FORTRAN using C.

    1. Re:Unlearning by tompaulco · · Score: 1

      I also learned on BASIC. I learned FORTRAN about 7 years later in college. I didn't find it necessary to unlearn BASIC. My first summer job, after my freshmen year (which lasted 6 years), involved coding in both BASIC and two generations of FORTRAN. I learned C on my own and then used it in my Junior year of college. I didn't see any need to unlearn BASIC or FORTRAN. Then I later learned C++ and had a lot of trouble understanding learning the OO methodology simultaneously with learning a pretty complex language. I spent a lot of time out of official development for about 15 years, but still picked up Powerbuilder, Optima++ vbscript and some other utility languages. Then I learned Java. When learning Java, the OO methodology suddenly seemed to make sense, so much so that I was able to go back and do some C++ programming and now the OO methodology in C++ made sense to me. I don't feel like I have ever had to unlearn a language in order to learn another one. It's all just different rules and syntax.

      --
      If you are not allowed to question your government then the government has answered your question.
    2. Re:Unlearning by Anonymous Coward · · Score: 0

      Do people not work in multiple languages? For work I use Salesforce Apex (java-like), in the past I've used C#.net, java and perl, for my personal projects I'm using Ruby on Rails, in the past used PHP (in the process of getting rid of the remainder of that nonsense). It's occasionally annoying, for example when the compiler refuses to compile what looks like perfectly good syntax until I realize I wrote a line or two in the wrong language, but otherwise no unlearning needed to switch

  45. My two daughters by Anonymous Coward · · Score: 1

    Our family plays Minecraft a few times a month for "family time". The kids would then talk about all the "cool" things they would like in Minecraft. I introduced the eldest daughter (11 at the time) to Youth Digital course for Mod Design 1 (basic Java). My daughter completed the course and enjoyed it (she really enjoyed using GIMP to edit / create images for the game, not so much the "typing code" aspect). Now my 2nd daughter (10 yrs old) enrolled in the same Mod Design 1 course after observing and playing big sister's mod. The younger siblings (2 boys, 5 and 7) want to mod Minecraft. My eldest daughter wanted to enroll in the YD Blender course (the animation 1 course). Tying programming (modding) as the means to create things into something they really like (Minecraft) seems to work really well. I'd enroll the boys but I have a budget to stay with. It's unfortunate in my State we have no voucher system for homeschooling to fund education.

  46. Coding is supposed to be hard. by ElVee · · Score: 1, Flamebait

    I learned coding using the unholy duo of COBOL and FORTRAN, written out by hand on coding forms and then hand-punched on an IBM 029 card punch machine from hell. It was goddamn hard and we liked it that way! Now, get the fuck off my lawn.

    Programming is an abstract concept. It's not like hammering nails into a board, it's all done in your head. You have to visualize, organize and convert all those bytes flowing around in your head into cognizable, workable code. It takes a certain type of person with a fair degree of mental discipline to do that. Debugging is an even more abstract mental exercise.

    It's hard to produce complex code. If coding were easy, a 2nd grader could write a payroll system in Logo. Watch Johnny move the turtle to calculate FICA!

    --
    - Pithy comment goes here.
  47. There's only one solution... by __aaclcg7560 · · Score: 1

    Bring back the dot matrix printers! You're not a real programmer until you printed your code in eight-bit block letters on green-and-white bar continuous paper and ripped it off the printer. Now get off my lawn!

    1. Re:There's only one solution... by Anonymous Coward · · Score: 0

      sigh....I was just lamenting my MX-80 Epson dot matrix printer...seems my HP scan/fax/print/copy/wifi enabled printer is broke again,right after I fed it 60$ of ink.

      I liked coding with the long continuous sheets of paper, made it easy to track and follow all the goto's. Sigh....fond memories drawing pencil lines up and down the long continuous sheets to track all the branching.....at the UCONN computer lab, where the nice man would open the metal window up and yell at us, at 1AM. And if he liked us he'd come out at least once an hour and put our printouts in a box for us to examine our next syntax error.

      Didn't like the punch card decks though, too easy to crease an edge and cause the deck reader to jam and mutilate the next 10 cards.

      Now get off my lawn.
       

  48. Basic is way Older by Anonymous Coward · · Score: 0

    BASIC (2002)?? Kemeny and Kurtz wrote BASIC in 1964 at Dartmouth.

    1. Re:Basic is way Older by Anonymous Coward · · Score: 0

      its a link to a (2006) article you illiterate moron

    2. Re:Basic is way Older by tompaulco · · Score: 1

      its a link to a (2006) article you illiterate moron

      It is not illiterate to read something the way it was written rather than the way the author was thinking about it. In fact, it is not illiterate to read anything at all. Perhaps the word you meant was literal, in that he read it the way it was written rather than read the author's mind to see the way the author should have written it.

      --
      If you are not allowed to question your government then the government has answered your question.
  49. The Chemical History of a Candle by oh_my_080980980 · · Score: 1

    Teach that, far more important that programming.https://en.wikipedia.org/wiki/The_Chemical_History_of_a_Candle

  50. those samples suck. by happyjack27 · · Score: 1

    why do you use an overly-simplified vb code against overly-complicated js code? it's apples to oranges.

    This is what the code really should look like:

    for( user : users) user.sendMessage("Hi.");

  51. When there are fewer initial options, people... by PotatoHead · · Score: 1

    ...grok programming more quickly and easily.

    This all comes down to what one has to know in order to attempt some programming. BASIC requires one know very little to get something useful done. They try the PRINT statement, and that's cool. GOTO, INPUT, strings, numbers, basic math follow.

    From there, you can do pretty useful programs!

    EXCEL works a similar way. You see what cells do, then you find things like autosum, then you put a little bit of math in a cell, and suddenly, you can make some really useful spreadsheets. I know people with about that level of knowledge modeling businesses to great success. It's not the most advanced use of EXCEL, but it works fine, they can change it, they get the benefit of some automation and can communicate advanced ideas to others with relative ease.

    Way back in the day, before EXCEL, I had used BASIC to compute a whole pile of useful manufacturing related things. Saved me a ton of time, and I sold those and some CAD system programs to get a reasonable PC. All development was done on some 8088 clunker from a thrifty store. (yes, it ran the CAD system, having exactly the minimum requirements listed on the box)

    The CAD system had a BASIC like language built in. Was cake to do this. I did know something about programming, but I also was able to teach others how to make useful programs on just little nubs of knowledge. Some of them advanced, getting into IT, systems, etc... while others just used the programs they made and were happy about it.

    Indeed! The print is too small.

    Best use case for new programmers, is to maximize utility while minimizing knowledge dependencies. They don't need much to get the spark. Once they get it, as they progress, they will want out of whatever little environment they started in. The ones who really have aptitude will get out and do just fine. For many others, they will just use the thing and be happy, or move on and not care so much.

    We really should give everybody a go. Find out who is who.

    Think of this like public speaking. We make everybody do it, or most everybody. Most people experience an ordinary, "I can do this" outcome. Some of us find out it's not for us, and still others find out they are great somehow. We lose out if we don't run everyone through.

  52. C++ by Brannon · · Score: 1

    "If exposure to C++ hasn't destroyed your ability to think logically, ..."

    -- Leslie Lamport

  53. This is idiotic. by Anonymous Coward · · Score: 0

    He is comparing loops to a single print statement. Print statements look nearly identical in the two languages.

  54. Start with bash and a better selection of tools by John+Allsup · · Score: 1

    The first thing I write in bash is a command I call 'd'. I use it alot. It functions like Forth's colon command, in the sense that I write:

    d cmd 'line1' 'line2' 'line3'

    and thus can create new commands with a single line. It is not perfect, and I am playing with the idea. Bash's array functions were never intended for Lisp style metaprogramming, but bash is standard, and I want things I can easily run on a webserver over ssh, which rules out esoteric languages. But the above is an example of a template script, which takes input (either command line parameters or stdin) and then generates a new script based upon it. My version of d is 9 lines long.

    Why I should need to write ten tons of boilerplate to get anything done is beyond me. The beauty of basic and forth is that you can do useful stuff with one or two lines. Likewise bash. Object oriented programming and class structures are great teaching tools for teaching CS kids how to design a program. In the modern world, this has turned into a computational cocaine habit, with programmers routinely writing 100,000 line behemoths with more bugs than one cares to count, and no serious possibility of turning it into something reliable. The old unix philosophy was to have a good selection of simple tools, and a means for combining them together. Forth did similar. When I code in PHP or Javascript, I do similar, and keep things as simple as possible. Importantly, the cult of adapting computers to suit humans has a nasty downside, resulting in computing devices being seen as magic black boxes with flashing lights which may as well be powered by unicorns. Only by keeping things simple can we hope for programmers to have an end to understanding of what they are doing, from the foundations upward.

    --
    John_Chalisque
  55. BASIC was easy by PPH · · Score: 1

    because we didn't have to worry (too much) about the target platform. "Hello world" was pretty much the same on a PDP-11, DOS PC or whatever. Now, people are giving examples of Javascript in a browser (so you need to know what <script> and </script> are for), Facebook, etc. What about on an Arduino?

    You think this is tough for a kid? Wait until you get into the real world and have to listen to some supposed CS grad whine that they can't figure out Xlib. Or how to write an init shell script?

    --
    Have gnu, will travel.
  56. LOGO Turtle graphics FTW by Anonymous Coward · · Score: 0

    So many of my friends didn't even get "programming" until we did LOGO at school.
    I think the authors are exactly right about this... we're looking at it expecting far too much.

  57. Why Johnny can't Code? I'll tell you why ... by jrbrtsn · · Score: 1

    There's an app for just about everything, so Johnny has no reason to learn to code. The main impetus for learning to code is to scratch one's own itch. If there are a dozen backscratchers handy, why build one yourself?

  58. Overkill indeed by Tablizer · · Score: 2

    I generally agree. When I went to teach one my children programming, I chose BASIC over newer alternatives. There's too many features and abstraction for newbies in say Python.

    I can explain BASIC in simple English: "A GOSUB statement allows you to reuse the same lines of code from different spots in the program. It's like our little "execution guy" [already explained to kid] has a rule: when he sees GOSUB X, he writes down the line number of the next statement after that GOSUB in the "Return List". He then jumps to the given destination (line # X) and keeps executing until he sees a RETURN statement. When he sees that, he then checks the Return List we talked about to see where to go back to, crosses it out, and goes back."

    It's simple "mechanical" rules of the form: if the "execution guy" sees such and such, he does this and that.

    No crazy abstraction speech that goes over a kid's head, just easy step by step rules and clear-cut "parts". Statements have a clear-cut reference ID (line numbers) that can be written down per our model's "rules". You can check their work to see the line numbers.

    (I don't need to get into stacks yet when starting out, but when the time comes, it's merely a clarification on how multiple items on the Return List are written and used by the Execution Guy. One can build on existing explanation idioms.)

    If you think otherwise, I challenge you to present a simpler, more approachable way to explain function or sub-routine calls in say Python...

    1. Re:Overkill indeed by Anonymous Coward · · Score: 0

      Feh. Kids these days get to learn coding from a wimpy civilian named "execution guy"?

      Back in my day we had had to learn from the infamous Gen P. Fault, USMC [Retired]. That dude rules with an iron fist: If he didn't like your program, he'd just terminate your program and print his name on the console.

      GENERAL PROTECTION FAULT
      C:\>

  59. Ruby equivalent by Anonymous Coward · · Score: 1

    The Ruby equivalent to the BASIC example is
    puts "Hello, world!"

    The example is only more complicated because it's doing something more complicated.

  60. thus Perl6 is better than BASIC for beginners by Anonymous Coward · · Score: 0

    say "Hello World"

    should be simpler for children than "print" as dot-matrix printer usage faded away.

  61. BASIC is a good first choice by grimfate · · Score: 1

    I taught myself how to program and I did it using QBASIC and the help menu included within QBASIC. (This was in '98, so I often programmed on a computer with no Internet access and cellphones with Internet were pretty rare, if they even existed in my country.) I think if I had tried anything else, I probably would have got bored and abandoned programming before even achieving anything. To simply make a program in Java requires writing code you won't understand for a while. And getting user input is daunting for a newbie. C/C++ is the same. And IDEs can be troublesome. Even JavaScript is still troublesome for a newbie to get user input and print to the screen, when writing from scratch. QBASIC, on the other hand, was great. The IDE was small and easy to use and the language itself made simple tasks easy to accomplish; "print" followed by a string to print to the screen, and capturing input was 1 or 2 lines of code. Starting simple and working your way up I feel is a great way to keep someone's interest (especially very young people), especially when you don't have to write a dozen lines just to get your program to run or to achieve simple tasks. QBASIC is a bit outdated, but I'm sure there are good modern choices for writing and running basic.

  62. As an alternative by Anonymous Coward · · Score: 0

    What about NOT teaching Johnny to code? The times when knowing how to program could lead to a lucrative job and a prosperous career are long over. We're 20 years past the end of that era. Today, coding is the digital equivalent of digging ditches. IT has held to this fake glamorous facade more out of desperation for a dumpload of desperate nerds of average intelligence who think of it as rocket science. It's not. IT used to be the Big New Thing in the late '70s to late '80s, but by the mid-'90s everyone with half a brain knew where it was going. Now there are way too many coders, wages are low and jobs can be easily exported. It's over. We're not bringing that era back, ever. If you care about your kids, don't cause them to become irrationally attached to a trade that can only lead to misery.

  63. Big ass sigh by LordWabbit2 · · Score: 1

    Teaching people to code is not done overnight, or after a few lessons. All this will do is create a bunch of people who "think" they can code, which is annoying to those of us who know how to code.

    --
    There are three kinds of falsehood: the first is a 'fib,' the second is a downright lie, and the third is statistics.
  64. Fuck coding by Anonymous Coward · · Score: 0

    Coding is for retards

  65. Basic is a lot older than 2006! by Marxist+Hacker+42 · · Score: 1

    Dang kids, get off the lawn.

    I was coding in Basic in 1978.

    And it was a well-established language even then- about 15-20 years old at that point I think.

    --
    SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
  66. BASIC is named as such for a reason by MoarSauce123 · · Score: 1

    The acronym BASIC was chosen for a reason, it is very basic and for the most part fairly simple to master while getting results quickly. That is why I had no real problems to pick up VB6 way back, but gave up on the various C dialects, anything .NET, and above all Java, which combines the nastinesses and complications from all programming languages into one nice packet. BASIC was the right middle ground between easy to learn but quickly becoming useless (such as Logo or more recently Scratch) and very difficult to master but quite powerful (such as C, Java). Maybe Python fits in the middle and definitely PHP except that the hard core dev gurus point to the door when you mention you like PHP.

  67. Re:execution of instructions is not a state machin by Anonymous Coward · · Score: 0

    The problem with this is that the person will think of processors as state machines, black boxes with switches you set.
    While it is absolutely essential that the person programming has the mental concept of a black box that executes instructions, does actions.
    Programmers without the idea of the executing of instructions instead of a state machine have a very difficult time writting good code.
    They don't use the tools (programming concepts) right.