Slashdot Mirror


Drag-and-Drop "CS" Tutorials: the Emperor's New Code?

theodp writes: Teaching kids computer science is a great movement," writes HS senior David Yue, "however, to overly dilute the magnitude of the difficulty in regards to the subject area of coding and to create the illusion of mastering a 'superpower' (Code.org) is a huge mistake. There are many videos and articles on the Internet these days that have demonstrated positive support towards computer science education. Below these articles, one can find many comments, left mostly by parents and supporters. These people usually express how proud they are that their children have an opportunity to learn computer science or how proud they are that computer science is being integrated at a more substantial level into the education system." But Drag and Drop Doesn't = Coding, argues Yue. "Parents and teachers today who aren't technical need to be aware that the drag and drop code or the candy-coated learning process does not effectively teach children programming but eventually causes a huge amount of shock once they are immersed in real code." Yue's Emperor's-New-Code warning comes days before President Obama — a graduate of Code.org's drag-and-drop Disney Princess coding tutorial — asks Congress for $4-billion-and-change in the upcoming budget to fund his "Computer Science for All" K-12 initiative.

158 comments

  1. Visual vs wall of code by Anonymous Coward · · Score: 3, Informative

    It shouldn't matter how the code itself is created. You can code the same thing in any number of languages in any number of code types.
    If the kids don't know what loops are, what case statements are etc, then they'll still suck at "coding" even if you are dumping a bunch of text based functions on their head.

    1. Re:Visual vs wall of code by mh1997 · · Score: 5, Insightful

      It shouldn't matter how the code itself is created. You can code the same thing in any number of languages in any number of code types. If the kids don't know what loops are, what case statements are etc, then they'll still suck at "coding" even if you are dumping a bunch of text based functions on their head.

      You are correct. Not only that, the learning objective with drag and drop might be colloquially called "coding" but in reality it might be to teach the logic of problem solving and the logic of coding using graphics, yet still having something that either works or does not work at the end of the project. Thinking logically before putting fingers to keyboard is a skill that needs to be learned - seeing the working project at the end is motivation.

      Lego Mindstorms is an example of this. Drag and drop the objects, have the robot do something and then troubleshoot why it did not work (both hardware and software). Then build on success. As you become more proficient, you can solve some pretty complex problems. When the problems become too complex, you can move into a variety of actual languages to either solve a previously unsolvable problem or solve the problem in a more efficient manner.

    2. Re: Visual vs wall of code by Anonymous Coward · · Score: 0

      Definitely agree with this. Learning the syntax of a language does not make you a special snow flake.

    3. Re: Visual vs wall of code by BonThomme · · Score: 2

      unless you learn SNOBOL

    4. Re:Visual vs wall of code by SNRatio · · Score: 3

      Lego Mindstorms is an example of this. Drag and drop the objects, have the robot do something and then troubleshoot why it did not work (both hardware and software). Then build on success.

      Any thoughts on Labview? My only experience for using it to build a simple robot (albeit with lots of levels of nested structures) was that I would have spent a lot less time learning Arduino's cut down version of C to do the same thing.

    5. Re:Visual vs wall of code by umghhh · · Score: 1

      That is only partially true. From what I see there are different types of coding these days than 30ya. Back then you had to code all yourself or use few libraries that were available. Today you still have complex infrastructure projects requiring proper engineering skills (which reach well beyond coding) on one side of he scale and bits and pieces that require just gluing few things and a nice user experience sort of thing. This is not to say one is better than the other but coding as it were (i.e. the complex 'infrastructure' projects I mentioned before) is just one of the many areas. There is huge amount of assembling stuff from complicated pieces of software for instance where coding is not required but knowledge about huge modules that are being phased out and new ones being phased in. Many different things. To use a car analogy - the blacksmith that could do anything for the horse and the cart has been replaced by many specialists doing different things from engine research, battery, mechanics and passenger protection and now some thing that you can assemble the things from modules and work only on some sw and have a car anyway - which is probably true to some extent already. This CS courses are a silly simplification to the needs that were there 20ya. Today it is more like knowing how to use basic tools and small scripting that is needed in some places. Not sure if even that is needed for most of humans walking the earth today.

    6. Re:Visual vs wall of code by Drethon · · Score: 1

      Yep, the hard part is usually not learning the few rules of the language itself (though that is added pain) but learning to design, in complete detail, every step needed for the program, without missing any.

    7. Re:Visual vs wall of code by gsliepen · · Score: 1

      Labview is a horrible language. Not only is it proprietary, but if you try to do anything complex your programs quickly start looking like a horrible spaghetti mess.

    8. Re:Visual vs wall of code by gallen1234 · · Score: 1

      It's not quite that simple. I've been teaching math for years and I see this happen all the time with classes that use products like MyMathLab. Students use all of the "help" tools, get the right result and think they know what they're doing. In reality, they didn't solve the problem - the computer did. Many of the students who do this stumble badly when they're presented with a problem that they have to solve without any support. That sounds like what's happening here. There's a very big cliff between drag and drop and looking at a blank page.

    9. Re: Visual vs wall of code by Anonymous Coward · · Score: 0

      I agree with you. I teach at the community college level (math and engineering) and feel that some of these efforts are missing the point. If you want to teach logic, teach logic. If you want to teach programming Tracy programming. Etc... The drag and drop model is not suitable for this type of teaching/learning. It's as nonsensical as multiple choice questions in an engineering exam.

    10. Re:Visual vs wall of code by 0100010001010011 · · Score: 2

      You are correct. Not only that, the learning objective with drag and drop might be colloquially called "coding" but in reality it might be to teach the logic of problem solving and the logic of coding using graphics

      I use Simulink for a living. This is exactly what it it is, the buzz word is "Model Based Control". It doesn't mean I spend any less time trying to figure out the logic of how things work. Our whiteboards at work are covered with sketched block diagrams on how we need to implement a strategy.

      Almost every company I know of has moved on past C for their engineers and just has them design and implement algorithms in Simulink. It's why the are a lot of positions open for Simulink across the country.

      It writes better C faster than I ever could. Including C that meets ISO® 26262, IEC 61508, EN 50128, and related functional safety standards such as IEC 62304 and it's cutting development time in half

      I got an Arduino Robot the other day and I spent more time messing around with C than I ever have with Simulink. I can make a control system to run a 16 cylinder engine in a half an hour. Drag and drop an engine speed sensor, drag and drop injector block. Toss in some PID control and it's done. Right now I would kill for a Python equivalent of Simulink but nothing comes close, I'm about ready to just make an Arduino mako template so I can teach python to write my C for me.

      Not that people that need to know C disappeared, they're just the ones writing our 'device drivers' for Simulink. When I drag and drop a "Digital I/O" block into the model I trust that they made it so it works. (And sometimes it doesn't, but that's all code). It validates the datatypes. Does fixed pointing in a straight forward manner. I know most people think autogenerated code is big and scary but I trust it better than I trust some guy that took a few C courses in college.

      Additionally it's much easier to let engineers do stuff how engineers do them and programmers how programmers do things and not make the engineers learn programming or the programmers learn engineering. (Not that we don't exist, but we write the device drivers)

      It's why a lot of dev boards also have Simulink libraries. It's not that I don't know C or assembly it's that I'm tired of dicking with it and just want to make a controller. I can take the same Simulink model and compile it for multiple vendors and even different devices for that vendor.

      I can swap dev boards without changing any of my model logic in a few seconds. Even compile it for FPGAs and PLCs.

      Further reading:

      1. http://papers.sae.org/2013-01-...
      2. https://www.mathworks.com/tagt...
      3. http://www.mathworks.com/compa...

      [Meta: Speaking of taking a lot longer to write. This post took an extra 5 or so minutes because I had to format all of the HTML. Please switch to Markdown or Restructured text. There's a reason we use it in industry, it is faster.]

    11. Re:Visual vs wall of code by plopez · · Score: 1

      So C is to the language you use as assembly id to a compiled language. That would make sense. Esp. since C has been referred to as a high level assembly language.

      --
      putting the 'B' in LGBTQ+
    12. Re:Visual vs wall of code by __aaclcg7560 · · Score: 1

      In reality, they didn't solve the problem - the computer did.

      I saw this quite a bit during the early days of the web. Many so called "web designers" knew how to create web pages in Dreamweaver, Frontpage or Word. But occasionally something broke, they couldn't fix it and asked me to take a look. Because I learned HTML coding with a text editor (still my preferred tool 20+ years later), I was able to plow through the bloated spaghetti code that these programs produced and fix the offending line of code.

    13. Re:Visual vs wall of code by TechyImmigrant · · Score: 1

      Labview is a horrible language. Not only is it proprietary, but if you try to do anything complex your programs quickly start looking like a horrible spaghetti mess.

      This.
      When you think you need labview, it's time to use C, or if you're lucky, a nice language might be available.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    14. Re:Visual vs wall of code by 0100010001010011 · · Score: 1

      Yep. It all comes down to trust of a toolchain.

      I trust Simulink makes my blocks into the appropriate C (& C++) just like some people here trust that their assembler converts their C into the appropriate byte language.

      If you can't trust your tools you'll never get work done. And it's not that I don't enjoy building hammers, or drills or table saws it's that at the end of the day my job isn't to build the hammers or drills or table saws, it's to build something using them.

    15. Re:Visual vs wall of code by Anonymous Coward · · Score: 0

      It shouldn't matter how the code itself is created.

      As a professional software engineer, I disagree with that. It absolutely matters how the code was created. If you cannot create the code yourself from scratch and must rely instead upon templates, wizards and drag till you drop GUIs, you're doing it wrong. We already have far too many people like that in this profession and the public wonders why their software is chock full of silly bugs, runs slow and reliability is poor. Using tools may be alright, if you know what you're doing, but if you could not work without them or don't understand what they're doing for you under the hood, you're just asking for trouble. When push comes to shove, there is no substitute for the text editor and the command line. Giving kids a false sense of achievement was a disaster for my generation with the whole "self esteem" fad and "everyone gets a trophy for participating". Unfortunately for our kids, the liberal dingbats who inhabit our public education system seem to have learned nothing from the 1980s and remain intent upon repeating the failures of the past. People like me succeeded in spite of public education, not because of it. Educators and their Code.org friends would do well to remember that.

    16. Re:Visual vs wall of code by superwiz · · Score: 1

      There are no case statements in Python. So I guess no programs are written in Python.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    17. Re:Visual vs wall of code by KGIII · · Score: 2

      As a guy who's working on a robot, with C, you might be on to something. His name is Rex. He's meant to come when he's called. He's meant to bring me a remote. No, it's not a serious project, I'm just trying to avoid wet-ware bit rot as my age is increasing at a seemingly faster rate than normal.

      Oh, he has a sister. Her name is T but she's not a robot and she's not meant to move. She's ready. She's able to play media like she's supposed to. She's smart. Rex, her brother, is a lazy bastard. He actually came when I called. Once. Entirely by accident. He does, technically, try to move when called. However, he's retarded and goes any direction that he damned well wants. So far, that's been in my direction exactly once. Someone has to have a voice following library but I've not found one - I did see one that might work. It's in Java. Rex is getting murdered in his sleep. I'll probably wake his sister up and force her to watch me murder him just in case she gets any ideas.

      On a serious note, it has been fun and I am so rusty that it's almost like learning anew. When/if I get the code squared away *and* looking presentable, it'll be the first C code that I've given away since about 2003. However, I might end up scrapping it and going with Java. I don't know a damned thing about Java but I'll be damned if there isn't a library for *everything* out there. Want to mix a cake with a dildo and have it play a jingle and flash LEDs? There are three libraries and two of 'em are able to be hosted remotely and support Twitter, Facebook, and a toaster.

      --
      "So long and thanks for all the fish."
    18. Re:Visual vs wall of code by Darinbob · · Score: 1

      And yet Labview is used in mission critical manufacturing areas. The code is unmaintainable but inevitably the original author leaves and the company is stuck with something no one understands. So you have manufacturing groups that seem to panic whenever someone suggests modifications.

    19. Re:Visual vs wall of code by Anonymous Coward · · Score: 0

      LabVIEW has its purposes. General coding is not one of them. Designing robust programs for test, measurement. data-logging is.

    20. Re:Visual vs wall of code by Anonymous Coward · · Score: 1

      If "coded" properly, LabVIEW is maintainable quite easily. It's just that many people who use it don't follow the best practices for it. And unfortunately there are the people that use the "just add/move things until it works" methodology.

    21. Re:Visual vs wall of code by Anonymous Coward · · Score: 0

      They way I figure it, using drag and drop to add code structures is just an eye-candied version of autocomplete in a text-based IDE, and it goes back to the original post: If they don't know what they are doing, they will suck at coding.

    22. Re:Visual vs wall of code by Anonymous Coward · · Score: 0

      Labview is awful. It's fine for having a grad student slap together some shit that moves a linear stage back and forth, but I've seen it used on bigger projects and it causes all sorts of issues. I don't want to get into detail, but I'll give one example. It takes far too long to just parse someone's math routines so you can START looking for errors. In any sane text based language, you can easily start the parsing. In Labview, you're stuck following wires through arcane triangles.

    23. Re:Visual vs wall of code by Anonymous Coward · · Score: 0

      Which is kind of ironic when you think about it, because Tim Berners-Lee never intended for HTML to be hand-coded by humans. At the time, he thought it would be just another document format you could save from a WYSIWYG editor.

      The fact that our HTML editing tools after 20+ years still do a crappy job tells you something... whether about HTML itself, or our ability to make tools, I don't know.

    24. Re:Visual vs wall of code by ArhcAngel · · Score: 1

      Of course programmers are going to say LabView is a horrible language because it's a GRAPHICAL programming environment. Its entire purpose for being is to allow scientists and engineers to quickly piece together a control environment for scientific/SCADA type equipment without knowing how to code. All scientists/engineers should be able to do logic and flow charts and as the OP pointed out that's where these "languages" shine. If you need more robust code LabView works with C libraries just fine. I wouldn't want to do a purely software related project with LabView but if I need to trigger an oscilloscope when a certain anomaly occurs and send that data to a function generator it's a lot easier than writing a C program.

      --
      "A person is smart. People are dumb, panicky dangerous animals and you know it." - K
    25. Re:Visual vs wall of code by luis_a_espinal · · Score: 1

      It shouldn't matter how the code itself is created.

      As a professional software engineer, I disagree with that. It absolutely matters how the code was created. If you cannot create the code yourself from scratch and must rely instead upon templates, wizards and drag till you drop GUIs, you're doing it wrong.

      Yes and No.

      The No part: Most of us know conceptually how a compiler tool chain works, but I doubt most of us can bang the fundamental machine code that a compiler/linker generates. The tool chain is in essence nothing more than a very smart template and wizard system.

      Similarly, I know how I could write a HTML templating system (say, something like JSP or Velocity), but I doubt I could get something that works like those in a reasonable amount of time.

      Reliance of templates and wizards and drag-n-drop magic =/= not knowing how they work.

      That is, a person needs to know the powers and limitations of those tools, and then leverage them appropriately for the right problems.

      The Yes part: Too many people rely on wizards without knowing how to use them appropriately. Then they don't know how to untangle themselves from the monstrosities they create.

      With that said, we must separate the issue of 1) people not knowing how to use high-level tooling from 2) the value of such tooling when applied correctly to the appropriate problems.

      In this very specific case, we are talking about graphical tools to introduce kids to programming. Not adults, not full-fledged software engineers, but kids. Somewhere along the line we have completely lost perspective of what truly matters in this particular context. We already have far too many people like that in this profession and the public wonders why their software is chock full of silly bugs, runs slow and reliability is poor. Using tools may be alright, if you know what you're doing, but if you could not work without them or don't understand what they're doing for you under the hood, you're just asking for trouble. When push comes to shove, there is no substitute for the text editor and the command line. Giving kids a false sense of achievement was a disaster for my generation with the whole "self esteem" fad and "everyone gets a trophy for participating". Unfortunately for our kids, the liberal dingbats who inhabit our public education system seem to have learned nothing from the 1980s and remain intent upon repeating the failures of the past. People like me succeeded in spite of public education, not because of it. Educators and their Code.org friends would do well to remember that.

    26. Re:Visual vs wall of code by luis_a_espinal · · Score: 1

      They way I figure it, using drag and drop to add code structures is just an eye-candied version of autocomplete in a text-based IDE, and it goes back to the original post: If they don't know what they are doing, they will suck at coding.

      Does it matter at this stage? These tools are typically geared to kids younger than 3-4 grade (hell, the prime target would be 1st and 2nd graders.) To me, what matters at this stage is to ignite a sense of wonder and a sense that problems can be broken down into discrete, repeatable blocks: look, I can move the character 6 steps front, then 6 steps back, and making him say hello! Repeatedly, like forever! I wonder if I can make it do something else.

      That's what these tools are for.

    27. Re:Visual vs wall of code by Marxist+Hacker+42 · · Score: 1

      The drag-n-drop languages teach loops and if-then-else trees pretty easily- case statements are a bit harder, but I know of one drag-n-drop language that has them as a feature.

      What they don't teach is how do debug 5 levels of CSS on a website. These kids are going to hate coding when they get down to the actual work.

      --
      SJW: a person who perceives an injustice, and while correcting it, commits a greater injustice.
    28. Re:Visual vs wall of code by q4Fry · · Score: 1

      Having used Labview in college, I am genuinely curious about how to "code [it] properly" in a fashion that makes it maintainable. My observation hereunto is that it becomes a wild spaghetti mess for all but the most trivial programs, but I'm willing to be convinced otherwise.

    29. Re:Visual vs wall of code by messymerry · · Score: 1

      I agree, GUI coding is the future...

      --
      Dear Microlimp: I give you 2 valid product keys for win7 and you reject both of them. Piss off you wankers!!!
    30. Re:Visual vs wall of code by Opportunist · · Score: 1

      The only purpose I could find in it is called "total job security".

      Aka "I DARE you to fire me! Nobody but me can make sense of the mess I created".

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    31. Re:Visual vs wall of code by Anonymous Coward · · Score: 0

      > That would make sense. Esp. since C has been referred to as a high level assembly language.

      Which is a contradiction in terms, but it doesn't really matter since the observation was originally made tongue-in-cheek. But then people started to take it seriously.

    32. Re:Visual vs wall of code by sachin.date · · Score: 1

      Couldn't agree more. You really need four things to code effectively: 1. Logical reasoning skills, 2. procedural thinking skills, 3. A good tool that is expressive enough for what you want to accomplish, and doesn't 'get in your way', and 4. A desire to code! It doesn't matter whether you are writing each line of code, or doing drag-n-drop. All those are ultimately visual representations of the underlying thought process.

  2. Jaybird! by Anonymous Coward · · Score: 0

    Is too!

  3. Blogs by Anonymous Coward · · Score: 0

    Writing blogs doesn't make you a real author either

    1. Re:Blogs by __aaclcg7560 · · Score: 1

      Writing blog posts makes you a writer. Publishing your blog posts for public consumption makes you an author. Not all authors are writers either.

      http://www.differencebetween.net/business/difference-between-author-and-writer/

  4. If it was easy by OffTheLip · · Score: 1

    everybody would do it. Like engineering, like medicine, like pro football, like many other things.

    1. Re:If it was easy by Anonymous Coward · · Score: 0

      Your mom, being a counterexample.

    2. Re:If it was easy by TheRealHocusLocus · · Score: 2

      If it was easy everybody would do it. Like engineering, like medicine, like pro football, like many other things.

      It CAN be easy.Just click the EASY button. Let's begin.

      Now click on the Think button. Tomorrow we're going to show you how to click and hold an actual Idea and drag 'n drop it into the Brain.

      Then we'll introduce the Wizard Wizard. Ever went looking for a Wizard only to find that what you're trying to do has never been done? Wizard Wizard to the rescue! There's even a Wizard Wizard Wizard that can help you decide what needs to be done, and a W4 that does this automatically. It is advised to run W4 and up in a secure virtual machine. After a period of self-assembly they invariably set about to exterminate mankind.

      Next you'll learn how to click on things that are outside your computer. Like this cat. The problem with visual IDEs is that too often the stuff inside the computer does not give you the tools necessary to drag anything useful anywhere --- or you just wind up with things on top of or inside other things. We'll experiment with pillows, freight trains and Russian Dolls and of course, cats.

      Then on the last day you'll learn how to splice DNA, which is derived from the ancient threaded Forth language. You'll meet the members of the 'DNA glitch' community, who jack around and patch DNA to see what those hilarious fucked up creatures do.

      Then when the world has been destroyed and everything is on fire and foul mutants hunt humans, you will receive your Certificate of Completion.

      --
      <blink>down the rabbit hole</blink>
    3. Re:If it was easy by PolygamousRanchKid+ · · Score: 4, Interesting

      Well, the problem is that a lot of politicians don't really understand what programming is all about, and they truly believe that programming is a simple, rudimentary skill. So simple that anyone can do it. All you need is couple of hours of online education, and hell, you can write a telecommunication billing system from scratch. The Obamacare website was the best example of this: the politicians and civil servants did not understand enough to manage the contractors.

      Too many of these folks think that programming is like changing a spark plug in your car. All you need is a wrench, your "Tool", and your "Education", clockwise is "in" and counter-clockwise is "out". Presto, you are now a fully qualified Ferrari mechanic!

      Hey, I have a Black & Decker drill, and a can of furniture spackle. I can now work as a dentist!

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    4. Re: If it was easy by Anonymous Coward · · Score: 0

      Which is why we never teach first aid and the first day of pre-med is open heart surgery.

    5. Re: If it was easy by KenHansen · · Score: 1

      The Obamacare website was the best example of this: the politicians and civil servants did not understand enough to manage the contractors.

      Nor were they able to draft a contract that withheld payment for work that produced that failure... Nor were they able to draft a document that withheld payment for fraudulent testing submitted to meet project milestones. But hey, they really took a big chunk out of that 40 million uninsured Americans - right?

    6. Re:If it was easy by 0100010001010011 · · Score: 1

      Just like typing? My wife works with doctors that were told "Oh, you don't need to learn to keyboard, you'll have someone to do that for you. You're going to be a doctor".

      Programming is becoming the same way. IBM's Watson is going to displace a lot of doctors. It just means the next generation of doctors is going to have to know how to make and use the tools given to them.

    7. Re:If it was easy by __aaclcg7560 · · Score: 1

      Like engineering, like medicine, like pro football, like many other things.

      My nephew wanted to be a pro baseball player. He played through grade school, high school and college. A scout sent him off to a summer baseball camp in Texas. After six weeks and 500 games later, he made the top 50 before being cut from the competition. Now he's doing PR work because he took an easy major in college. Meanwhile, a half-dozen of his friends are playing pro baseball.

    8. Re: If it was easy by plopez · · Score: 1

      How do you know if something is fraudulent if you know nothing about how it works? Ditto for setting timelines, testing, etc. How do you manage something you know nothing of?

      --
      putting the 'B' in LGBTQ+
    9. Re:If it was easy by Anonymous Coward · · Score: 0

      Hey, I have a Black & Decker drill, and a can of furniture spackle. I can now work as a dentist!

      Maybe in Cuba. Although, I hear that Britain and Canada also do socialized medicine, so maybe you could apply there too?

    10. Re: If it was easy by superwiz · · Score: 1

      Since when is being insured the same thing as being healthy? Life expectancy was rising before Obamacare. It stayed flat since its passage. I'd say life expectancy is a better indicator of quality of medical care than how much resources are spent on medical care or through what channels these resources are funneled towards medical care.

      --
      Any guest worker system is indistinguishable from indentured servitude.
    11. Re:If it was easy by Anonymous Coward · · Score: 0

      My last doctor spent more time typing things into the computer than he did talking to me about my symptoms.

      Basically doctors are so overbooked and swamped with paperwork these days, they just throw an antibiotic or antidepressant at you and tell you to go home.

    12. Re: If it was easy by Anonymous Coward · · Score: 0

      And you want pity? If he went to college for an education and not to hit a rock with a stick, he might have had a choice in his career.

    13. Re: If it was easy by luis_a_espinal · · Score: 1

      How do you know if something is fraudulent if you know nothing about how it works? Ditto for setting timelines, testing, etc. How do you manage something you know nothing of?

      Higher-level use cases specifying legitimate transactions (as well as those that are supposed to be rejected, you know, failure cases.)

      Before one even tries to code something, he/she must be able to explain it without referring to the technology being used. Otherwise, shit is bound to happen.

  5. What's the viable alternative? by Anonymous Coward · · Score: 1

    The real alternative is to get the stupid idea that "erryone" should "learn 2 code lololol" out of our miscreant-in-chief's head. Alas, that isn't going to happen - it's now at make-your-unborn-baby-listen-to-classical-music level of cultural delusion.

    But other than that, I don't see an actual alternative. I still cringe at the clueless math teacher whom programming class was foisted upon in my high school. $4B will barely cover equipment, it won't cover pulling people who actually know their business into elementary schools and high schools.

    I've seen college graduates who don't even know who Knuth is. I've seen self-taught, self-styled rockstars run away like bitches whenever they're tasked with something "hard". Random educators for whom programming isn't their passion or their full time job simply aren't going to produce anything of value here.

    1. Re:What's the viable alternative? by mikael · · Score: 3, Insightful

      Parents just want to make sure their children "get into computers" because that is where the money is (working in IT compared to working at McDonalds). Computers are programmed, so therefore their children must learn "computer programming".

      With high school education with BASIC, the teachers would start from scratch, introduce variables, arrays, strings, input and output, arithmetic, for/while loops, conditional logic, and each of those topics would be covered in a week. At the end of the course, you would be lucky to have got onto drawing graphs in ASCII. At the same time, the business community would make sure that you got to learn about mainframes, batch processing, punched card, magnetic tape and databases.

      At home, the programmable toys in the past were BigTrak\and some robots you could build with technical Lego. With computer software, there was Logo and printer/plotters. The first thing anyone did was to run the supplied tutorials or copy some code in from the instruction book. Then they would combine bits from the different tutorials to make their own programs. Eventually, they could write an entire program from scratch once they knew what all the different commands would do. Local newsagents would have racks of computer magazines with guides on sprite programming, MIDI sound programming, generating mazes, player-missile graphics, how to connect sensors, weather stations and just about anything else.

      It would make more sense to give students a catalog of home learning kits and let them order a couple for free. Anything taught in schools at a regimented pace is going to bore some students, and others still won't be able to keep up.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    2. Re:What's the viable alternative? by godrik · · Score: 1

      I've seen college graduates who don't even know who Knuth is.

      To be frank, no one really cares who Knuth is. Knuth infused computer science to the point where many classic algorithms are Knuth's and we just don't mention it. The shuffle algorithm is a good example of that, it is so classic that it seems to have existed since the dawn of time. The same effect happens with string search, most people will refer it as "string search", or "linear string search". Only people interested in the problem call it KMP; almost never I hear it called Knuth-Morris-Pratt.

      Knuth is a legend, he is part of computer science.

    3. Re: What's the viable alternative? by KenHansen · · Score: 1

      Parents just want to make sure their children "get into computers" because that is where the money is (working in IT compared to working at McDonalds).

      Imagine it works out exactly as it's supporters imagine, will programming still be a valuable job skill once 'everyone' knows how to 'program'? Once upon a time young women went to 'business schools' to learn a good-paying trade, 'typist'. Then parents insisted that every school offer typing classes, now what was once a career option is now a basic job requirement for any white collar job. (Typing isn't programming, but I see programming heading down a similar vector.)

    4. Re: What's the viable alternative? by mikael · · Score: 1

      Back in the 1980's during the "Information Technology revolution", my high school used to have typing classes using big clunky mechanical typewriters. In a small advanced teaching subject room, they had a single LCD line word processor. Along side with an Apple ][ with dot matrix printer and color TV/monitor.

      Everyone was really scared about what it meant. Some national companies had a 3:1 worker/manager ratio. Director : 3 x managers, 3 x engineers. With every department moving away from their own separate databases to a single national database, the workload was reduced by vast amount (no more paperwork being shuffled across in, out and pending trays to different departments). All those management jobs just disappeared.

      When the first computers arrived with keyboards, email, word-processors and spreadsheets, some managers felt they were "just becoming glorified typists".

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    5. Re:What's the viable alternative? by plopez · · Score: 1

      I see this as a replay of the "no child left behind (untested)" fiasco.

      --
      putting the 'B' in LGBTQ+
    6. Re: What's the viable alternative? by __aaclcg7560 · · Score: 1

      Then parents insisted that every school offer typing classes, now what was once a career option is now a basic job requirement for any white collar job.

      How many white collar professionals know how to touch type without looking a keyboard. That's a skill many schools don't teach anymore. Always embarrassing to run into programmers and engineers who have to hunt-and-peck every key on the keyboard (not just the special symbols). I've learned touch typing as a kid because I thought typewriters were the coolest mechanical devices in the 1970's. A useful skill to have in the early 1990's when I submitted typewritten college papers because instructors didn't accept printouts from dot matrix printers (not even in Near Letter Quality mode), and laser printers weren't in widespread use until 1995.

    7. Re: What's the viable alternative? by KGIII · · Score: 1

      I think there's some refinement needed with this.

      Also, full disclosure, the only classes I ever failed were typing - twice with the latter being at the collegiate level. Oddly, it was chat that made me able to type. On the various tests, I tend to be up in the 85 wpm with 100% accuracy. However, if I'm doing well and have an app running in the background, I've peaked over 100 wpm with a drop of about 5% in accuracy but it goes in spurts. The latter is *only* true if I'm typing what I want to type and using an app running to detect the rates. The 85 wpm is when I'm taking one of the tests.

      However, I have a point... I'm getting there...

      I went to a preparatory school, it was a boarding school, and I actually went there because my behavior was rather poor and I was "gifted" according to the school system. My parents were not wealthy. But, at that school, we had HP 5100s (or maybe 5900) which was a neat programmable calculator with a paper (not punch) card reader, magnetic strip card reader/writer, plotters, TV output, internal storage, and the likes. This was the late 1960s.

      I'm not kidding - I have a point!

      We had terminals and a time share with one of the colleges. That would actually get us mainframe access. Dartmouth was connected to MIT which was connected to Harvard, etc... We had a computer lab, observatory with telescope, and even a private alpine ski slope though that had a tow rope lift back then. It has a chairlift now. I'd like to point out that this was really not that ritzy a school but one of the oldest private boarding schools in the US.

      I'm getting to the point... I swear!

      The thing is, I absolutely hated computers. I hated typing. I hated a dumb terminal. I hated that they didn't *do* anything unless you made them. I thought they were pointless, stupid, and for lazy people. Then I went on to become a mathematician, even getting my Ph.D in Applied Mathematics, and (as I've surely explained in enough detail) I went on to model traffic "on a computer." Except, I still kind of hated computers. I learned to program, pretty much on my own, as an extension to my studies and then my career. I am a horrific programmer but I'm persistent and eventually it works.

      I promised you a point... Here it is...

      See, I programmed because I had to and I love computers now. I own an obscene number of computers but I'm just getting back into programming since around the start of the year. What I don't understand is why (beyond the obvious of removing the value of programmers by dumbing it down to the lowest common denominator) they're pushing everyone to learn to code. They're not learning to code, not really. They're learning to pass a test, complete a project, and say that they know how to program.

      Has everyone forgotten about the Law of Diminishing Returns? This is going to end up being a now-devalued skill that's filled by incompetent people who think that a few courses in school makes them an actual programmer. They'll increase supply, sure. They'll not be any good. How about letting the people with the desire or aptitude decide to learn? Who gives a shit what their gender or color is? If they're intelligent and want to learn, teach them and teach them well.

      The people who want to code can learn to code. Teach them computer operating basics, maybe a year of CS fundamentals in middle school, and then continued courses for those who actually have the desire and skills to perform. If someone needs to learn to program, or wants to, they'll do it. I know, I had to. Just like typing, I finally had cause to learn and no amount of special equipment, righteous indignation, or access to quality teachers motivated me learn to type. The results are more than acceptable for my needs.

      Teach the damned kids what they need to know and give them the chance to learn what they want to learn. This idea of using school as a way to model society is a tired experiment. Stop pressuring kids to conform to some cookie cutter standard. Stop devaluing the people with actual sk

      --
      "So long and thanks for all the fish."
    8. Re:What's the viable alternative? by KGIII · · Score: 1

      I mentioned above that I'd no problem with them spending a year in a low-level computer science class in middle school. Not hard, but low-level (and maybe with a send level that's a little more in-depth).

      Why do I mention that? Well, if anyone's following along, that's exactly what I think should belong in that type of class. It shouldn't even really have a computer in that class. It should be about how a computer works and a part of that is the understanding of who and what it is that enabled the device they have in their hand. It should contain stuff like basic computer security, computer history, languages and some of their history and obviously that's a finite list due to time constraints, the physical components, what an operating system does, what a browser really is, and simple technology key points and that the various levels and depth will be decided on by the student, the faculty, the parents, and any guidance administration faculty to ensure coordination over the long-term.

      The last thing that course should have is a physical computer with a internet access, zero games (unless they *really* write them), and sure as shit shouldn't have ANY operating system installed. That's if they get a computer at all. It's CS, not A++ Certifications. They should be taught the how, the why, the history, and then learn the current state, and the method. I'm sure you guys can think of ways to make that good.

      So, yeah... That's my opinion. I'm open to advice and I'm willing to listen to reasoning. However, I have no problem with them teaching CS in school. It should be an option. I'd even go so far as to say the CS course that I suggest be mandatory - we can discuss what it'd look like or you can argue with that, if you want. I'm quite keen on some other opinions. We should as hell don't need to do the gibberish that the various people are proposing. If we're going to teach them how to use a computer then we might as well teach them how to do it right.

      I don't think it'd take that much depth? Not really. A grown adult should be able to tell me what RAM is and what it does. They don't have to know the actual method that various RAM has used historically, nor do they need to understand a magnetic drum. They should know what binary is and why it works. They should know what a hard drive is, what the CPU is, what a GPU is, and maybe some standards and history. They should know what a networks and communications protocols do. They should even have the chance (this should be optional, maybe not required) things like SYN and ACK. They should know what an operating system is, no - what it really is. They should then learn some choices and learn to weight their value based on their goals.

      They should understand what software is AND why it works and the various types - such as portability, compiled, interpreted, and whatnot. They should know what compiling means (and how to do it could be an optional class - perhaps the following year so they could *opt* to take additional courses after that) and how a compiler works. They should know the difference between open source and proprietary. If we really have to then we should discuss copyright laws a little bit. However, my suggestion is that if we're going to teach about copyright that we should do so in a manner that lets them know what rights they do have and that they understand the concept of it. (I figure political pressures will be such that they make copyright education mandatory somehow.)

      And on like that. I'll avoid going into details because you can probably tell me better than I can tell me. The big thing is (to me) that I think there *should* be a CS course. I just don't think it should be the trash they're selling us. I think we should teach them a *mandatory* computer science course at around the 7th grade. If we absolutely have to then we can do one more mandatory one four years later which will either be a refresher of sorts (tech moves fast, four years is okay) or yet another advanced course. Maybe at that level, they'll separate into g

      --
      "So long and thanks for all the fish."
    9. Re: What's the viable alternative? by TapeCutter · · Score: 1

      I left HS in 1975, boys in my HS were not allowed to learn typing, cooking or dressmaking. Girls were not allowed to learn woodwork, metalwork or mechanical drawing. I also thought typewriters were "cool" but never so much as touched one until I bought a second hand Apple ][ (a decade after leaving HS). I have been a degree qualified software developer for 25yrs now. I don't give a flying fuck if you are 'embarrassed' by my inability to touch type because it has had exactly zero impact on my career.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    10. Re: What's the viable alternative? by __aaclcg7560 · · Score: 1

      I don't give a flying fuck if you are 'embarrassed' by my inability to touch type because it has had exactly zero impact on my career.

      I guess your jobs don't requiring fast coding. :P

    11. Re: What's the viable alternative? by Anonymous Coward · · Score: 0

      Because typing speed is the limiting factor in the speed of writing good code, right?

    12. Re: What's the viable alternative? by Opportunist · · Score: 1

      Because they essentially are.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    13. Re: What's the viable alternative? by Opportunist · · Score: 1

      No, but wasting time thinking on where the keys are is. I can't even imagine programming sensibly if I had to actually look at the keyboard and ponder where to find the letters I want to write.

      I can concentrate on writing code. You have to concentrate on writing itself. Personally, I'd consider this a huge disadvantage.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    14. Re: What's the viable alternative? by Opportunist · · Score: 1

      That's basically the goal, that we can create cheap code domestic instead of sending the work abroad. What good that would do, well, you can divine by gauging the quality of code you get from abroad.

      In the end I can reassure you that it will not work out. Programming is not just a skill you can pick up by drilling it into the heads of people. It's at the very least as much dependent on a certain state of mind (lacking a better term). You will certainly create a few people who will be more or less capable of slapping together some code, mostly in a cargo-cult, copy-paste fashion. And their programs may actually work. Sometimes. And that "sometimes" is exactly the problem. Because these people don't know how to take special cases into account in a way that they don't fuck up the result.

      And this is critical. Because the main reason companies want to use computers is to create results fast and without human work. And that entails that it is mission critical that you can rely on the results to be correct. Because if you can not, that advantage you want to get is null and void because you still have to put a human there to at the very least check the plausibility of the results, and in the end you might end up with wrong results which can be VERY expensive to clean up afterwards.

      And that's the huge problem here.

      With many other things in life you can hire cheap amateurs and if they fuck up, you notice it quickly and can fix it. If your plumber fucks up, you notice it quickly with the huge puddle forming in your basement. An electrician creating a mess usually means that the power is gone. Hopefully nothing worse. A programming error may surface after years, leading to costly all-night repair sessions from experienced programmers who tend to cost an arm and a leg. A security hole in a software you use can easily lead to even worse damage. And again, damage you might not notice until it is far, far too late to mitigate it.

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  6. Input method lock-in by Theovon · · Score: 1

    One of the reasons that I really dislike drag-and-drop methods of coding and schematic capture for circuits is that you end up locked in to one tool’s peculiar method of entry. If you decide you don’t like that editor, you’re stuck with it for old designs because you can’t always export and import proprietary formats. When writing code, I’m using a portable language, and I have my choice of compilers on different platforms.

    PCB layout is one of those corner cases that’s so physically-oriented that some of the steps really need graphical interaction. However, the tools have to export to standard formats that are understood by the PCB manufacturers. As long as you have those formats, you can switch tools with some degree of success.

  7. Look Ma, No Skills! by VynlSol · · Score: 1

    Mr. Yue should take comfort in knowing that all of those seven-year-old children claiming they know how to "code" can't compete with him in the job market yet due to child labor laws.

  8. I disagree by MiKM · · Score: 5, Interesting

    The Hour of Code isn't supposed to actually teach Javascript or other "real" languages. Instead, it's designed to give students an idea of how programming works in general and maybe pique the interest of students who might not realize that they'd enjoy programming. If the CS-for-all movement is to happen, then using a "dumbed-down" language with easy rewards is a good decision: most students would be bored to tears and turned off to programming if their program wasn't working because they mistyped a word or forgot a semicolon somewhere. A drag-drop interface is also great because students can easily experiment without having to worry about making syntax mistakes; instead, they focus on the big picture of how to make the robot do what it is they want it to do. After all, nothing is stopping schools from offering "real" programming classes to interested students or bright students like the author himself from learning how to code independently.

    1. Re:I disagree by Hognoxious · · Score: 3, Insightful

      Of course you're right. The problem is that a lot of these courses are hyped to a laughable extent - equipping tomorrow's workforce with the marketable skills to compete in the information economy, gubbins gubbins gubbins....

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    2. Re:I disagree by Anonymous Coward · · Score: 0, Troll

      Indeed. For the previous generation many were exposed to CS for the first time in school through a little turtle that they moved with very simple commands to draw basic geometric shapes. The important part is to pique interests and to demonstrate that under that shiny aluminum exterior all computers do is execute a series of very simple commands and how those individual commands, when executed together, can solve more complex problems. The so-called enraged need to get over themselves. They aren't the sacred guardians of the ancient rites, and yes, what they do can be boiled down into very basic premises.

    3. Re:I disagree by asylumx · · Score: 1

      Of course you're right. The problem is that a lot of these courses are hyped to a laughable extent...

      Yes, true, but EVERYTHING in today's world is hyped to a laughable extent.

    4. Re:I disagree by Hognoxious · · Score: 1

      Except hype. Nobody hypes hype. Not even Xzibit.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    5. Re:I disagree by fluffernutter · · Score: 1

      So then they give the kids a gui that has nothing to do with actual coding..... and that is supposed to help them determine whether they like coding or not?

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    6. Re:I disagree by Anonymous Coward · · Score: 0

      Chase and Status do. They have the hypest hype!

    7. Re:I disagree by Anonymous Coward · · Score: 1

      The problem with code.org is that it has managers and politicians believe they have found the super bullet to get everybody into jobs. It is not.

    8. Re:I disagree by AmiMoJo · · Score: 1

      Some of that is just being enthusiastic for the kids. I'm no expert on child psychology, but enthusiasm seems to be the norm for this sort of thing.

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

      Do you think kids know what the global economy is?

      Maybe parents are the target.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    10. Re:I disagree by lgw · · Score: 1

      I'd say so. Coding is design + typing + debugging. This removes the typing (and the need to learn syntax and wrestle with silly syntax errors) and much of the debugging.

      If you like coding with most of the tedious annoying bits removed, you might like actual coding. Or at least for "top down" people, it's a good approach.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    11. Re:I disagree by fluffernutter · · Score: 1

      The problem is that programming is really 90% tedious bits. Pipe dream was a great game, but I doubt it turned many people into plumbers.

      --
      Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
    12. Re:I disagree by Anonymous Coward · · Score: 0

      If the language (blocks in a GUI, or whatever) can still be used to implement algorithms like recursive fibonacci or the knight's tour, then I'd argue it still has quite a bit to do with actual coding.

      ... that said, I hated that fucking turtle.

    13. Re:I disagree by lgw · · Score: 1

      The "90% tedious bits" aren't the hard part of the job. Most people can do them. Most people simply can't organize their thoughts in a logical manner and think through all the cases. Plus, lead with the fun bit. :)

      --
      Socialism: a lie told by totalitarians and believed by fools.
  9. Assertions without evidence by Anonymous Coward · · Score: 3, Insightful

    So many assertions. So little evidence. Maybe drag and drop helps. Maybe it's worthless. If you're not referencing a study, hush. The plural of "anecdote" is not "evidence".

    1. Re: Assertions without evidence by Anonymous Coward · · Score: 0

      The plural of anecdote is meta study. Seriously, though, what the blogger fails to understand is that the difference between "real programming" and Scratch and the like is the level of complexity of the project, not the language. That will, I think, be beyond he gui plug and play programming approach, but would not be fixed by Java or any other "real" language.

    2. Re:Assertions without evidence by Anonymous Coward · · Score: 0

      This guy reads like a highschool student. He just pulls bogus statistics out of his ass:

      People with a working memory capacity of one-thousand must be exceptionally rare if they even exist: one in a million persons.

      I doubt he can cite a scientific study that suggests that there are 7000 people on Earth that can hold 1000 items in working memory. And he doesn't understand what working memory is:

      we possess a sort of short term working memory that can handle approximately seven items such as the digits in a phone number

      Well, it's not about phone numbers. This is not how we remember phone numbers, or else people wouldn't be able to memorize much longer strings of digits (or words, etc).

  10. Guess you haven't seen Unity then by Anonymous Coward · · Score: 0

    To be perfectly blunt the entire "drag and drop coding" is something that Unity, Game Maker, and a few other general purpose game making tools do. Sure you can go an edit code, but it often tries to persuade you use some native UI widget like in flash. Speaking of such FLASH is probably the first language that did the drag-and-drop thing, because you can put together entire flash cartoons without any code.

    1. Re:Guess you haven't seen Unity then by gl4ss · · Score: 1

      unity needs quite a bit of coding to do anything novel...

      oh wait.

      --
      world was created 5 seconds before this post as it is.
  11. It is code; the clue is in the name. by roystgnr · · Score: 2

    I program by writing in text files too, but that's just important for interoperability with other tools, it's not the definition of coding. Everyone knows that our CPUs don't execute ASCII, right? If it's Turing-complete, then it can be interpreted or compiled (i.e. "decoded") to do anything you want to execute.

    1. Re:It is code; the clue is in the name. by Anonymous Coward · · Score: 1

      I tend to agree with him. I haven't done a lot of it, but I've done a few of the code.org examples and they're extremely limited. I've done a fair bit with some other visual programming languages in the form of SDL, they're extremely limited and clunky. The problem with these visual languages is, coding isn't inherently a physical endeavor, it's a theoretical one. There's a reason it's considered an offshoot of mathematics. Yes, you can use visual aids for very simple examples, but quickly trying to make a visual representation becomes burdensome and confusing. When I was having to work with SDL, one of my co-workers had "the flowchart wall of shame" where processes mapped out through flowcharts that people should be ashamed of were posted. For a very long time the worst on there was the process an external customer had to follow to file a bug to be fixed. But then we started inheriting these SDL projects and very quickly everything was replaced with SDL charts. One particularly bad one was reassigning an IP address. Not a difficult piece of code to write, but when mapped out in SDL, just wow.

    2. Re:It is code; the clue is in the name. by safetyinnumbers · · Score: 1

      And these Scratch-like languages aren't too different from visual scripting systems used in game engines such as Unreal.

      https://www.google.com/search?...

    3. Re:It is code; the clue is in the name. by TeknoHog · · Score: 1

      Agreed. The hard/interesting part of coding is the logical design, and it won't get any easier if you replace words like "if" and "then" by visual elements that stand for them. On the contrary, it'll be harder to understand larger-scale logic if the syntax is overly verbose.

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:It is code; the clue is in the name. by ByteSlicer · · Score: 1

      Everyone knows that our CPUs don't execute ASCII, right?

      To be pedantic, they do execute some ASCII files.

  12. Programming is like writing a book by Anonymous Coward · · Score: 0

    First you need to learn the shapes of the letters. Then you learn how to spell words and put them into sentences. You learn stylistic elements and the structure of longer texts. Then you practice, a lot. Then, maybe, you write a book that someone wants to read.

    These programming crash courses teach you something that makes it look like you can write full sentences, but in reality you're barely able to read the shapes they put in front of you.

  13. Tell that to H1Bs by Anonymous Coward · · Score: 0

    Sorry to disillusion you, but how much actual code do you think is done on a billion dollar budget employing thousands of people to write a few thousand lines of code!

    Government projects are more about powerpoint skills and minesweeper than code!

    You should meet some of the H1Bs I work with! Man I wish they could drag AND drop! Such dual skilling would be a doubling of productivity!

  14. Tried teaching with Drag n Drop by Anonymous Coward · · Score: 1, Informative

    At some point there was a Lego Mindstorm competition for school children aged around 14 and I was hired to assist them on the final day. Lego developed a drag n drop way of programming, which is supposed to be usable for children. Mind you, Lego actually recommends using 3rd party "real" programming tools as they are better if you can figure out how to use them. However this competition was designed for the GUI approach.

    It was a complete disaster. Despite having worked on this project for a month, they were still pretty much clueless. While they had clearly seen the GUI before, their understanding of the result of the input they provided was like it was day one of trying the system. One group managed to make their Lego robot fail the task 3 times at the very same spot and I asked them why they carried on trying after they had seen that it doesn't work and the answer was "we try to get it used to the task and hope it will figure it out eventually". One group also vanished and was caught an hour later. It turned out that they had just joined the competition in order to cut classes and didn't care for it at all. That's always a good starting point.

    Also I would have to question the quality of the school teachers. Not in general, but the specific ones showing up for this competition. One in particular annoyed me. He was supposed to be the expert on the school he came from, yet he had no interest in talking about the tasks, theory behind it or anything. Instead he went on with ultra left wing propaganda about how the left wing activists should have the right to use the building they want to use (without paying) and that it's ok to kick out the capitalistic pig who owned it and how wrong the court and police was in saying otherwise. I was like "shut up". Also the case he referred to was one where the owner ended up going personal bankrupt due to getting stuck on the running costs without access to the building. The politicians at city hall decided to give the "young political minds" a building to meet in, but they refused and said they preferred the one they took by force and violence. What that has to do with programming is a good question, but according to that teacher it made perfect sense. Somehow I'm not surprised his pupils failed extremely badly.

    I'm not a fan of the modern school system. The learning by doing approach without any theoretical background and the "divide pupils into groups for debates" have failed every time I have seen it in action. You will not learn how to say multiply by talking to 3 other kids who can't multiply either. Go fix the schools first and make the teachers.... actually teach and tell the children what they need to know before trying to add even more stuff they can't learn to a level they can use anyway.

    Also regarding learning CS. I learned some languages and stuff and could code stuff I wanted to code. At least that's what I thought, but in reality I had problems diverting from the examples in the books. Once I learned C and focused on what is actually the basics in programming, I suddenly became able to design code unrelated to examples in any of the languages I knew at the time. I now firmly believe that the only way to really learn how to program something is to learn the basics and avoid all the shortcuts people come up with, like drag 'n' drop. People can put the jigsaw together while the teacher is watching, but they don't actually know what they are doing, making the whole task pointless.

  15. That's drawing. Neither CS nor code, which are dif by raymorris · · Score: 2

    > In Flash you can make a cartoon

    Yes, just like you can make a cartoon with colored pencils. That's called drawing. That's a left- brain, artistic activity. At my last job we had two people who did that.

    Those two people would then send the Flash file over to me, the right-brain guy who did the math-like process of programming (coding) those cartoons to do something useful. I couldn't do their job and they couldn't do mine because the two require fundamentally different ways of thinking. Not just different skills, but almost opposite skills.

    As I did the coding, I would code to function interface appropriate to the frameworks each of those Flash objects were embedded in. I would code in the ActionScript language to pass data back amd forth with the larger framework project.

    Designing those overall frameworks to hold any needed module and control the interactions between modules required some computer science understanding. The computer science part was language- neutral. A module could be written in any language. The computer science part was mostly about designing systems that are flexible, robust, expandable etc, totally unrelated to any specific language, whereas coding is all about expressing an idea in a particular language.

  16. Coding != Problem Solving by TwoUtes · · Score: 1

    Coding today has become a morass of files sprayed all over the landscape, taking all the fun of logic and problem solving away from "coding". To wit, when I first took up coding for a hobby, it was BASIC on an Atari interpreter. Easy, fast, fun. Then I went on to C with the Borland compiler for DOS based programs. Still relatively easy, but most of all, it was still fun to sit there, solve problems and make things happen with code. Fast forward to today and Visual Studio, QT, NetBeans, etc., spew out such a tangled mass of interwoven crap that it takes more time to figure out where to put a function or include a library than it does to write the damn code. Not to mention the insane verbosity of the languages (looking at you C++ and Java). I gotta say, it's not fun anymore. I can't blame kids for looking at this and walking away.

    1. Re:Coding != Problem Solving by Anonymous Coward · · Score: 1

      You should try Python. The fun comes right back.

      Mind you, the number of files is largely is function of project size and the need to manage complexity. In verbose languages, especially Java, you end up having one file for almost every entity in the system, so even the smallest projects end up being a big hairy ball of nothingness.

      Again, try Python. It will make you smile all day long.

    2. Re:Coding != Problem Solving by serviscope_minor · · Score: 1

      Not really sure how you find C++ more verbose than C. Also, C++ verbose? Are you writing in some ancient dialect with massive deep hierarchies or something?

      --
      SJW n. One who posts facts.
  17. Coding *is* Easy. by pugugly · · Score: 2

    Coding is Easy.

    Coding in the workforce, with a company guide that specifies language X in coding environ Y, remembering to put in remarks for the guy that has to maintain it that are both useful and not in iambic pentameter, with an object-oriented styleguide for a functional program that was determined by a middle manager who last coded in Basic and thinks "Goto" is bad without ever having understood why (and occasionally why not) and once suggested simply using an un-returned function instead ... is hard.

    But yeah - Coding is easy.

    Pug

    --
    An Invisible Entity of Vast Power whose existence must be taken on faith alone: Liberal Media
    1. Re:Coding *is* Easy. by Anonymous Coward · · Score: 0

      Stop signing comments.

    2. Re:Coding *is* Easy. by Anonymous Coward · · Score: 0

      Your argument is as valid as saying car driving is easy except when there are other cars on the road. While technically correct, it still isn't useful in real life situations.

    3. Re: Coding *is* Easy. by Anonymous Coward · · Score: 0

      No!

      AC

    4. Re:Coding *is* Easy. by Anonymous Coward · · Score: 0

      Not entirely. Every year my manager tells me I'm too slow because I spend too much time thinking about the problems before I start programming them, and every year I get told I am the fastest to get a projects production ready and I get a 10% raise. I haven't gotten a 10% yearly raise for the past decade because I listen. I get it because I do what needs to be done.

  18. piquing curiousity vs Dunning-Kruger by Anonymous Coward · · Score: 1, Insightful

    Piquing curiosity of kids and developing more well rounded and computer literate populace seems like a good idea. But there's also a risk of a bigger society-wide Dunning-Kruger effect, where we have a society people who think they are much more tech literate than they really are.

    Whether that balances out for the better or the worse, I don't know. But I'd rather we didn't focus so much on coding, as the tech skills one needs to survive in the modern world. Understanding public key cryptography. Good security practices. Basic conceptual stuff that can help them exist in a world of technology even if they aren't programmers. Then, the ones who want to go on to a CS career can be given opportunities to learn assembly language, CPU architecture, compilers, algorithms, and so on, to develop a foundation usable for a programming career.

  19. We don't need no education by Anonymous Coward · · Score: 0

    Our educational system dumbs down EVERYTHING, not just coding, and we don't stop at education... we've dumbed down our entire society. Hardly anyone knows how to build anything, and fewer still know how to build their own tools.

    I hope that at least the children are getting some sort of eye opening experience that will allow them to realize that there's a bigger better world out there just waiting for them to learn how to make it.

    Some of the children will love it, and the children that are naturally inquisitive will want to go beyond what they're being taught. (Yue seems to be a good example of this)

    But, isn't it important to remember that most languages out there exist primarily to make programming easier?

    I understand where Yue is coming from because I complain all the time about these developers that only learn one language (Java, C#, PHP or some other "easy to learn yet powerful enough to get the job done" language) and claim to be expert developers.

    Inquisitive developers tend to learn more languages. Good developers learn a lot of languages and then choose the right one for the job at hand, which could even be some form of drag and drop language; if it gets the job done then why not? Great developers don't hesitate in creating their own DSL if necessary.

    Those that do the hiring, and those that are involved in deciding a system's architecture LOVE these new languages and stacks because the developers that know the languages and stacks are plentiful. Although these developers aren't great, they're good enough to get the job done, and plentiful means more competition which drives down wages.

    Our educational system is there to prepare us for being wage slaves... nothing more, nothing less. Why would we want to introduce children to things that might lead them to do their own thinking?

    1. Re:We don't need no education by ColdWetDog · · Score: 1

      And yet, somehow, we are creating objects (the A380, the off planet probes, the LHC, enormous buildings) larger and more complex than ever.

      Something is working.

      --
      Faster! Faster! Faster would be better!
    2. Re:We don't need no education by Anonymous Coward · · Score: 0

      First, I was talking about USA, not Europe. Sorry for not clarifying.

      Second, providing examples where a few people are building things bigger and better does NOT mean we're doing better as a society.

  20. You're doing it wrong by fluffernutter · · Score: 1

    You are all just coding wrong, obviously.

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
  21. It's similar to learning a spoken language by RogueWarrior65 · · Score: 2

    Sure, I can go take a class on a foreign language but that doesn't mean I can write great literature in it. You'll know the mechanics of the language but it's a different matter to be able to express yourself so that a native speaker understands you. It's the difference between a button that says "reset" and one that says "overcharged"

  22. Depends on the grade by jader3rd · · Score: 3, Interesting

    I don't think that CS should be introduced until 7th grade. But other Slashdot users have mentioned that this drag and drop stuff is useful for the K-6 students. So hey, maybe it does help. Perhaps the drag and drop teaches some abstract logic skills that will help the students become a better thinker instead of a below average code monkey.

    1. Re:Depends on the grade by Anonymous Coward · · Score: 0

      What I do? A simple sink or swim test. I drop kids directly into a hex editor that's editing live program memory and change its opcodes.

      They don't even get an assembler, and the instruction set is undocumented. If they get bored and walk away, then they will never learn to program on their own. If they're forced to code they'll never write code to solve even simple computation problems on their own -- they'll use a calculator or paper.

      On the other hand, if the person ends up investigating the system and asking questions or even reverse engineers and writes a simple program, then they are natural born coders who would write code no matter the platform you threw at them anyway -- You couldn't prevent them from becoming programmers. Low level exposure from day 1 prevents that terrible "black box" which looms over the heads of all who start with a language higher than assembly: "But how does it know to do that when I say this?"

      Been doing this since 80286 days. Never fails. I've never once seen a person just walk away from the hex editor who was a natural born programmer. Hackers are digital explorers, and they rarely resist a challenge... esp. given the right mixture of intrigue and discovery.

    2. Re:Depends on the grade by Anonymous Coward · · Score: 0

      Okay, so you believe throwing someone in the deep end is a good way to determine ability?

      Maybe you'll find the really determined ones that way, but I'm more inclined to start with fundamentals and let them experiment. Giving them the most difficult task you can do with a computer, i.e. reverse-engineering an instruction set through trial and error using primitive tools, is a sure path to discouragement.

      One reason it took me so long to learn Unix is because all the tutorials are like, "type these things and this happens." No explanation of WHY you're typing those things, or what other things you can do. It's incredibly frustrating. You'd be surprised how far a good explanation can go toward firing someone's interest.

  23. Toggle switches by mcswell · · Score: 2

    And I say it isn't programming if you're not throwing toggle switches to set the bits.

    BTW, I once had a job running a CDC Cyber 170/750 whose boot-up instructions were actually set that way.

  24. Article summary is rubbish by goombah99 · · Score: 3, Interesting

    Empirically, things like Scratch are great learning tools. I taught my kids with it and then they went on to writing code. But they had all the mechanics worked out along with understanding of things like event dispatch, arrays, conditionals, string parsing, algorithms, the X-Y coordinate systems of the window. SO saying this is just sugar coated fruitloops is nuts.

    At the other end of the spectrum with things like Labview many scientists can go a whole career without having to code. it's a fantastic language once you accept it's constraints. Extremely good for both rapid prototyping and embedded instruments. It is the only language I would trust to edit in the middle of an experiment. You won't be writing a word processor or accounting system in it but it's not meant for that. But it's not sugar coated in what is meant for. The results are not a Toy.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Article summary is rubbish by Anonymous Coward · · Score: 0

      We just started with Visual Studio and C#. We will move to C++ once we are ready to self-manage memory

      Code.Org is just an excuse to put puzzle video games in front of kids. The amount of thinking needed to provide real curriculum to teach kids to code would be too hard for all of these sharks looking to make money off kids.

  25. A better use of educational dollars by NormalVisual · · Score: 1

    I see this big push for CS literacy in schools, and it puzzles me why we're talking about spending so much money to teach a skill that most kids aren't going to use in their everyday lives while we're dealing with stuff like the Common Core silliness and teachers/parents are having to pay for basic classroom supplies out of their own pocket. They have money to buy tablets/laptops for kids (and the associated IT support costs), but they don't seem to have the money to make sure that teachers have enough whiteboard markers, copy/printer paper, and other fundamental stuff that every school provided for the classroom 30 years ago.

    IMO. time spent teaching to code would be better spent on the 3 Rs, and far more useful to the kids. Intramural programs for teaching how computers interact with and affect society might be a good thing too, but not at the expense of skills that they *need* in order to function in their adult lives.

    --
    Please stand clear of the doors, por favor mantenganse alejado de las puertas
    1. Re:A better use of educational dollars by locketine · · Score: 1

      I agree with you that we need to do a better job allocating resources to classrooms but I think that's a different problem. At my own highschool, they poured money into remodeling our school while leaving us with woefully outdated health textbooks that were 30 years old.

      However, I think you're not seeing the big picture. IT is taking over the American economy and possibly the world economy. I'm meeting many people who have gotten wise to this and are learning basic coding skills to graduate from a minimum wage service job to web development. It would be transformational if everyone had enough understanding of CS to know how to automate processes, maybe not by themselves, but generally enough that they could petition their manager to hire a firm to do it. Just imagine an America where all the repetitive tasks were automated and that automation was exported to the rest of the world. This is what Obama is working towards with the focus on IT.

      --
      Think globally but act within local variable scope.
    2. Re: A better use of educational dollars by Anonymous Coward · · Score: 0

      It's for the same reason that there is such a push for more women in IT. They will try any way they can to increase the supply of IT workers and lower the labor cost for big companies. Why do you think it's always companies like Microsoft and Google behind this crap.

    3. Re:A better use of educational dollars by jader3rd · · Score: 1

      it puzzles me why we're talking about spending so much money to teach a skill that most kids aren't going to use in their everyday lives

      1. It's becoming a somewhat regular part of the lives of more and more people.

      IMO. time spent teaching to code would be better spent on the 3 Rs

      2. Once you've mastered aRithmetic, then what? Should students keep doing speed timed multiplication tests in 7-12th grade? Lots of students struggle with math above arithmetic. They could see why arithmetic is useful, but anything above that? Not so much. So by having the students apply math concepts to accomplish something (ie programming), they'll improve in High School level maths.

    4. Re:A better use of educational dollars by NormalVisual · · Score: 1

      Lots of students struggle with math above arithmetic. They could see why arithmetic is useful, but anything above that? Not so much. So by having the students apply math concepts to accomplish something (ie programming), they'll improve in High School level maths.

      Algebra is pretty much necessary, as is a basic understanding of probability/statistics. Trigonometry can be quite helpful as well. Calculus is handy to know at times, but most people get along just fine without it. Learning how to do stuff like decomposing polygons to calculate area, and deriving proofs in a basic algebra/trig course is going to give them most of the benefit of learning to think algorithmically. Any student that can't see where algebra/trig would be useful in their everyday lives has a poor teacher, because there are *tons* of examples.

      What math concepts are they going to learn in a dumbed-down high school CS class that will help them enough to justify that kind of expense?

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    5. Re:A better use of educational dollars by jader3rd · · Score: 1

      What math concepts are they going to learn in a dumbed-down high school CS class that will help them enough to justify that kind of expense?

      Variables and functions. See http://xkcd.com/1050/. It's the one where an ex-student is proud of the fact that in 20 years no one has asked her to solve for 'x'. This comic wouldn't exist if people were actually seeing how they probably actually do use some basic algebra, but they just don't know it. And at least if they saw it very blatantly being used in programming, they could at least understand why it's part of their school curriculum.

  26. Teaching kids CS? by Anonymous Coward · · Score: 1

    What are they going to teach them next? Algebraic topology? Categories? Ramsey theory? Computer Science is a branch of advanced mathematics; with the exception of the exceptional freak, kids do not have the maturity and background to learn it. Learning to code (especially if consists of graphical interfaces or Mickey Mouse languages) is NOT (I repeat NOT) computer science. Learning to use any of the so-called productivity tools (which are more tools that can be used to pretend that work is being done) is also NOT computer science. At best, we are talking computer literacy here - a far, far cry from computer science.

    1. Re: Teaching kids CS? by Anonymous Coward · · Score: 0

      I agree. Kids get a taste of programming when learning the process of adding two numbers together. CS is just a subset of math and a superset of existing math topics.

  27. Coding aptitude test by Anonymous Coward · · Score: 0

    We should design design a coding aptitude test as a pre-requisite for anyone wanting enter the field.

    We would pretty soon find that the majority of people is not well equipped to a career in coding and hence it makes little to no sense to spend money across the board on the off-chance that we catch all that might have some potential hidden somewhere.

    The code.org-like projecst are a bit like throwing a giant fne-grained fish-net over the oceans of this world just to catch "all the fish" wherever they may hide.

  28. It's never been better. by shess · · Score: 2

    When I was in school, a typing/keyboarding class was a pre-req for the computer classes. It was not at all necessary, I did not _actually_ learn to touch-type until a decade later, and at that point I did it because I decided it was stupid to be looking at the keyboard when I should be looking at the code. But, you know, thank goodness I got to waste that semester on something which was basically useless and which was trivial to learn once I decided I needed it.

    Later, the "computer" classes in school had a strong dollop of learning how to use a word processor of spreadsheet. Which may be valuable vocational skills, but they were like a "Math for Living" class when the people forcing everyone to take them thought they were getting "Algebra II".

    Even later, it was how to create a webpage. Because HTML is certainly the future and we'll never have WYSIWYG tools to do the heavy lifting to let consumers build webpages easily.

    And that's in primary and secondary levels. You can get college-level "Computer Science" degrees having only demonstrated the ability to wire other people's code together. Again, a valuable vocational skill, but _not_ computer science.

    I'll give you two opinions about why this happens. First, being able to write code is no more nor less useful than being able to fix plumbing - when it's useful, it's wicked useful, but if that's not your job, you'll probably never develop enough expertise to solve problems you actually see, as opposed to hypothetical classroom problems. Second, the instructors at the primary and secondary level generally don't themselves have enough understanding of the topic to be able to successfully teach it. Which isn't a bad thing, because as I said, it's not a worthwhile thing for most people to develop an understanding of the topic.

    Of course, in the end this isn't really much different from many other topics taught in schools. Most people don't ever need to analyze a work of fiction, or calculate the remaining angle in a diagram from the given angles. A big difference is that geometry in 2050 is going to be very similar to geometry in 1750, so you can productively teach the skill based on hundreds of years of doing it, and insofar as it is useful at all, it will continue to be useful. Most of the vocational computer-related stuff they teach today didn't exist 10 or 20 years ago, and much of it won't be useful in 10 or 20 years. The decades-old stuff which is still useful to me as a professional is the esoteric knowledge, not the applied knowledge.

  29. hopeless by vel-ex-tech · · Score: 1

    It's hopeless really. The media goes Everyone Can Code! Somebody goes "I wanna be a programmer!" So we get a nifty Disney princess turtle.

    Then the first time somebody comes along and says, "I need something that will let me schedule at 10 hospital networks that have 20 hospitals each with 100 different departments that need on call for 4-5 shifts each" it ends in tears with everybody accusing everybody else of being sexist and racist.

    1. Re:hopeless by Anonymous Coward · · Score: 0

      Don't worry, after Computer Engineer Barbie fucks up your network by uploading a virus, she'll just get Brian and Steven to write the hospital code for her. Win!

  30. That's how we teach every subject! by locketine · · Score: 1

    For most education topics, we're taught in layers, starting with the simplest and usually most abstract and slowly work inward. We all choose where we want to stop learning the subject once we get to HS/College. The most apparent places where this occurs is in Math and Physics for me. In physics, I first learned gravity pulled things down. Then I learned it generally pulled all things down at equal speeds. Then I learned it was a universal law of attraction between objects. Then I learned there's an equation to compute the speed at which gravity accelerates objects towards the ground. Then I learned there's an equation to calculate the force of gravity between any two objects.

    The same is true for CS but many of us started at what I'd say is too technical of a step and this was probably a result of the state of CS at the time I started learning it. CS education should begin with logic and rote instructions, and these things can be taught with a graphical language just fine. Even computations can be taught in this way and indeed that's how we start in math; ie. One apple and two bannanas adds up to how many fruit?

    --
    Think globally but act within local variable scope.
    1. Re:That's how we teach every subject! by Jiro · · Score: 1

      It is true that we do this for other subvjects, and it's genuinely useful as a first step. The problem is that the people promoting it don't understand this and don't treat it like it is.

      Nobody says that teaching kids that gravity pulls things down means "kids know how to do physics", makes parents proud their kids are "learning physics", helps get more girls into physics, or increases America's competitiveness in the area of physics. We have some idea that learning that gravity pulls things down is only a small bit of physics and there's a big gap between it and actually being a physicist.

    2. Re:That's how we teach every subject! by locketine · · Score: 1

      ...The problem is that the people promoting it don't understand this and don't treat it like it is.

      What people exactly? Are these people involved in planning the curriculum? Most likely, the only people that are confused and actually matter for achieving the long term objective, are the parents. Hopefully teachers will engage with parents to set them straight before the parents try to stop the CS curriculum because "it doesn't matter".

      I'll bet people had the exact same reaction to the space race. For instance, someone might have said "Oh come on, my son can't fly to the moon by learning algebra! He needs a practical skill, like coal mining."

      --
      Think globally but act within local variable scope.
    3. Re:That's how we teach every subject! by Anonymous Coward · · Score: 0

      That's not how I learn best. All of my teachers described me as very smart, yet I did poorly in school. The only teacher that I got good grades with was a science teacher that treated me like an adult. When teachers dumbed stuff down, it made no sense to me and I did poorly. When I was instead told how stuff worked in proper detail, I did very well.

  31. who still codes? by collaborate2build · · Score: 1

    at our shop we feed specs and requirements into a program, and after coffee the program gives us a packaged application to install. Nobody writes programs anymore. Our interns don't need any programming knowledge, and don't get any programming experience.

    1. Re:who still codes? by gweihir · · Score: 1

      Ah, yes, these "near-future" predictions, that never quite materialize, but always get shifted and always stay 5-20 years in the future. I predict for the purpose of coding, this shifting will still be going on in 50 years, and possibly much, much longer.

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

    Just like every other 'educational' initiative of the past two decades, kids learning watered down versions of subjects prepares them for absolutely nothing. It would be far better to offer real CS classes to students that actually have an interest and enthusiasm than giving every student something half-assed. Our schools in the U.S., largely thanks to privatization, are so very, very broken. Hoping congress kills Obama's proposal and they come up with something that is actually realistic and useful, because to those with the passion, CS certainly is. For those without it isn't any different than something like car mechanics - many will never learn, and they really don't need to. Dump the money into digital literacy instead (modern home ec, if you will).

  33. Bait and Switch by Livius · · Score: 1

    The problem (or at least one of them) is that there is a good idea buried under a bad idea.

    Trying to make every child into a professional programmer, on the assumption that programming will in the future be the equivalent of unskilled labour today, is just asking for trouble. In 10 or 20 years people will be very angry at having had so many resources - not to mention the children's opportunity costs - sunk into something that will simply lead to bitter disappointment for the majority who cannot realistically become programmers and low wages for the few who can.

    However, every child should learn *something* about computer technology because some minimal familiarity will be necessary to function in society, the same as people ought to know what lawyers, bankers, accountants etc. do, not necessarily so they can work in those professions, but to understand why and when their specialities are needed.

    Also children should have something intellectually challenging that teaches them problem-solving skills. In a sense, it doesn't matter what that is, just that it requires intellectual effort and development of skill. For a long time people did fine (well, adequately) teaching children Latin or the geometry of Euclid's Elements, without any real expectation that these would be practical skills; the goal was to force them to think. Programming can teach logic and also be highly motivating to children because it's a part of all the technologies that are glamorous and exciting.

  34. more than text files by OrangeTide · · Score: 2

    Coding doesn't have to only be about editing some text files and running them through a compiler. This isn't the 1970's.

    I've built my entire career on C and Linux. So my workflow is about editing text files all day, but my way isn't necessarily the only way or even the best way.

    --
    “Common sense is not so common.” — Voltaire
  35. Glue it, internet it, breach it by raymorris · · Score: 2, Insightful

    > on one side of he scale and bits and pieces that require just gluing

    Some gluing together projects are useful. People did some good stuff with HyperCard and shell scripts. Shell scripts are a great way to glue pieces together.

    What has changed is that now almost all software is on the internet, where they are attacked 1,000 times per day by script kiddies with tools that automatically looking for gluey buts. So shell scripts are now called "remote code execution vulnerabilities ". This is a real problem.

    In many fields, including electronics, hardware, pyro, etc there are two classifications of materials and technicians: standard and "life safety". Standard equipment is labeled "not for life safety applications ". Sometimes I think software (and programmers) need a similar distinction: "can hack together some code" vs "internet exposed ".

    1. Re:Glue it, internet it, breach it by 0100010001010011 · · Score: 1

      In many fields, including electronics, hardware, pyro, etc there are two classifications of materials and technicians: standard and "life safety".

      Which is why we use tools to check our models for safety certifications. Including difficult ones like DO-178B "Software Considerations in Airborne Systems and Equipment Certification"

    2. Re: Glue it, internet it, breach it by raymorris · · Score: 1

      If you work on that type of project, I'd be very interested in knowing about the work environment you've encountered. After 20 years programming, while constantly learning and improving my skills, I've grown wearisome of poor quality, of "duct tape and bailing wire" projects, and of people who just don't know what they're doing.

      I think I might much more enjoy working in an environment in which things are done RIGHT, where there is no duct tape and bailing wire. On the other hand, a very much like getting things DONE (and done right), and can get frustrated when there is far more "process" mandated than is necessary to ensure that it's done right.

      Do you have any experiences, advice, or thoughts to share with an experienced programmer considering going into life-safety applications like aviation or medical?

    3. Re: Glue it, internet it, breach it by 0100010001010011 · · Score: 1

      Posted up in the thread: http://dadatho.me/pages/what-i...

      We do it all in Simulink. If you have experience with C you'd probably be best making device drivers for Simulink.

      Not that we don't have people that don't know what they're doing in Simulink. I've seen some terrible 'coding', but Matlab helps to catch most of the errors, even if people get lazy with datatypes.

  36. My code solved a LOT of problems by Anonymous Coward · · Score: 0

    See subject: Giving users more speed, security, reliability & anonymity APK Hosts File Engine 9.0++ SR-4 32/64-bit http://start64.com/index.php?o... from 1 single portable .exe!

    -

    FREE, not 'souled-out' to advertisers (made almostalladsblocked NOT work).

    Does more w/ less efficiently vs. addons (clarityray blockable, redundant + RAM/CPU wasteful & local DNS servers @ home.

    Fixes DNS' security issues & stops tracking @ webpage + DNS levels via 1 file you NATIVELY have!

    (Firewalls do rest on less used IP address trackers/threats vs. host-domain names).

    -

    Obtains data vs. threats & ads via 10 reputable security community sites - easily edited by you using my program.

    -

    SPEEDS YOU UP 2 ways:

    Adblocking ALL ads + local RAM cached favorite sites @ TOP of hosts for faster resolution vs. remote DNS (for reliability + speed) vs. other "so-called security 'solutions'" SLOWING YOU!

    -

    All via what you already have vs. illogically "bolting on browser addons 'MOAR'" (clarityray detected/blockable + usermode slow & increased messagepassing, cpu + ram overheads)

    -

    MalwareBytes' hpHosts Admin (MalwareBytes employee verified it's source as safe http://forum.hosts-file.net/vi... ) hosts & recommends it -> http://hosts-file.net/?s=Downl...

    &

    MalwareBytes = BEST antivirus per recent testing http://www.av-test.org/en/news...

    &

    Safe proven by 57 antivirus programs in a 64-bit model https://www.virustotal.com/en/...

    +

    32-bit model https://www.virustotal.com/en/...

    &

    Installer-> http://f.virscan.org/APKHostsF...

    -

    * "The premise is quite simple: Take something designed by nature & reprogram it to make it work for the body rather than against it..." - Dr. Alice Krippen: "I am legend".

    APK

    P.S.=> By "yours truly" - "The Lord of Hosts" so-to-speak:

    "The image this title brings to mind is a mighty military commander who can at a mere word summon rank upon rank of protective power" -> https://answers.yahoo.com/ques... & THE WORD = hosts!

    (Accept NO substitutes)

    ...apk

  37. Re: That's drawing. Neither CS nor code, which are by Anonymous Coward · · Score: 0

    drawing is right brained

  38. Huge amount of shock when faced with real code?? by Anonymous Coward · · Score: 1

    Why are there so many coder religions about coding style and workflow, and so many coders who flatly refuse or are wholly unable to deal with most legacy code (filling them with profanities and resulting in many diatribes against the perceived "wrongness" of the code they're facing)? You mean to tell me it's because they learned to code via drag-and-drop methods?

    1) I can't see how more exposure to CS principles can hinder anyone in the face of such uncertainty and compexity
    2) Most professional programmers choke in the face of uncertainty and complexity anyway

  39. why isn't drag and drop coding? by superwiz · · Score: 3, Insightful

    More importantly, why isn't it learning to code? Who said that text is how instructions have to be given on how to generate compiled code? And anyway, typing is not really coding. Only putting holes in punch cards is real coding. It's even more effective and has more reuse than text. You can use the same card or reorder cards around if you want to create a new algorithm. Oh, but, the historical coincidence of the widespread typewriters and emergence of electronic controls existing at the same time is what "programming" must be? Well, I learned to program from comics which had lessons and posed challenges. I wrote programs by hand on paper long before ever seeing a computer. Was that "coding"? Because most people around me thought that not writing a program out on paper and checking it before inputting it into a computer created bad habits in programmers. It made them too lazy and impulsive. It produced programs which had too many bugs. Sounds familiar?

    --
    Any guest worker system is indistinguishable from indentured servitude.
  40. Re:That's drawing. Neither CS nor code, which are by bigdavex · · Score: 1

    Wait, do you mean my left or yours?

    --
    -Dave
  41. Yes and no, it depends on experience and age. by dsmatthews9379 · · Score: 1

    He is right that it is probably a bit late to expect most secondary students to get up to speed because visual programming is just introduction level coding and you still need to progress along the full learning path before you can code with confidence in real-world programming tasks, however I start my kids with MIT Scratch around the age of 5 or 6 so they are programming in C and Javascript by the time they are 10.

    The bottom line is that there is no way around the fact that to code well you need to have a very strong grasp of logic and mathematics, and have acquired a large amount of technical knowledge. Many programming tasks come down to replacing the manual operations of entire teams of humans, with code, and those individual humans often can't tell you what everyone else in their team does, therefore to be able to write that code you need people who are smart enough to get their heads around multiple interconnected skill-sets over and above the abstract computer science skills that they need.

    When it comes to IT most of the relevant facets of our IQ are significantly influence by our choice of parents, both their DNA and how they raise us (and a school is no substitute for having good parents!). You can't get around that, therefore early years IT training should focus on identifying and nurturing talent more than on the delusion that all people can ever be good enough at coding to bother doing it at all.

  42. Pedant point: brain sides by colinrichardday · · Score: 1

    In most people, the left hemisphere is analytical and the right hemisphere is creative.

    1. Re:Pedant point: brain sides by Anonymous Coward · · Score: 0
  43. Assignment vs. Equality by Anonymous Coward · · Score: 0

    Drag and Drop Doesn't = Coding, argues Yue.

    Well if it didn't before, it does now, you thoughtless clod!! Learn your damn operators!

    "Parents and teachers today who aren't technical need to be aware that the drag and drop code or the candy-coated learning process does not effectively teach children programming but eventually causes a huge amount of shock once they are immersed in real code."

    You don't say...

  44. And to think by Ol+Olsoc · · Score: 1
    I started out programming in basic with the "hello world! program.

    As did millions of others.

    I guess we were devastated, depressed, and had our self esteem destroyed when we found out that not everything was as easy as "hello world!"?

    Oh.... wait.... we didn't. We were interested, plowed in, and learned the harder stuff because we were interested.

    If mommy and daddy want to protect their precious little snowflakes from the hard stuff by learning the hard stuff at the beginning - like that even makes sense - they need to just have them all go into women's studies or whatever it is boys are supposed to go into these days.

    --
    The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
  45. "Teach Yourself Programming in Ten Years" by gweihir · · Score: 1

    "Teach Yourself Programming in Ten Years" by Peter Norvig (http://norvig.com/21-days.html) is still an excellent discussion on how long it will take to learn programming to a degree that is actually adequate to do professional-level work.

    In addition, I expect that most people will never get beyond "fair", even with this amount of training and experience, just as most people will not become much better than "fair" at any other task, unless they have some real talent/potential/gift/deal-with-the-devil/etc. whether it be cooking, mathematics, or playing the harp. That is not to discourage people. "Fair" would be a huge improvements over the skill-level of many of the people that write software today. "Fair" is level on which you can depend on people to get regular stuff right and to know what is beyond their skills ans ask for help.

    Of course, "fair" is also the level where the expected salary needs to be very reasonable (say, at least enough for a 4 people family to live in modest comfort off it) in order to make people go though the long process of becoming good at it. In particular the latter is lacking today.

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

    Whats the point of a computer science for all, coding educational program when Obama and his ilk have every intention of importing a bunch of google-bot code morons from India and other low budget holes?

  47. So you're THAT guy by raymorris · · Score: 1

    I read your link and now I know exactly what you did.

    > gallery_root="../galleries/What I Did/"

    You're the guy who put spaces in file names in *nix, in order to make sure that all commands using "for each", *, or find -exec would get messed up. Thanks for that.

    Kidding, of course. Actually your post was interesting.

    1. Re:So you're THAT guy by 0100010001010011 · · Score: 1

      If it breaks your tools maybe you need better tools.

  48. BASIC by Anonymous Coward · · Score: 0

    TFA is comlaining because BASIC and LOGO are now much better. Everyone who let turtle graphics ruin their life raise their hand. LOL. TFA is WTF.

  49. What is coding by luis_a_espinal · · Score: 1

    But Drag and Drop Doesn't = Coding, argues Yue.

    So much for BPMN, where you can actually create a significant amount of useful function just by doing that.

    The thing about Mr. Yue's comments, however, is that he is completely missing the mission of all those drag-n-droppey efforts is not to equate cute little draggable blocks and call it coding. It is to get kids interesting.

    I mean, for fucks' sake, we don't call kindergarten wooden counting blocks differential equations, do we?

  50. Re: That's drawing. Neither CS nor code, which are by Anonymous Coward · · Score: 0

    That's a myth.

  51. Teaching code to Homeschoolers by Anonymous Coward · · Score: 0

    Our Home School Co-Op group has a lot of kids in it. This semester three of us are teaching an introductory course to computers and programming. We haven't decided yet whether we will end up with scratch or code.org for trying on a computer, but we're starting with introduction to computers, a little history, introduction to software, what a program is. After that we have developed a metaphor using legos to build a 'program'. We plan to start by having them look at a set of lego instructions, and build a simple construct. We may increase complexity, with more or less complexity. Later we'll give them a picture of what we want, and any 'special rules' and ask them to try and reverse engineer the steps to build it, and then try it. We are doing this, because we feel the three biggest parts of programming are observing the big picture, the logical steps to perform a function, and how to develop a sequence of steps (an algorithm) to do that. Later we plan to cut them lose after an intro to code.org or scratch so that they can do some drag and drop and figure out a little bit about what it may be like.

    Now I'm not a fan of scratch, but given we only meet once weekly, have less than 5 classes to cover constructs, we felt choosing something like scratch or code.org removes the barrier to entry to some degree of syntax and lets them focus on the flow of building a sequence of steps or events.

    We believe next year a follow on course that immerses them in say a Linux OS with python or javascript would be the next step for the class.