After volunteering for the Obama campaign last year, a friend of mine insisted that I write a letter to our new President telling him what I thought he should do. This post is the result. Now, I don't pretend to be an expert on macroeconomics, international grand strategy or even enough of a policy wonk to make serious recommendations on how best to implement Issue X Reform. I can only speak to my little corner of the American experience. Here's what I do know:
- The future strength of our economy depends on its ability to create, support, and sustain entrepreneurs. (If you are somehow not convinced of this point, I'll let Fareed Zakaria explain)
- We know who the next generation of entrepreneurs are going to be. They are in school, right now, all across this country.
- They are nerds.
Take a look at this article on a programming Q&A site: How old are you, and how old were you when you started coding? There are over forty pages of responses from programmers of all ages, and if you just read the stories at random, you'll see a clear pattern. (Or, if you prefer a more quantitative analysis, one of the commenters has helpfully summarized them in graph form. We are nerds, after all. Here's the most striking thing about the statistics of this post: the average "age when started programming" is 13. Think of how many 10-year-olds there must be in the data to balance out the occasional person who started mid-career.
That data is completely consonant with the people I know who are successful technologists today, and similar patterns are documented in each recent wave of technology innovation. I am especially grateful to Malcolm Gladwell for reintroducing the stories of people like Bill Gates and Bill Joy into the mainstream discourse. What's striking about these stories, if you get past the PR hype, are two very important themes:
- These prodigies were self-taught, and had a fundamental fascination with technology from a very young age.
- Their stories would not have been possible without access to sympathetic adults with the necessary equipment and knowledge to get started.
My belief is that, right now, even in the worst and most under-served schools in the country, there are kids with the same potential as Bill Joy. They are probably bored. They are getting beat up by their peers, getting into trouble with their teachers, and generally having a pretty bad time. Those are the kids I think we have an obligation and an opportunity to reach. I don't think we can rescue them from humiliation (that would require a seriousness about education reform I don't see any evidence we're ready for), but I do think we can offer them an escape. And it just so happens that escape is to an activity essential for the future of our civilization. I think it's a pretty good deal.
I didn't learn to program from school, although it sometimes happened at school. In fact, it often got me in trouble. We were supposed to learn how to use computers via a carefully structured curriculum that taught us basic concepts one at a time, slowly advancing the whole class through a regimented program. You've probably read accounts like this, from other arrogant nerds, but bear with mine: in the first week, my nerdy friends and I had already mastered the whole curriculum. We spent the rest of our time pretending to work on the assigned homework, but really trying to do interesting side projects, like sending juvenile messages across the school network or building primitive video games. We did our best not to get caught by our teachers or noticed by our peers. Our fear was well substantiated: both had severe consequences.
Later, I discovered the incredible world of online role-playing games, called MUDs. These were primitive open-ended video games created by the players themselves, using simple programming languages. I spent endless hours getting the world's best introduction to object-oriented programming, and I didn't even know I was doing work. MUDs made the essential truth about software into a powerful metaphor: that code is magic, giving those who wield it the ability to create new forms of value literally out of thin air. We also learned that law is code, and that leadership was needed to build thriving communities in a digital age. You can find the origins of many successful companies in these early lessons.
So all I'm asking, on behalf of the thousands of nerds who could one day change the world for the better, is that we give them access to simple, open, programmable devices; a little time to work on them; and a safe space to work in. They'll take it from there. They don't need adult supervision, or a certified curriculum. If we network them together, they'll answer each others' questions and collaborate on projects we can hardly imagine.
Those of us who made it stand ready to do our part. Given the opportunity, we will build the systems these kids need. We will answer their questions. We will mentor them to get them started, and give them jobs and internships when they are ready. Asked to help, I am confident that Silicon Valley and every other innovation center will step up.
But I do think this requires participation from the public sector, too. There are three threats that are limiting the opportunity to unlock these kids' creativity:
- Inequity of access. Too many kids today don't have access to computers, cell phones, video games or other programmable devices. We need to leverage every part of our public inf, including public schools and libraries, to make access for those that want to learn programming universal. This doesn't have to be expensive - in fact, many of the physical devices are in place. But we need to open up access to kids so that they can use, program, and remix them on their own terms.
- DRM and other restrictions. Increasingly, today's computers and video games are not programmable, they are locked to their users. There would be no Microsoft, Sun Microsystems, or countless other job-creating tech companies today if early computers required corporate authorization to use.
When I was a kid, the way I logged onto the internet for the first time (to play MUDs, naturally) was through an open dial-up console at San Diego State University. When I say open, it's hard to believe how open it was: just dial the number, and you were dropped directly at a UNIX prompt. No logins, no codes, just raw uncensored internet access. - School hostility to phones, nerds, and other things they don't understand. An awful lot of kids have cell phones, and schools are busy banning them from classrooms. What a lost opportunity! Kids are voluntarily bringing a portable networked supercomputer to class, and we want to restrict them to pencil and paper?
A modern phone like the iPhone is a miraculous device. But it's not very open, and not very programmable, unless you have an expensive Mac and an approved developer license. We need to think about how to make these devices programmable by their users, so that they can grow and share as soon as the innovation bug bites them. You might not enjoy typing in code on such a small device, but kids don't mind. I know; in class I used to write video games for the TI-82, a graphing calculator provided to me by my school. Sure it was tedious, but compared to the alternatives, I thought it was great.
So that's my plea on behalf of nerds everywhere. If you're interested in helping them out, leave a note in the comments.
You must be the change you wish to see. How hard do you think it would be to get some old computers, set them up with Linux, and set up a free after-school program on them? There's three parts to it. You set up a web app to put volunteers in touch with after-school programs which already exist, already have safe places and supervisory staff, and which need computers, and then the people with the old computers to give away put the computers in boxes and mail them to the after-school programs. Then you set up a web app to co-ordinate volunteers who can wipe a hard drive and install Ubuntu. Third, you market it far and wide.
ReplyDeleteSeriously, if you're using the right tech, a pair of apps like this is a busy Saturday and you're done. And as for marketing it, this post is already on the first page of Hacker News.
It's a good idea. Somebody should do it. Hint, hint.
Hear Hear! You are spot on, as usual, sir. I learnt to program when I was 11 and started MUDding shortly thereafter. Not only did it open a world of opportunity that reframed my nerdy existence ('I am the law!') but it also changed my brain for the better.
ReplyDeleteLet's hope Obama's listening.
Ah, change doesn't come from top down, forget the morass of bureaucracy. Empower the kids. Show them how to provide access to their friends (your point #1), how to defeat walled gardens (your point #2), and how to protect themselves (your point #3). Read Doctorow's Little Brother, it's got insight: http://craphound.com/littlebrother/about/
ReplyDeleteHow about "teach kids marketing", or "teach kids business skills", or "teach kids financial literacy", or "teach nerds social skills"?
ReplyDeleteNerds are not entrepreneurs. Entrepreneurs have the ability to see market opportunities and turn them into cash. To do that they need to understand value, communicate with other business people (like bankers and VCs) about value, and communicate with prospective customers about value.
Not many people have the guts, determination, business acumen and social skills to be an entrepreneur. On the other hand we are knee-deep in third-rate programmers who can do the leg-work needed to execute the entrepreneur's plan.
This comment has been removed by the author.
ReplyDeleteEric – As always, your post is not only insightful but shows incredible wisdom that can only come from years of on the ground experience.
ReplyDeleteMy question to you is – Why would someone with such incredible ideas and professional success want to wait for bureaucrats to take action? Our current environment calls for capable individuals to act immediately. I encourage you to start moving on this idea as a grassroots program instead of waiting for others to do it.
Right on! Absolutely couldn't agree more. If this could somehow be implemented next year I think it would do more good for the long term health of our nation than any other plan currently being discussed.
ReplyDeleteTeaching kids to program is a more feasible goal now than ever before. Not only are there free compilers and development systems, but there are also a number of efforts to develop development systems and languages specifically aimed at teaching kids to program. Check out, as one example, Alice (Alice.org) which was started by Randy Pausch. I suspect there are many more.
ReplyDeleteThe focus on "21st century skills" while scrupulously avoiding the only real new 21st century skill completely puzzles me. This post nails it. Thanks.
ReplyDeleteI offered a programming class at the local school and .... only two kids took it up!
ReplyDeleteI'm trying again this term.
FYI I used Scratch from MIT which, I have to say, is a great starter environment for kids, super-low learning curve.
I documented the lesson plans etc on http://www.teachkidstoprogram.com/
@Mark - thanks for sharing your experience. You're highlighting one of the challenges that I think this kind of initiative faces, which is that there are probably only a few kids at any given school who this program can reach. But aggregated across many schools, there are thousands or tens of thousands of them.
ReplyDeleteHow should we devise a program to network these kids together, even those that go to schools where there isn't (yet) a volunteer ready to teach them one-on-one, as you're doing? To me, this is one of the reasons why we need good public policy engagement.
Twylite makes a good point, what good is a programmer if they don't have the necessary skills to be able to promote and sell their ideas/programs to the world? Not all programmers are entrepreneurs, granted there are exceptions.
ReplyDeleteHello Eric,
ReplyDeleteGreat post. Increasingly, I see computers as the fourth "pillar" of kids' education today, along with reading, writing, and 'rithmetic.
I'd be interested to hear your opinion of a book we published earlier this year: "Hello World! Computer Programming for Kids and Other Beginners."
The book teaches kids programming with examples written in Python, and is illustrated with fun kid-friendly characters. Can I send you a review copy? If you find it worthwhile, we'd appreciate a post on the blog to help us spread the word.
You can find out more at: manning.com/sande
Many thanks in advance,
Todd
--
Todd Green
Manning Publications Co.
togr AT manning.com
Good Post.
ReplyDeleteI remember learning LOGO when I was 10, me and my buddy created a House using LT and RT.. lol.. then it was GW BASIC.. then C++.. it was quite a journey.. but you are right the foundations really does matter.
You are quite right about openness with the present devices like iPhone, back in the day even Microsoft was pretty open with GW Basic.
speaking of Python, over a decade ago, the creator of Python wrote an essay called Computer Programming for Everybody (CP4E) which turned into a DARPA grant describing how programming should be taught like reading, writing, and arithmetic:
ReplyDeletehttp://www.python.org/doc/essays/cp4e.html
But what if they don't want to program or be programmers?
ReplyDeleteWow, this sounds familiar. I taught myself to program largely from David Ahl's BASIC Computer Games and David Levy's Computer Games books.
ReplyDeleteI don't think the point is that programming is for everyone but exposure and opportunity is key for empowerment. Programming and science produce critical thinking skills that are critical for almost all future pursuits.
@drhowarddrfine: the goal of the project is *not* to turn *everyone* into programmers but to introduce a vital skill that's applicable to all walks of life and professions. the concept of "programming" is something that we've had to do since the advent of the thermostat, oven, VCR, home protection system, TiVo, cable/DSL modem/router, cell phones (which are mini-computers!), etc. these devices all need human instruction to enable correct and desired operation. who knows, perhaps with this knowledge, there would be fewer blinking "12:00"s on VCRs globally! :-)
ReplyDelete