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.
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.
I am more interested in the learning to read above the 6th grade level.
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."
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
My guess is that making coding look "cool" is their top priority, and so they avoid bringing out anyone who looks overly "geeky".
It's better to vote for what you want and not get it than to vote for what you don't want and get it.
- E. Debs
The problem with encouraging a person to program for the sheer joy of it is that they start to adopt useful/fun programming languages that managers don't know... like Perl... and that's just too dangerous. It's best to keep programming soulless... :)
http://www.beanleafpress.com
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/
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.
Look at the people at http://www.code.org/quotes. Some are politicians but many are from the computing industry. Quit whining and actually look.
This is an astroturfing job. At "code.org", you can sign up to support what they want, but you can't vote against it, or even comment on it.
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.
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.
Stop-Prism.org: Opt Out of Surveillance
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
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
Anything promoted by Ashton Kutcher turns me away immediately. ack
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.
the system that's dying in the united states is not capitalism
because capitalism is where the government stays out of the way and stops fucking the economy up more (an economy supported by government is closer to communism than capitalism)
"capitalist state" is an oxymoron
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.
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."
you're not going to entice kids to do anything with maths full stop
any teacher with a knack for making maths more fun is a gem worth keeping
if it involves programming, running around the schoolyard measuring things, or whatever... good on them
many teachers are unappreciated, often underpaid and work their asses off, but there are also too many schools full of teachers just doing their job and not much else
anyone who isn't a teacher or a parent who tries to interfere with how kids learn should just fuck off
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.
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
Sure, there's a bunch of quotes from non-geek celebs, but there is also plenty of geek cred on code.org's front page:
I see endorsements from:
Bill Gates
Mark Zuckenberg
Tim O'Reilly
Eric Schmidt
Gabe Newell
Salman Khan
Mehran Sahami
Jack Dorsey
Drew Houston
Ed Lazowska
Max Levchin
Rob Glaser
Yishan Wong
Vanessa Hurst
All of whom I would guess have written at least a few line's of code in their lives.
I don't get Winer's problem. Some people code because they love it. Some because they are exceptionally good at it. Some because it pays the bills.
All of these are valid reasons to become a programmer. Winer's idea of "if you don't love programming, we don't want you here" is what I find soulless and condescending.
Ironically, in Winer's own article, he extolls his awe and amazement over professional basketball players, even though he is unable to play basketball very well himself. He then goes on to complain about non-programmers expressing their awe and amazement over computer programming...seriously WTF?!?
The implication of code.org is that there is some kind of barrier to computer programming for students. This is simply not the case. You wanna "code", great, start coding. All of the tools I use as a professional are freely available to anyone who wants to download them. There are countless thousands of free tutorials on-line for virtually every language. There is absolutely no barrier whatsoever to anyone learning to code.
But... There's a huge difference between "coding" and being a professional computer programmer. Anyone can do the former, almost no one can do the latter. The simple fact of the matter is, we get paid so much because this stuff is hard and requires talent. Not all humans can sing professionally and not all humans can program professionally. This has nothing whatsoever to do forcing children to learn musical scales or how make boxes and circles bounce around on a web page.
How about if we just let the people with a passion for programming do that and let everyone else be.
I want to know more about code.org but the summary doesn't give a link.
Some drink at the fountain of knowledge. Others just gargle.
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?
Never mistake "can" for "should".