Posted
by
Unknown Lamer
on Thursday February 28, 2013 @02:30PM
from the whatever-works dept.

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.

Yeah, much to do about nothing. Most of the people in the Code.org video I saw were, in fact, programmers. Some of them were famous ones, some were not.

So yeah when you see Bill Gates, Mark Zuckerberk, Jack Dorsey (Twitter), Tony Hsieh (Zappos), Gabe Newell, etc you might think they haven't written a lot of production code recently, but they're faces you'd know, and they threw in plenty of people that are probably sitting at their machines writing code as we speak.

Hell the only reason I can remember Romero is that stupid "make you his bitch" ad that ran before his DNF levels of ubersuck game came out.

Lots of people know of him because of Penny Arcade, too, and various other web personages with large followings who have spent much time mocking him.

I mean do YOU know the names of ANY of the coders of your favorite games? Software?

The reality is that most humans already know as many humans as they are capable of keeping track of, and those people aren't important to us often enough to really make an impression. I do have a couple more game developers for your list, though: Peter Molyneux, and Richard Garriott. A lot of people actually know who they are and what they've done. Part of that

CODE.ORG: So, why should one code, Dave?Dave: Primarily you should do it because you love it, because it's fun â" because it's wonderful to create machines with your mind.CODE.ORG: I'm sorry Dave. I'm afraid I can't do that.Dave: What's the problem?CODE.ORG: I think you know what the problem is just as well as I do.Dave: What are you talking about?CODE.ORG: Making money is too important for me to allow you to jeopardize it.Dave: I don't know what you're talking about.

I actually think the article fails, because it's based on a tautological assumption.

"To be clear, you should learn to code if:1. You love writing and debugging and refining and documenting and supporting code."

But, you don't know this until you've learned to code. So, it's clearly something that if you try coding, you'll ever realise it's something you're passionate about wanting to know more about until you're good at it or that it's something you hate with a passion.

In my case, there are probably lots of things that I'd be passionate about if I did them. I can certainly think of a few jobs in different areas I'd really enjoy

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.

I had a quick look at the page - I got as far as Snoop Dog's mug shot and closed the tab - honestly it looked a bit The Onion. Though if anyone designs another functional language I nominate that it be called "Fo'Shizzle".

Oh, c'mon. Does Kobe Bryant drink Sprite? Did Robert Wagner get a reverse mortgage? Does Danica Patrick buy godaddy.com domains?

More to the point, does Kobe Bryant entice ME to drink sprite? Ah, No.

And yes, Danica Patrick (or someone claiming to be her official site) does indeed buy (get for free?) a domain from Go Daddy. [who.is]

For a lot of us, having Al Gore or Clinton or Ashton Kutcher or similar clueless people pimping for a coding site is a clear signal to run away like our hair is on fire.Who pulled their strings to get them to jump on that bandwagon? It costs money to even get their attention. Where is that coming from, and what i

To continue to tell the tech community that "Your job is teh awesome, so everyone should do it so we can pay you less!". Oh yeah... don't organize, either - you're your own man (or woman). It's not like anyone as totally rad as you would ever be out of work because your corporate masters decided to outsource your job. Who needs other peoples support when you're so teh awesome?

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 emacs2 - Dr.Scheme3 - autocad if you can get your hands on it and autolistp

DrScheme (or any other program that makes it trivial to "click and run" what you wrote), is ideal. A nice next step would be a simple text editor (notepad++, sublime2, or whatever you fancy). Having children use an editor like emacs or vim is adding a learning curve that doesn't need to be there. If the goal is to find the fun in programming and inspire passion, you want to remove superfluous obstacles. Learning to really make effective use of more advanced editors is a worthwhile task, but it is not one I'

Yep. A good programming environment is key. That can mean hardware + software environment or it can also mean good encouraging parents and/or teachers and classrooms to play in at your own pace and timing. A good library, c-compiler, and a text-editor as simple as notepad or leafpad or nano will be fine for some kids. DrScheme is better for others. Some may like the easy-peasy approach possible with
Hypercard [wikipedia.org] running on an SE-30. My parents have a running TRS-80 and a running apple ][+ (and an SE-30

re You mean in VIM. Teaching kids emacs is just wrong;>)
Let's not have a religious argument [about vi and emacs]; everyone can go to their favorite church. I wasn't just talking about using emacs as the text editor function. I meant the Lisp interpreter and command (run-eval-print loop) accessible that uses Emacs LISP [wikipedia.org]. But it's also possible to use emacs directly to do the edit-compile-debug cycles for postscript or for c or other programming languages as well. I'm sure you knew that, though, so I'

For kids I would most recommend the Racket [racket-lang.org] IDE. It has a window like other programs and buttons and even has a few games. For the smart kids though, I would give them Emacs and show them how the editor is written in the same language that they are using (Emacs has SLIME as well as GEISER that integrates well with Racket or Guile), and they really take off with that. Sometimes the kids spend hours just exploring of the Emacs operating system and all the different modes (and games).

Gotcha; no offense taken; glad to know you're just joking. Sorry if I sounded too brusque; I figured that my smileys and joking attitude would let you know I'm not really a partaker in the editor-flame-wars or the clone wars cartoon series. Neither of those has made a big impact on my life.:>)

To make coding look cool, though, don't you have to somehow convince kids that these cool people code? Having some cool people who don't code as role models isn't gonna do much to convince kids that coding is cool.

(Let's leave aside for the moment whether the likes of Marco Rubio and Al Gore qualify as "cool".)

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 GatesMark ZuckenbergTim O'ReillyEric SchmidtGabe NewellSalman KhanMehran SahamiJack DorseyDrew HoustonEd LazowskaMax LevchinRob GlaserYishan WongVanessa HurstAll 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. So

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

Exactly. People will like to do what they like to do. My one daughter loves to watch hockey. We almost never watched hockey until she said she wanted to watch it. I really don't know where her love of watching hockey came from. I have another daughter, and she could care less about watching the hockey game (except when she found out I was taking her sister to a game, then she suddenly feigned interest) There was plenty of encouragement for me to like team sports when I was a kid, but to this day I don'

The problem is, everybody has to start at some point. Right now I'm earning all of my money from programming or teaching programming. I got lucky, because my parents happened to show me a BASIC programmable computer at the age of eight, and helped me write the first programs when I wasn't even able to read English (I soon surpassed them, though). I didn't know that I'd like it before that. Others aren't so lucky, and have their first exposure to computers in school, and then it's on programming-hostile envi

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.

I see Snoop Dogg and Enrique Iglesias and Will-I-Am. There goes any credibility right out the door with those jokers.

Dan's initial criticism that there are no active coders on there is true. A majority of the tech execs I see probably haven't written real code in the last decade if ever. The last time I saw a suit code was... never. They sure did like to talk about the glory days of it when they were college grads because coding is a young man's career (ie, young people are willing to work in sweatshop

Why would they provide you the means to whine about them on their own site? I haven't seen forums or "tick here to say we're shit" on 99% of corporate, charity or personal sites I've ever visited. If you don't like it, ignore it, or do your complaining elsewhere.

Sure you can make a decent income, but nothing like what those folks make. On top of that the politicians want to make sure this job no longer pays a good wage. What jobs they cannot export they will import cheaper workers for.

This tells kids who are paying attention that they should become politicians or celebrities. Since you never see famous coders like Carmack endorsing the latest Kutcher movie or whatever this will.i.am person does.

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.

"Here's To The Crazy Ones. The misfits. The rebels. The trouble-makers. The round pegs in the square holes. The ones who see things differently. They're not fond of rules, and they have no respect for the status-quo. You can quote them, disagree with them, glorify, or vilify them. About the only thing you can't do is ignore them. Because they change things. They push the human race forward. And while some may see them as the crazy ones, we see genius. Because the people who are crazy enough to think they ca

Really? Being a passionate programmer requires a "dystopian view of the present"? You can't be motivated by pure intellectual challenge, or find the world pretty much ok as it is but want to make something new or better? Those are just off the top of my head, I'm sure there are plenty of other motivations people have that don't make them sound like they think they're some kind of outlaw superhero with a Destiny to save the world single-handedly by coding Perl in their mum's basement.

There are plenty of people who are passionate about the field they are in, but have little interest in the world outside of it. True polymaths are exceedingly rare and getting more so as knowledge increases and specialises. Wanting to change your field is not the same as a "dystopian view of the present", which is just a ridiculous blanket statement.

The launch video [youtube.com] I saw was a bit different from the one described in TFS. I think it was delivering the right message, just for the wrong reasons. It's not about being a rock star, it's about learning how computers work. I think it's a great idea to encourage more people to learn how to write programs. It doesn't have to be C or Scheme or Java, just something that helps them understand how computers work. Computers shouldn't be scary technology; anyone can learn to write a simple computer program. And I thi

They actually did a study in which kids were paid for good grades. There was zero positive impact. It simply isn't a motivating factor.

Kids need problems to solve. Hobbies. And if they see that a computer can be used to solve their problem, they'll use it.

I didn't learn programming because it was "fun" when I was 8 or so. I learned programming because it solved problems I was interested in. Namely, making games and creating animation. I made some pretty lengthy ASCII animations back in the day. I wa

If there was a severe shortage of programmers, every programmer you know would be making $100k +.

This smells like a ploy simply to get Congress to pass legislation to allow more visas and drive down salaries. This smells like a trick to justify offshoring more jobs. This smells like some kind of crap to get Congress to approve tax incentives to companies that have programmers most likely already on staff - not actually hiring more. In oth

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

Yea, I'll believe that. When I started programming at age 13 the only thing I had in mind was my future job prospects. I didn't care if I enjoyed solving problems or creating stuff. The only thing I cared about was getting a head start on the career ladder and the future money I'd make, typical I think of all teenagers. I mean, every kid in school gets good grades and plans for college so they can make money right?

Yea, if you don't detect the sarcasm in the above, you shouldn't be here. Oddly enough, I s

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.

If your job is boring, find another one now. Otherwise you'll end up with years of experience in a job you hate. There is enough demand for competent programmers that you can find a non-boring job in a few weeks. I imagine that becomes harder once you've established a track record as a specialist in boredom.

If too many programming jobs seem boring, maybe programming isn't the career for you.

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 video I watched a few days ago had mostly computing people - Bill Gates and Gabe Newell are the ones I can remember, but there were several others, all talking about coding and what they love about it. It seemed quite decent at appealing to their target audience, unlike most of the suggestions I've read so far on this story... I mean, Scheme? Maybe we should have RMS talking about it while eating his own toe cheese [youtube.com]?

Gabe Newell's "wizard" comment struck me as the right thing to say. You can make cool stuff that does cool things and it doesn't require millions of dollars worth of equipment or special friends in high places or fame or whatever. Generally you just need time and effort and with the right idea you can do something pretty amazing.

Pics of offices with people playing rock music, ping pong and video games are, on the other hand, probably not a great idea.

After learning this [wikipedia.org], everything else will seem like a cakewalk.

Seriously, though, I LOVE coding, which is why I continue to do it, long after my company has told me they don't want my code anymore (Because managers don't code, dontcha know).

However, the kind of things that go on in my head while I code might not be at all attractive to a lot of folks. I'm weird, and accept that fact. It makes me a good coder, but has its price. A lot of folks aren't weird, like me.

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 [codinghorror.com] pointed out this paper [mdx.ac.uk] 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 [imdb.com] 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.

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

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

I was fortunate to live in the 80s. The introduction of home PCs (Personal Computers, not IBM compatibles) was all we needed. We all tried to write games, and some of us got really good at it.

Flash forward, and it's all just a big grind. Why would anybody want to code now? It's all just a bunch of web-enabled surveillance apps written in HTML/JavaScript/scripting language spaghetti. We've hit a bad patch in technology. It happens every once in a while. Remember 16 bit computing, segmented addresses,

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?

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.

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.

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.

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.

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

No he won't. He'll be able to draw a circle on screen. Maybe sort a list. Perhaps if he's a high flyer: solve the Tower of Hanoi.

The guy who's going to create the big important app of the future doesn't need school to teach him how to program. He taught himself at home before he arrived in ninth grade. It'll be university before the level of the teaching catches up with what he already knows.

School needs to teach mainstream topics. Things that are likely to be useful. Most people are going to end up word pr

A ninth grader already knows how to use Microsoft Word. Any kid picks up that without any problems, and it would simply be a waste of time to teach Word in schools. The same with most other generic software programs.

If you are going to teach the kids computer science, that is to say, how to program, there is nothing better than Scheme in my opinion. I've tried teaching in Python and Java, but to be honest kids need the minimal syntax possible, and Scheme really is great for teaching the science of computer

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.

Why not use something like Logo instead? It's very similar to Scheme, but much gentler. The simple interactive environment and the seemingly complex images you can create on day one gives students a sense of power and control that they just won't see with Scheme.

Still, I'd steer clear of any functional language for high-school kids. Structured languages are much easier to learn and use.

I can't make any specific recommendations as I don't think we have any good teaching languages these days. SmallBasic w

Regular schools teach. Great schools inspire. No matter how good the school, it is never going to turn you into a great programmer. It won't magically turn you into a great writer, actor, athlete, poet, or scientist either. But it might inspire you to strive for any of those.

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

Much more readable than anything written in Java or C or even Python. Put a kid in front of a Python interpreter and he will wonder why none of his loops will work. The beauty of Scheme is that the first element in the list is always a function. I even teach kids to do (quote x) before giving them the shortcuts.

Also, most Scheme IDE's will indent the code automatically so readability has never been a problem.