Code is the next universal language. In the seventies, it was punk music that drove the whole generation. In the eighties, it was probably money. But for my generation of people, software is the interface to our imagination and our world. And that means that we need a radically, radically more diverse set of people to build those products, to not see computers as mechanical and lonely and boring and magic, to see them as things that they can tinker and turn around and twist, and so forth.
My personal journey into the world of programming and technology started at the tender age of 14. I had this mad teenage crush on an older man, and the older man in question just happened to be the then Vice President of the United States, Mr. Al Gore. And I did what every single teenage girl would want to do. I wanted to somehow express all of this love, so I built him a website, it's over here. And in 2001, there was no Tumblr, there was no Facebook, there was no Pinterest. So I needed to learn to code in order to express all of this longing and loving.
And that is how programming started for me. It started as a means of self-expression. Just like when I was smaller, I would use crayons and legos. And when I was older, I would use guitar lessons and theater plays. But then, there were other things to get excited about, like poetry and knitting socks and conjugating French irregular verbs and coming up with make-believe worlds and Bertrand Russell and his philosophy. And I started to be one of those people who felt that computers are boring and technical and lonely.
Here's what I think today. Little girls don't know that they are not supposed to like computers. Little girls are amazing. They are really, really good at concentrating on things and being exact and they ask amazing questions like, "What?" and "Why?" and "How?" and "What if?" And they don't know that they are not supposed to like computers. It's the parents who do. It's us parents who feel like computer science is this esoteric, weird science discipline that only belongs to the mystery makers. That it's almost as far removed from everyday life as, say, nuclear physics.
And they are partly right about that. There's a lot of syntax and controls and data structures and algorithms and practices, protocols and paradigms in programming. And we as a community, we've made computers smaller and smaller. We've built layers and layers of abstraction on top of each other between the man and the machine to the point that we no longer have any idea how computers work or how to talk to them. And we do teach our kids how the human body works, we teach them how the combustion engine functions and we even tell them that if you want to really be an astronaut you can become one. But when the kid comes to us and asks, "So, what is a bubble sort algorithm?" Or, "How does the computer know what happens when I press 'play,' how does it know which video to show?" Or, "Linda, is Internet a place?" We adults, we grow oddly silent. "It's magic," some of us say. "It's too complicated," the others say.
Well, it's neither. It's not magic and it's not complicated. It all just happened really, really, really fast. Computer scientists built these amazing, beautiful machines, but they made them very, very foreign to us, and also the language we speak to the computers so that we don't know how to speak to the computers anymore without our fancy user interfaces.
And that's why no one recognized that when I was conjugating French irregular verbs, I was actually practicing my pattern recognition skills. And when I was excited about knitting, I actually was following a sequence of symbolic commands that included loops inside of them. And that Bertrand Russell's lifelong quest to find an exact language between English and mathematics found its home inside of a computer. I was a programmer, but no one knew it.
The kids of today, they tap, swipe and pinch their way through the world. But unless we give them tools to build with computers, we are raising only consumers instead of creators.
This whole quest led me to this little girl. Her name is Ruby, she is six years old. She is completely fearless, imaginative and a little bit bossy. And every time I would run into a problem in trying to teach myself programming like, "What is object-oriented design or what is garbage collection?", I would try to imagine how a six-year-old little girl would explain the problem.
And I wrote a book about her and I illustrated it and the things Ruby taught me go like this. Ruby taught me that you're not supposed to be afraid of the bugs under your bed. And even the biggest of the problems are a group of tiny problems stuck together. And Ruby also introduced me to her friends, the colorful side of the Internet culture. She has friends like the Snow Leopard, who is beautiful but doesn't want to play with the other kids. And she has friends like the green robots that are really friendly but super messy. And she has friends like Linux the penguin who's really ruthlessly efficient, but somewhat hard to understand. And idealistic foxes, and so on.
In Ruby's world, you learn technology through play. And, for instance, computers are really good at repeating stuff, so the way Ruby would teach loops goes like this. This is Ruby's favorite dance move, it goes, "Clap, clap, stomp, stomp clap, clap and jump." And you learn counter loops by repeating that four times. And you learn while loops by repeating that sequence while I'm standing on one leg. And you learn until loops by repeating that sequence until mom gets really mad. And most of all, you learn that there are no ready answers.
When coming up with the curriculum for Ruby's world, I needed to really ask the kids how they see the world and what kind of questions they have and I would organize play testing sessions. I would start by showing the kids these four pictures. I would show them a picture of a car, a grocery store, a dog and a toilet. And I would ask, "Which one of these do you think is a computer?" And the kids would be very conservative and go, "None of these is a computer. I know what a computer is: it's that glowing box in front of which mom or dad spends way too much time." But then we would talk and we would discover that actually, a car is a computer, it has a navigation system inside of it. And a dog—a dog might not be a computer, but it has a collar and the collar might have a computer inside of it. And grocery stores, they have so many different kinds of computers, like the cashier system and the burglar alarms. And kids, you know what? In Japan, toilets are computers and there's even hackers who hack them.
And we go further and I give them these little stickers with an on/off button on them. And I tell the kids, "You know what? Today you have this magic ability to make anything in this room into a computer." And again, the kids go, "Sounds really hard, I don't know the right answer for this." But I tell them, "Don't worry, your parents don't know the right answer, either. They've just started to hear about this thing called The Internet of Things. But you kids, you are going to be the ones who are really going to live up in a world where everything is a computer."
And then I had this little girl who came to me and took a bicycle lamp and she said, "If this bicycle lamp, if it were a computer, it would change colors." And I said, "That's a really good idea, what else could it do?" And she thinks and she thinks, and she goes, "Ha! If this bicycle lamp were a computer, we could go on a biking trip with my father and we would sleep in a tent and this biking lamp could also be a movie projector." And that's the moment I'm looking for, the moment when the kid realizes that the world is definitely not ready yet, that a really awesome way of making the world more ready is by building technology and that each one of us can be a part of that change.
Final story, we also built a computer. And we got to know the bossy CPU and the helpful RAM and ROM that help it remember things. And after we've assembled our computer together, we also design an application for it. And my favorite story is this little boy, he's six years old and his favorite thing in the world is to be an astronaut. And the boy, he has these huge headphones on and he's completely immersed in his tiny paper computer because you see, he's built his own intergalactic planetary navigation application. And his father, the lone astronaut in the Martian orbit, is on the other side of the room and the boy's important mission is to bring the father safely back to earth. And these kids are going to have a profoundly different view of the world and the way we build it with technology.
Finally, the more approachable, the more inclusive, and the more diverse we make the world of technology, the more colorful and better the world will look like. So, imagine with me, for a moment, a world where the stories we tell about how things get made don't only include the twenty something-year-old Silicon Valley boys, but also Kenyan schoolgirls and Norwegian librarians. Imagine a world where the little Ada Love laces of tomorrow, who live in a permanent reality of 1s and 0s, they grow up to be very optimistic and brave about technology. They embrace the powers and the opportunities and the limitations of the world. A world of technology that is wonderful, whimsical and a tiny bit weird.
When I was a girl, I wanted to be a storyteller. I loved make-believe worlds and my favorite thing to do was to wake up in the mornings in Moomin valley. In the afternoons, I would roam around the Tatooines. And in the evenings, I would go to sleep in Narnia. And programming turned out to be the perfect profession for me. I still create worlds. Instead of stories, I do them with code.
Programming gives me this amazing power to build my whole little universe with its own rules and paradigms and practices. Create something out of nothing with the pure power of logic.