Slashdot Mirror


Is Code.org Too Soulless To Make an Impact?

theodp writes "By trotting out politicians (Bill Clinton, Mike Bloomberg, Marco Rubio, Al Gore) and celebrities (Chris Bosh, will.i.am, Ashton Kutcher), Tuesday's Code.org launch certainly was a home run with the media. But will it actually strike a chord with kids and inspire them to code? Dave Winer has his doubts, and explains why — as someone who truly loves programming — code.org rubbed him the wrong way. 'I don't like who is doing the pitching,' says Winer, 'and who isn't. Out of the 83 people they quote, I doubt if many of them have written code recently, and most of them have never done it, and have no idea what they're talking about.' Code.org's because-you-can-make-a-lot of-money-doing-it pitch also leaves Dave cold. So, why should one code, Dave? 'Primarily you should do it because you love it, because it's fun — because it's wonderful to create machines with your mind. Hugely empowering. Emotionally gratifying. Software is math-in-motion. It's a miracle of the mind. And if you can do it, really well, there's absolutely nothing like it.' Nice. So, could Code.org use less soulless prattle from 'leaders and trendsetters' and more genuine passion from programmers?" Just force all ninth graders to learn Scheme instead of Microsoft Word.

25 of 384 comments (clear)

  1. lol by dingen · · Score: 5, Funny

    Ok, this is going to burn karma like crazy... but an article about a guy named Dave Winer who is complaining? Seriously?

    --
    Pretty good is actually pretty bad.
    1. Re:Lol by Em+Adespoton · · Score: 5, Insightful

      Just force all ninth graders to learn Scheme instead of Microsoft Word.

      Yes, because there are just so many companies looking for people good with Scheme.

      Oh wait, no, that's right, companies keep asking for people who know how to use MS Office products.

      Teach a ninth grader to use Microsoft Word, and he'll be able to use Microsoft Word.
      Teach a ninth grader Scheme, and he'll be able to create the successor to Microsoft Word.

      Where does this mentality of "only use the tools people use to make money to teach concepts" come from?

      Does a ninth grader really need to know how to hold down an office job? Why not go a step further and give all first graders a calculator and stop teaching them basic math? After all, when you get a job, you're expected to know how to use a calculator, not do polynomial division in your head.

    2. Re:Lol by Un+pobre+guey · · Score: 4, Funny

      Not to mention the beautiful expressiveness and readability of things like:

      (and (or (= (string-length "hello world") (string->number "11"))
      (string=? "hello world" "good morning"))
      (>= (+ (string-length "hello world") 60) 80))

      Especially for the average 9th grader.

    3. Re:Lol by magic+maverick+ · · Score: 3, Interesting

      So, you know all about tab-stops? There's something that I had to be taught. It's not exactly obvious what they are or how to use them. Especially if the ruler is hidden. Kids don't, they'll do what all the adults they know do, and format with spaces (trying, and failing, to get things to line up correctly).

      What about styles? OK, admittedly the latest versions of MS Word have pushed styles to a more prominent position. But you know, I bet that most people who weren't taught to use styles (or picked it up from another place, like HTML and CSS) don't use them when doing word processing. And that includes kids. It's just so much easier to increase the font size or hit that bold button. OK, and what about the format paintbrush? People aren't using styles, so now all their headings are inconsistent. How to fix it? Manually check and change every property...

      Or in a spreadsheet program, what about pinning rows or columns (I think it's called freezing in MS Excel). I had to be shown that was possible, and that was after I'd been using a spreadsheet program for years. It's just not obvious. I'll be showing someone that tomorrow, someone who currently copies the headings into another document so she doesn't have to scroll up and down this long spreadsheet when working with another system.

      I was taught with two different systems, MS Office and ClarisWorks. For assignments, we could use either (and I used ClarisWorks generally). I was not taught to use either system though, I was taught to use a generic word processor, a generic spreadsheet program, etc. I am also a person who is willing to play around with stuff to see what's available. I'm a bit exceptional, I suspect most people just want to get their work done. They'll do as best they can, and use the one method they've found (even if it's not the best) from then on.

      I watched someone use alt-tab to change windows, but then use the mouse and context menu to copy and paste.

      Anyway, just like teaching typing is still important (because kids will pick something up, but proper tutoring will improve their method), so is teaching generic office suites.

      --
      HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
    4. Re:Lol by Em+Adespoton · · Score: 3, Insightful

      Your comments assume that schools are designed to be trade schools, where you learn to use the tools for the job. Schools do have this function, and it's useful, but they are also supposed to be teaching students how to think, how to manage abstract thought, and how to understand the world around them.

      If a student has been trained how to draw a circle in Word, maybe sort a list or do a mail merge, they'll later attempt to create a spreadsheet object in Word in which they store all their data, and use mail merge to query/fill the cells and otherwise manipulate the data. Trust me -- this happens constantly in the "real world".

      If a student has been trained how to do the same things in Scheme, they'll never use Scheme in the real world -- which means they'll be forced to use the skills they learned and apply them in new situations. They'll likely look at Word and at Postgres and decide that the second is a better tool for database operations. They'll be able to look at a DB program and figure out how it works and have the vision to say "I need something like this, but it also has to be able to do THAT" -- and either find the alternative they're looking for, or create it/get someone to create it.

      Teaching computer programming isn't about learning a programming language; it's about learning problem solving skills and critical thinking -- that can be applied in any other aspect of life; even writing a properly put together purchase invoice or office memo. The reverse is not true, unless the teacher is REALLY good.

  2. Not for a lack of soul by MrEricSir · · Score: 5, Insightful

    It's not soulless, it's condescending. Grabbing a bunch of random celebrities and pretending they have anything to do with learning to code is ridiculous.

    If there's one thing academia doesn't need, it's crass marketing with celebrity spokespeople.

    --
    There's no -1 for "I don't get it."
    1. Re:Not for a lack of soul by Missing.Matter · · Score: 4, Funny

      Um, Al Gore invented the freaking internet. What exactly have *you* done recently?

    2. Re:Not for a lack of soul by 0xdeadbeef · · Score: 4, Funny

      I was the Time Person of the Year in 2006.

  3. Scheme and beyond by girlinatrainingbra · · Score: 4, Funny

    Scheme and Lisp all the way! Just start off playing with the run environment in emacs and build your way up. Play with the Scheme interpreter com-ponent of GAP. You should program to learn how to accomplish things, even silly things like temperature conversions (F->C, C->F, F->C->K, K->F, et cetera) so a kid feels like they're getting shortcuts for homework. Pretty soon they're actually learning things for each new thing they want to accomplish. Programming rote exercises feels meaningless to me. But there's that subjectivity again.
    .
    What's motivational to me may be crap to you. What motivates someone else to program may be crap-tastic to me. To each their own. But I strongly agree with teaching programming (not just coding a small small subprogram or subroutine, but actually understanding a project from beginning to end, even the temperature conversion programs can have a lot of UI trickery even if it's designed just for text mode).
    .
    My recommendations:
    1 - play inside emacs
    2 - Dr.Scheme
    3 - autocad if you can get your hands on it and autolistp

    1. Re:Scheme and beyond by h4rr4r · · Score: 4, Insightful

      You mean in VIM. Teaching kids emacs is just wrong

  4. I am not at all sure this makes sense. by seebs · · Score: 5, Insightful

    I've never seen a programmer who had to be encouraged to program. Mostly, I'm interested in the people you can't get to stop programming.

    --
    My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
  5. Crocodile tears to get rid of H1b limits by echtertyp · · Score: 3, Interesting

    I've worked in California in the past, so I'm sure my U.S. colleagues would agree: this is all just part of the show to get unlimited visas for large companies. Rather like the Wall Street banks pleading for a bailout...poor us... then making records profit$ the following years. It's all part of the game boys. Learning to lie convincingly is how you get to the top.

  6. Teach it like any other skill: as a magic power. by concealment · · Score: 5, Insightful

    Especially for kids, but also for people with souls, "it makes money" is not a sufficient justification. Lots of things make money; anal prostitution and being a hired killer also make money.

    However, you can usually get traction by pitching it as a skill that is worthy in its own right as it bestows power upon those who yield it. Like learning to play an instrument, it is fun for its own sake and also useful in isolation. It allows you to create things and have a certain type of power.

    The point of coding for those who will have the "coder mentality" is that you can fix things, make them do what you need, and accommodate needs outside the generic functions that most people use. It's the same reason you learn to play a guitar, so you can write the songs you like, or learn woodworking, electronics, etc.

    I don't think this appeal will ever go wrong, while the sanitized and denatured "but it's a great job!" approach will sound like more manipulative, submissive, obedient and conformist adult-logic to kids.

  7. Programming Requires Dissatisfaction by Bob9113 · · Score: 5, Interesting

    People who are satisfied with the status quo -- people who see a picture of Bill Clinton or Will.I.Am and think, "yeah, we're celebrating the right things" -- are not the kind of people who become passionate programmers. The best programmers the world has known have all looked at what we have and said, "This is lame, and I'm going to fix it no matter how many times my computer says, 'You coded it wrong.'" A dystopian view of the present is what drives people to run the compiler one more time, one more time, one more time, one more time, until at 3 AM they say, "FUCK YEAH, BITCH, I WIN!"

    So unless that front page is trying to inspire kids by making them think, "I am going to learn enough so I can destroy asshat hairstyles like this," I think they've missed the mark.

    1. Re:Programming Requires Dissatisfaction by rgbrenner · · Score: 5, Funny

      They just need different quotes from these same people:

      "Think Metro is shit? Learn to code and create your own damn interface" -- Bill Gates

      "I'm going to keep selling your information. If you learn to code, you can create the next facebook that doesn't." -- Mark Zuckerberg

      "I know many of your hate my terrible music. If you learn how to code, you can make your computer mute your speakers every time it hears my voice." -- Will.I.Am

  8. Sorry, but scheme looks like garbage by Marrow · · Score: 3, Insightful

    Did you even look at that link for scheme?

    (define (area-of-ring outer inner)
        (- (area-of-disk outer)
              (area-of-disk inner)))
    (define (area-of-ring outer inner)
        (- (* 3.14 (* outer outer))
              (* 3.14 (* inner inner))))

    The first example looks like mush and is just going to turn them off. Teach them python or java or something that wont turn them off to programming for the rest of their lives. I am sure you LISP guys can do wonders. But maybe its not so good for a first language. It looks like garbage.
    Yeah, I know I suck. blah blah blah

  9. IT'S A TRAP by GameboyRMH · · Score: 4, Insightful

    Most coding the commercial world wants is boring. Your home projects may be fun but most of the work out there is not. It doesn't pay that well now and it sure as hell won't pay better if a bunch of kids are tricked into pursuing it, further increasing the labor surplus in a professions you could teach yourself with nothing but a computer and an Internet connection.

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
  10. Coding was not gratifying. by Anonymous Coward · · Score: 3, Interesting

    Looking back, I hated coding. I had so many ideas and games I wanted to create that I bought programming books and tried to read/ understand them as much as I could. I tried Pascal, then Java. I found it infuriating that it took so much time and effort just to write a "hello world" - I had to download drivers, compilers, start some kind of server, setup the drivers etc etc. I hated it. At most, I wrote a calendar app. I hated it, especially when there were thousands of other calendar apps out there which were much better and looked nicer.

    Later in life, I picked up 3d software (thanks to Maya educational version). I fell in love with it. The scripting was a bit tough, creating a simple sphere was much more gratifying. I could procedurally create a matrix of spheres and randomize its colors - in short, I could visually create an if-then loop. I loved it.Coding was cool and it felt powerful. It sure beats creating 1,000 spheres and trying to align them by hand. Now I go back to my math textbooks. I am fascinated by physics formulas and actually understand them. I can't get enough of coding and manipulating visual assets/ data that way was enlightening.

    I don't agree with the PSA and it kind of turns me off too. I agree with the OP that motivation has to come from within. If I had high hopes to say, make big bucks, a "hello world" would be infuriating (I understand is a necessary step though). But what sent me into a path of disillusionment was the notion of how much a single coder can accomplish vs. a team of coders - assuming you're an average guy. I'm no Bill Gates or Zuckerberg. I'm not a gifted coder at all. I had my own assumptions of what I could do as a coder vs. what movies and media seems to imply what an individual (and average) coder can accomplish.

  11. Can't agree by Anonymous Coward · · Score: 5, Insightful

    I like where you're going, but can't hop on that bus.

    Learning how to use a wordprocessor. Learning how to make professional looking documents that communicate well to people is a valuable skill. I'm not a fan of Word, but whether it's Word or Libre Office, 90% of the kids will directly benefit from being able to compose their thoughts on the computer.

    I love programming, but the percentage of people that would have their lives improved in some significant way by a 9th grade course in Scheme seems unlikely to be 90%, where for Libre Office that number seems conservative.

    1. Re:Can't agree by lister+king+of+smeg · · Score: 4, Insightful

      I like where you're going, but can't hop on that bus.

      Learning how to use a wordprocessor. Learning how to make professional looking documents that communicate well to people is a valuable skill. I'm not a fan of Word, but whether it's Word or Libre Office, 90% of the kids will directly benefit from being able to compose their thoughts on the computer.

      I love programming, but the percentage of people that would have their lives improved in some significant way by a 9th grade course in Scheme seems unlikely to be 90%, where for Libre Office that number seems conservative.

      so teach them LaTeX then?

      --
      ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    2. Re:Can't agree by Em+Adespoton · · Score: 5, Insightful

      I have no problem with teaching kids how to create professional looking documents. However, professional documents are best created by software that separates the content from the layout, and preserves both. The only reason that Word creates professional looking documents is that we've suffered a generation of professionals who have used Word to create documents. Badly. The result is that "learning Word" is often "learning how to use the word processor everyone in the business world is using, and learning how to massage it to create meaningful output that will resemble what the person you're sharing it with is seeing". This is the equivalent of teaching knot tying because it's standard business practice to tie knots around everything being shared with someone else. Why not just teach them how to do it correctly, and leave Word as an elective course for people who actually need to use it to get something done?

      I was composing thoughts on a computer before Office existed. Word teaches bad writing habits -- people confuse the content of a document with the look of a document, and spend way too much time tweaking the look instead of efficiently creating the content, arranging it, and then deciding how best to present it.

      I recall being in classes that asked for a 5-paged somethingorother. While others were tweaking their wording to fit in/fill up 5 pages, I was writing the assignment up, revising it, and then at the end, spending a few minutes to make it fit the page as required.

      I'd be happier if schools taught the skills and then let you apply them using the popular tools (with some instruction). What often seems to often happen (and be lobbied for by non-educators) is that schools teach how to use a limited set of tools, and assume the students will figure out the skills and any other tools needed on their own time. Remember, to someone with a hammer who's never seen a screwdriver, a screw is just a fancy nail.

      Learning how to use a word processor is useful, if they're taught correctly. Word/LibreOffice are great in that if you've been trained how to write and use document markup, they can create elegant documents. However, if you're taught how to use them without first being taught about content, style and markup, most people will default to using a combination of tabs, spaces, and whatever markup looks closest to what they want to tweak their content as they go. This detracts from the teaching instead of enhancing it. It doesn't help that most of the teachers have never been trained in how to properly use a word processor either.

      Starting with Notepad and then moving to LaTeX before being exposed to Word would be extremely useful in ensuring the proper DTP skills are learned instead of faked by students.

  12. Re:Oh god no by RazorSharp · · Score: 5, Insightful

    You're not going to entice a kid to do anything with the promise of "math in motion".

    But if you try to entice them with the promise of big money, they'll be sorely disappointed when they enter the job market unless they are incredible coders. One doesn't become incredible at hacking code (or anything) because they think it's a good job prospect, one becomes incredible by loving the activity so much that they become immersed in it. Most people who write code for a living aren't living lives of luxury, it's wrong to use guys like Mark Zuckerberg and Bill Gates as examples of what that career path will bring. That's like telling kids they should learn to play guitar so they can be the next Slash and make a bunch of money. Or telling kids they should learn creative writing so they can become the next Stephen King. You're setting most of them up for failure when that's the expectation.

    A person has to love what they do before they'll have the drive to do it exceptionally well. If we want more programmers then we should prioritize teaching mathematics in schools. In many schools in America, one can graduate high school without understanding the fundamentals of algebra. That's the problem. Many people who have the potential to fall in love with mathematics and programming never have the opportunity because our school system allows irresponsible children to choose whether they want to be productive or not. We care so much about children's feelings, their self-esteem, their self-expression that we've forgotten that they're children and their opinions don't matter, their desires don't matter, and that most will grow up to be useless adults unless we force education upon them.

    --
    "From the depths of my skeptical and rationalist soul, I ask the Lord to protect me from California touchie-feeliedom."
  13. Passion is not the issue by Graymalkin · · Score: 5, Interesting

    Code.org doesn't have a messaging problem, they've got a core conceptual problem. Trying to teach more people to program, especially by making it part of a core academic curriculum, is amazingly foolish. Anyone that's taken an introductory programming class at a university can tell you it is foolish. Jeff Atwood pointed out this paper seven years ago that expands on this idea. The skinny is that 30-60% of computer science students fail at introductory programming classes and consistently do so despite changes in languages, IDEs, and teaching methodologies. Some students simply could not form mental models needed to be able to program effectively. Keep in mind this was a self-selected group of students, ones who had chosen to take up computer science as a major.

    Based on this it seems apparent that if "everyone" was required to take programming courses then a majority of them would simply fail to learn the skill and only pass because schools don't like to fail students. No greater number of students would learn to program and they would have no deeper understanding of how computers or software works. Computer programming is a fine elective and is something that should be available to high school students but it is simply absurd to think that trying to teach everyone to program would lead to everyone magically enriching their lives.

    Teaching advanced mathematics to students is unlike teaching programming despite the two being advanced skills. With mathematics there's a consistent domain specific language that can be used. The language of calculus builds on the languages of algebra and geometry which themselves build on simple arithmetic. If someone learns calculus (and continues to use it) it will be applicable for the rest of their lives. The language used for theory is the same one used for applications.

    In computer science there's the theoretical topics where "language is an implementation issue" and then more practical topics where the language and platform is paramount. Teaching high school students high level computer science topics isn't going to leave them with practical skills since it is often non-trivial to apply those theoretical concepts (which back practical topics) to a specific language and platform. Teaching more practical programming is going to leave them in a lurch when the school's choice of language and platform doesn't end up the future of the industry. There's thousands if not millions of kids that learned BASIC on Apple ][s and C64s that have not only never used those skills since but have absolutely no conception of how to apply the core concepts learned in this classes to more modern languages and platforms.

    If the goal of a programming curriculum is to teach critical thinking, problem solving, or logic there's much better ways to teach those things. Limited school budgets shouldn't be trying to cover programming for everyone. Kids would be much better off being taught how to balance a check book, plan a household budget, and if you want to use computers some basics like don't send naked pictures to your boyfriend or girlfriend because shit stays on the internet forever.. Kids interested in programming will take programming electives and focus in that area. Trying to get everyone to program simply is not going to work and it a waste of time and money that could both be better spent.

    --
    I'm a loner Dottie, a Rebel.
  14. Elephant in the room by pla · · Score: 4, Funny

    Plenty of comments have pointed out that those of us who do code do it because we enjoy it rather than for money or career prospects or some other capitalism-inspired reason. Absolutely true, but that misses the real issue here.

    To be blunt, most people can't learn to code beyond a painfully basic level. Yes, you can teach most people to write "hello world". You can get them up to the level of writing simple macros, simple queries, simple shell scripts. And after a decade of doing it, they'll still make total newbie mistakes - Uninitialized variables (nothing in that cell to grab, Dave!), randomly mixed booleans in their non-fully-parenthesized WHERE clause, failure to escape nested variable substitutions, etc.

    Going further, even if significantly more people could eventually learn to code at a passable level, the vast majority of people hate everything about the mode of thinking programming requires, from the sustained alpha state to thinking in equations to iteratively breaking big problems into smaller ones. Describe how you code to someone - really get into it and express your zeal - and watch them squirm.

    Or to put it another way - If everyone could (stand to) write code, we wouldn't have a massive shortage of a highly-paid and in-demand profession after four years of massive unemployment. If anything, we'd have a glut of programmers. And yet... That has not happened

  15. Re:They want wage slaves by Anonymous Coward · · Score: 4, Insightful

    Realise this makes me sound like a leftist, but history lesson: Most of the advanced technology the US has churned out over the past 60 or 70 years has been heavily funded or supported by the government via the taxpayers. From transistors to cryptography, satellites, AI, moon missions, jet fighters, the Internet, nuclear power... in all those cases the bills were being paid by Uncle Sam for many decades & only when the hard problems were solved did the tech become cheap enough for corporations to make profits off average users in a 'free market'. Now, isn't it interesting that in those times of demented socialists such as Ike and the like that US technology made massive, massive leaps and stunned everyone (unfortunately a similar thing happened with Uncle Adolf in the 1940s).

    Meanwhile since we dialed back government involvement (at least overtly) and 'let the market decide' we end up in a position in 2013 where the coolest shit the average person can imagine is playing Angry Birds on a phone or using a world-wide computer super-network to post their entire lives online while reading about what Katy Perry is up to.

    Corporations are good at incremental improvements. They're good at playing it safe. They're completely awful at doing new or innovative things unless someone else foots the bill and said innovation doesn't damage their existing markets.

    If the private sector was as good as the libertarian crowd reckons then am sure we'd have had a cure for cancer years ago, or cheap supersonic travel, or reliable electric cars. Note all those things have demand, a supply of willing customers to pay for them and are technically feasible and yet.... ... maybe in five years, eh?