38 comments

[ 4.3 ms ] story [ 100 ms ] thread
I have an idea;

instead of teaching "kids to code" -- how about putting together a list of [N] things every [kid/child] should know how to accomplish by [end of grammar/middle/highschool/college] using development languages [x, y, z]

---

By end of grammar school a child should be able to confidently navigate the internet, and have a basic understanding of how websites work.

By end of middle school, be able to create simple web pages. * Create a blog about themselves * Create a site about an interest or passion * Create a forum where their friends can talk

By end of highschool, be able to create simple applications. * Create a time-managment app * Create a budgeting app * Create a goals tracking app

Etc....

Make sure that all kids have a common shared lexicon in this area and experience taking a stab at developing apps and sites that have the same requirements. Allow them to expound upon execution through social interaction about these items.

that would be an addition to the Common Core Standards it sounds like
It's not about creating stuff, it's about understanding how stuff works.

I can teach a monkey to set up a Wordpress page or write a "Hello World", but the skill will be useless if the monkey doesn't understand what's going on and cannot translate this skill into a different environment.

It's easy to see how badly a checklist you mentioned would work. You could teach kids those tasks using a certain kind of tools (web pages - iLife, simple apps - scaffolds in RoR; and so on), and this knowledge would be useless because the tools would change before kids would finish their education. But teach students to understand things, and this will stick. Teach people to understand how the computer works, understand how the programming languages work and so on, and they will manage to figure all the other things themselves.

If there is one skill that student should be taught though, it's "how to google things up". It's surprising, but kids don't know how to use internet to find knowledge. Everyone assumes that since they spend so much time on the internet, they should be fluent at searching. They are not.

The problem is that you're going to have a tough time teaching an 8 year old the theory behind how things work. Just show them how to do something simple with concrete results.

Each child will take this to the degree they can - some will find no interest, some will be wildly beyond the simple demo.

The point is to make sure that there are concrete results from each step, my post was just a first pass at an example, not some absolute...

The point is that it would be beneficial to have a tiered path toward advancement that can be followed.

Well, I guess what I meant was that the path should be measured by understanding of the subject, not by high-level skills. Or, at least if the skills were to be measured, they should be low-level, like - the ability to search information on the web, the ability to ask a question on a relevant forum, an ability to manage the filesystem, and so on.

As for the 8-year old understanding the theory behind how things work... I learned how body/animals operate on the biology class at the age of 10; and the basics of physics as well.

>It's easy to see how badly a checklist you mentioned would work. You could teach kids those tasks using a certain kind of tools (web pages - iLife, simple apps - scaffolds in RoR; and so on), and this knowledge would be useless because the tools would change before kids would finish their education.

Well, the point I was making to was to expose them to building something of immediate use as an effort to expose them to the process and "how stuff works" -- this would go far to helping them both understand tech as well as determine if they have interest/aptitude.

"How to google things" was effectively covered by my statement of ensuring grammar school kids could confidently and safely navigate the web.

Why on earth does every kid need to learn how to build websites?! Their heads are already being stuffed with useless stuff that is of no interest to vast majority of kids. Expose the kids to programming and let them decide, if they want to pursue it further.
Because it is simple enough to teach to 4-6th graders.
I can imagine an article just like this, several hundred years ago, with the title Stop Teaching "Kids To Write".

Programming is fast becoming the new literacy.

Speaking as someone who has taught a lot of students, let me assure you: literacy is the new literacy.

Most kids entering college (in the US at least) are abysmally bad at reading and writing. Programming skills won't help you if you can't read or communicate in writing.

When you teach programming, you teach reading, writing and logic as well.
If that were the case, then programmers would have fantastic documentation skills. And yet, by and large that's not the case.
Agree - I tire of the grammar used by techies and programmers which, even writing in their native language, sounds like one of a 2nd-year foreign immigrant. They cannot (or care not to) empathize with how a reader might interpret their words.
Good documentation takes effort. I bet much of the docs are lousy because of laziness or poor priorities.

Apart from that, the question is not whether the documentation is good or bad, but whether it's better or worse than the one a non-programmer would write.

Finally, even apart from writing skills, programming teaches you how to comprehend what you're reading (docs), and how to solve problems.

Again, let me assure you: no. You pretty much work with what you're given.

Nobody teaches basic English at the college level unless they're being paid specifically to bring remedial students up to speed (and before you ask: yes, that includes freshman English class). I've taught a few "writing intensive" lab courses, but that basically meant that we forced the students to write a lot, and that we were allowed to brutalize them for crappy writing (roughly 85% of the students). We spent no time teaching them how to write, nor could we: we barely had time to teach the subject at hand.

I definitely do not think this is in the best interest of young people. It prepares students not for a fruitful career, rather it forces a trade that is not necessarily suited to the majority of students.

Or perhaps it just teaches them a broadly-applicable skill that does not have to be taken up as a full-time job in order to be useful.

Like carpentry, plumbing or auto repair?

Yeah, who am I kidding? Nobody needs those things. That's why we teach them in "vocational technology" schools. Totally different than writing code.

I read the entire essay. As I read it, I found myself wondering who D. Marshall Lemcoe Jr. was, and what experience he had in the industry. After I clicked through to his app.net profile, I found this biography, which I'm sharing in case you had the same question:

"18-year-old business owner, web developer, systems administrator, high school basketball official, diction junkie, computer enthusiast, car enthusiast, college student."

ad hominem
No - the grandparent did not engage in any attack. It provided context.
(comment deleted)
How is that context relevant? Wasn't the intention behind the context to discredit the author?
The context, without further comment, allows the reader to be informed of the perspectives and possible biases of the author. I ask "How that is not relevant?"
Ad hominem is entirely relevant to the portion of the argument which rested on the authority of the speaker.
You could say that my comment was abuse, bullying, or passive aggressive sniping, but it isn't ad hominem, because I didn't say he was wrong. :-) The bio was presented without comment.

But, since you (didn't) ask, I thought the essay was pretentious. The other essays I read on the site felt that way too. The frequent touting of vague credentials, the complex writing style, and even the styling "D. Marshall Lemcoe Jr." all serve to paint a picture of someone who's smart but not entirely confident in himself. I'd encourage the writer to stop hiding behind his words, tell more simple stories about his own experiences, and draw fewer grandiose conclusions. Let the point make itself.

For more about the difference between ad hominem and abuse, read this incredibly awesome essay that I found years ago and have kept bookmarked all this time, just waiting for the perfect opportunity to whip it out. Thank you for providing that opportunity.

"The Ad Hominem Fallacy Fallacy." http://plover.net/~bonds/adhominem.html

I woudn't go as far as to say that it isn't going to help kids if they learn to code, but I agree the term 'hacking' has been beaten to a pulp; when people talk about 'hacking', they aren't talking about bypassing some server's security to access secure data, they're usually like "OMG I just learned HTML I'm a hacker now". I talked a bit about this here - http://krrishd.github.io/blog/post/to-code-or-not-to-code
Yes, what we need for a better future society are more lawyers and accountants. Because that's what wrong with today: too many people making cool shit and not enough people counting beans or drawing up contracts.
Dear D. Marshall Lemcoe Jr.,

When I started high school I rebelled against by brick-and-mortar entrepreneur parents by going into tech and teaching myself how to code. I was volunteering at internet cafes, because my family considered computers expensive toys and I was making an average worker's monthly salary in a couple of days by coding after hours. Even my highly respected grandparents suggested I should go into a "reputable career instead".

That was 15 years ago. Since then my work has been used by millions of people and I have been able to amplify the impact of my time far beyond what I could have ever done with two hands and a brain in the same amount of time in a reputable profession.

"Coding" is no more a forced skill than learning how to write. It is a form of literacy. If you have it, you have choices and access to reach and change the world if you need to. Without it, you are limited to your location, means, and circumstances in what you can do with your time.

If you ever need a slap-in-your face moment 10 years from now, feel free to re-read your blog post.

You are exactly the exception I discussed - the world-class developer.

Did you even read the post?

Teaching kids to code isn't about turning them into future code monkeys. It's about exposing them to skills that will very likely be essential in the future.

I work at an investment bank. Believe it or not, there are executives there that have no idea how to use email. Their secretary prints every email out, reads them to them in their office and the executive then verbally dictates a response that will be typed out by the secretary. These executives honestly don't even know how to use the phones. They can get away with this because they're in their 60s and have four decades of experience.

Now imagine a 20 year old getting hired today and on his first day he discloses that he doesn't know how to use email and doesn't know how to use a phone. And worse - he has no interest in learning either. How long until he would be escorted out the door?

In the future, there will be fewer IT departments. Using commodities like CPU, disk and RAM will be as familiar to the common workforce as using electricity is today. There will be 60 year olds that don't know how to extract data from a database and group it, sort it and transfer it from one application to another. But you better not be a 20 year old in that situation.

Teach your kids to code. Not to be a code monkey - but so they can do whatever it is they choose to do in the future.

This is a good example of "as wrong in the opposite direction." American families and secondary education should place more value on providing resources and encouraging computer science. For sure. But saying "teach kids to code" misses the mark just as much as "dont teach kids to code." It's a buzz phrase. And I love a good pivot into creating an MVP growth hack for lean movement, but the education of our students is too important. Lets have a more serious conversation
I've been feeling somewhat more doubtful lately on the whole idea of compulsory education based on lists, tests, and lectures. Sorta in the same vein as that, I don't really see the point in "teaching kids to code". I fully support giving them all of the tools that they need to learn how to code, or to learn and do things in any other field they might be interested in. In the internet age, most of this is already online for free.

I am much more doubtful that there is any value in making kids sit in a programming class and write whatever programs the instructor tells them to in whatever language the class uses. I've had to sit through a few classes like that, and I don't think any of them have really taught me anything besides how to game the class grading system. I learned everything I know by going out and doing stuff on my own.

I dislike the whole idea of teaching code to kids, only if they show interested in logic stuff and stuff alike.

Maybe they're talented at other stuff you know, like literacy, painting, etc... Why would they need to learn how to code?

However, making programming a general subject is good though. Show them their career choice early.

I went into this article assuming it would take the position that we should instead be teaching people to code rather than children specifically. There are plenty of adults who have had their jobs displaced by software that could do with a hand.

But it's a thinly disguised rant about the author's personal preferences in life direction. It seems like the author thinks there's no middle ground between creating a startup and being a "code monkey". What's wrong with "taking a corporate job"?

I agree that programming as a profession isn't for everyone, but the article almost contradicts itself - if the author hadn't learned to program, the apparel company wouldn't be able to rely on his software. A perfect example of how software literacy can be used outside an explicit programming position.

I don't see a problem with kids having a computing class, just as they have history, biology, physical ed, etc classes. I do have an issue with the glamorisation, rockstar bandwagon that people outside the industry have jumped on. Presumably policy makers talk to the silicon valley people, who pass on their rose tinted view. If policy makers spoke to the rest, the blue collar crud shovellers, I expect they'd be less caught up in the gold rush.
Coming from a teenager, this article makes sense and I enjoyed the point of view, but this is horrible advice, D. Marshall Lemcoe Jr. You should consider letting this one hit the floor.
This article pissed me off, coding is a skill that teaches math, logic, comprehension, --all extremely important skills, it also teaches about consequences of actions via if/then statements we learn if we do something, it has a result. Kids need to learn this. It also teaches problem solving another crucially important skill - and I read STORY after STORY about a doctor, or lawyer who taught themselves to code to build an app...

Why would a rich doctor or lawyer need to code if it wasn't important? Why waste the time or money to learn? There will be hundreds of areas in a person's life where they could potentially find a way to make something easier through coding, and coding can also be translated into REAL world stuff via arduino, raspberry pi, etc -- the fact is w/ the internet of things, wearable tech, and robots taking over the workforce -- coding is something that we all should know at least a little bit about, and NO student will be worse off for having learned it.

If this is your logic, then why should we teach Music, Sports, or Art? (All important parts of our lives... but not something crucial to get along in life w/ unless your profession is in one of these fields, but if we didn't teach it, less people would go into it. )

"I definitely agree that students should have a good foundation for how to use technology as a tool in their lives, but going as far to say that students should be able to program the tools they use is a stretch. Do we emphasize writing skills to the extent that every student should become the next best-seller?"

Should we expect every student to be able to build a full-fledged (say) statistical modeling package? No, of course not. Should we expect students to know their way around "programming" well enough to express what they want to do in the domain they choose to work in without clicking through menus? Absolutely. To compare the latter to "writing a best-selling novel" would be inane. We should teach kids to write well enough that they can write a moderate length letter, and we should teach kids to program well enough that they can write a moderate length script.

The notion that the kind of programming instruction we give to anyone pre-college (outside of exceedingly rare circumstances) is more like the former than the latter is, I think, entirely off base - generally, we don't even give the latter.