WEBVTT 00:00:20.720 --> 00:00:24.656 Code is the next universal language. 00:00:24.680 --> 00:00:28.856 In the seventies, it was punk music that drove the whole generation. 00:00:28.880 --> 00:00:31.336 In the eighties, it was probably money. 00:00:31.360 --> 00:00:33.696 But for my generation of people, 00:00:33.720 --> 00:00:38.536 software is the interface to our imagination and our world. 00:00:38.560 --> 00:00:40.256 And that means that we need 00:00:40.280 --> 00:00:43.536 a radically, radically more diverse set of people 00:00:43.560 --> 00:00:45.336 to build those products, 00:00:45.360 --> 00:00:50.296 to not see computers as mechanical and lonely and boring and magic, 00:00:50.320 --> 00:00:52.296 to see them as things that they can tinker 00:00:52.320 --> 00:00:54.760 and turn around and twist, and so forth. 00:00:55.720 --> 00:00:59.496 My personal journey into the world of programming and technology 00:00:59.520 --> 00:01:02.496 started at the tender age of 14. 00:01:02.520 --> 00:01:06.616 I had this mad teenage crush on an older man, 00:01:06.640 --> 00:01:08.976 and the older man in question just happened to be 00:01:09.000 --> 00:01:13.416 the then Vice President of the United States, Mr. Al Gore. 00:01:13.440 --> 00:01:16.496 And I did what every single teenage girl would want to do. 00:01:16.520 --> 00:01:18.736 I wanted to somehow express all of this love, 00:01:18.760 --> 00:01:21.336 so I built him a website, it's over here. 00:01:21.360 --> 00:01:24.296 And in 2001, there was no Tumblr, 00:01:24.319 --> 00:01:26.576 there was no Facebook, there was no Pinterest. 00:01:26.600 --> 00:01:28.736 So I needed to learn to code 00:01:28.760 --> 00:01:32.136 in order to express all of this longing and loving. 00:01:32.160 --> 00:01:34.496 And that is how programming started for me. 00:01:34.520 --> 00:01:37.056 It started as a means of self-expression. 00:01:37.080 --> 00:01:40.696 Just like when I was smaller, I would use crayons and legos. 00:01:40.720 --> 00:01:45.320 And when I was older, I would use guitar lessons and theater plays. 00:01:45.920 --> 00:01:48.896 But then, there were other things to get excited about, 00:01:48.920 --> 00:01:51.336 like poetry and knitting socks 00:01:51.360 --> 00:01:54.656 and conjugating French irregular verbs 00:01:54.680 --> 00:01:56.536 and coming up with make-believe worlds 00:01:56.560 --> 00:01:59.696 and Bertrand Russell and his philosophy. 00:01:59.720 --> 00:02:01.616 And I started to be one of those people 00:02:01.640 --> 00:02:05.320 who felt that computers are boring and technical and lonely. 00:02:06.120 --> 00:02:07.936 Here's what I think today. 00:02:07.960 --> 00:02:12.016 Little girls don't know that they are not supposed to like computers. 00:02:12.040 --> 00:02:13.296 Little girls are amazing. 00:02:13.320 --> 00:02:17.456 They are really, really good at concentrating on things 00:02:17.480 --> 00:02:20.736 and being exact and they ask amazing questions like, 00:02:20.760 --> 00:02:23.336 "What?" and "Why?" and "How?" and "What if?" 00:02:23.360 --> 00:02:27.040 And they don't know that they are not supposed to like computers. 00:02:27.760 --> 00:02:29.696 It's the parents who do. 00:02:29.720 --> 00:02:31.015 It's us parents who feel 00:02:31.039 --> 00:02:36.136 like computer science is this esoteric, weird science discipline 00:02:36.160 --> 00:02:39.816 that only belongs to the mystery makers. 00:02:39.840 --> 00:02:42.576 That it's almost as far removed from everyday life 00:02:42.600 --> 00:02:45.136 as, say, nuclear physics. 00:02:45.160 --> 00:02:47.616 And they are partly right about that. 00:02:47.640 --> 00:02:51.136 There's a lot of syntax and controls and data structures 00:02:51.160 --> 00:02:53.816 and algorithms and practices, 00:02:53.840 --> 00:02:56.416 protocols and paradigms in programming. 00:02:56.440 --> 00:03:00.736 And we as a community, we've made computers smaller and smaller. 00:03:00.760 --> 00:03:05.296 We've built layers and layers of abstraction on top of each other 00:03:05.320 --> 00:03:06.816 between the man and the machine 00:03:06.840 --> 00:03:10.056 to the point that we no longer have any idea how computers work 00:03:10.080 --> 00:03:12.256 or how to talk to them. 00:03:12.280 --> 00:03:15.056 And we do teach our kids how the human body works, 00:03:15.080 --> 00:03:18.176 we teach them how the combustion engine functions 00:03:18.200 --> 00:03:21.216 and we even tell them that if you want to really be an astronaut 00:03:21.240 --> 00:03:22.696 you can become one. 00:03:22.720 --> 00:03:24.896 But when the kid comes to us and asks, 00:03:24.920 --> 00:03:27.656 "So, what is a bubble sort algorithm?" 00:03:27.680 --> 00:03:32.096 Or, "How does the computer know what happens when I press 'play,' 00:03:32.120 --> 00:03:33.976 how does it know which video to show?" 00:03:34.000 --> 00:03:36.576 Or, "Linda, is Internet a place?" 00:03:36.600 --> 00:03:39.320 We adults, we grow oddly silent. 00:03:40.400 --> 00:03:42.856 "It's magic," some of us say. 00:03:42.880 --> 00:03:45.600 'It's too complicated," the others say. 00:03:46.520 --> 00:03:48.016 Well, it's neither. 00:03:48.040 --> 00:03:50.616 It's not magic and it's not complicated. 00:03:50.640 --> 00:03:54.256 It all just happened really, really, really fast. 00:03:54.280 --> 00:03:57.176 Computer scientists built these amazing, beautiful machines, 00:03:57.200 --> 00:03:59.616 but they made them very, very foreign to us, 00:03:59.640 --> 00:04:01.856 and also the language we speak to the computers 00:04:01.880 --> 00:04:04.896 so that we don't know how to speak to the computers anymore 00:04:04.920 --> 00:04:07.416 without our fancy user interfaces. 00:04:07.440 --> 00:04:09.016 And that's why no one recognized 00:04:09.040 --> 00:04:11.736 that when I was conjugating French irregular verbs, 00:04:11.760 --> 00:04:15.016 I was actually practicing my pattern recognition skills. 00:04:15.040 --> 00:04:17.336 And when I was excited about knitting, 00:04:17.360 --> 00:04:20.896 I actually was following a sequence of symbolic commands 00:04:20.920 --> 00:04:22.656 that included loops inside of them. 00:04:22.680 --> 00:04:25.096 And that Bertrand Russell's lifelong quest 00:04:25.120 --> 00:04:29.096 to find an exact language between English and mathematics 00:04:29.120 --> 00:04:31.440 found its home inside of a computer. 00:04:32.080 --> 00:04:34.280 I was a programmer, but no one knew it. 00:04:35.080 --> 00:04:39.536 The kids of today, they tap, swipe and pinch their way through the world. 00:04:39.560 --> 00:04:42.776 But unless we give them tools to build with computers, 00:04:42.800 --> 00:04:46.736 we are raising only consumers instead of creators. 00:04:46.760 --> 00:04:49.296 This whole quest led me to this little girl. 00:04:49.320 --> 00:04:51.696 Her name is Ruby, she is six years old. 00:04:51.720 --> 00:04:55.816 She is completely fearless, imaginative and a little bit bossy. 00:04:55.840 --> 00:04:58.296 And every time I would run into a problem 00:04:58.320 --> 00:05:00.576 in trying to teach myself programming like, 00:05:00.600 --> 00:05:04.576 "What is object-oriented design or what is garbage collection?", 00:05:04.600 --> 00:05:09.016 I would try to imagine how a six-year-old little girl would explain the problem. 00:05:09.040 --> 00:05:11.696 And I wrote a book about her and I illustrated it 00:05:11.720 --> 00:05:14.096 and the things Ruby taught me go like this. 00:05:14.120 --> 00:05:16.576 Ruby taught me that you're not supposed to be afraid 00:05:16.600 --> 00:05:17.976 of the bugs under your bed. 00:05:18.000 --> 00:05:20.056 And even the biggest of the problems 00:05:20.080 --> 00:05:23.576 are a group of tiny problems stuck together. 00:05:23.600 --> 00:05:26.336 And Ruby also introduced me to her friends, 00:05:26.360 --> 00:05:29.256 the colorful side of the Internet culture. 00:05:29.280 --> 00:05:31.136 She has friends like the Snow Leopard, 00:05:31.160 --> 00:05:34.096 who is beautiful but doesn't want to play with the other kids. 00:05:34.120 --> 00:05:38.736 And she has friends like the green robots that are really friendly but super messy. 00:05:38.760 --> 00:05:40.936 And she has friends like Linux the penguin 00:05:40.960 --> 00:05:44.616 who's really ruthlessly efficient, but somewhat hard to understand. 00:05:44.640 --> 00:05:46.880 And idealistic foxes, and so on. 00:05:47.880 --> 00:05:51.536 In Ruby's world, you learn technology through play. 00:05:51.560 --> 00:05:54.776 And, for instance, computers are really good at repeating stuff, 00:05:54.800 --> 00:05:57.696 so the way Ruby would teach loops goes like this. 00:05:57.720 --> 00:06:01.096 This is Ruby's favorite dance move, it goes, "Clap, clap, stomp, stomp 00:06:01.120 --> 00:06:02.616 clap, clap and jump." 00:06:02.640 --> 00:06:06.656 And you learn counter loops by repeating that four times. 00:06:06.680 --> 00:06:09.496 And you learn while loops by repeating that sequence 00:06:09.520 --> 00:06:11.296 while I'm standing on one leg. 00:06:11.320 --> 00:06:14.616 And you learn until loops by repeating that sequence 00:06:14.640 --> 00:06:16.696 until mom gets really mad. 00:06:16.720 --> 00:06:17.736 (Laughter) 00:06:17.760 --> 00:06:21.480 And most of all, you learn that there are no ready answers. 00:06:22.320 --> 00:06:25.056 When coming up with the curriculum for Ruby's world, 00:06:25.080 --> 00:06:28.376 I needed to really ask the kids how they see the world 00:06:28.400 --> 00:06:30.416 and what kind of questions they have 00:06:30.440 --> 00:06:32.520 and I would organize play testing sessions. 00:06:33.360 --> 00:06:35.920 I would start by showing the kids these four pictures. 00:06:36.480 --> 00:06:38.816 I would show them a picture of a car, 00:06:38.840 --> 00:06:41.256 a grocery store, a dog and a toilet. 00:06:41.280 --> 00:06:44.520 And I would ask, "Which one of these do you think is a computer?" 00:06:45.480 --> 00:06:48.216 And the kids would be very conservative and go, 00:06:48.240 --> 00:06:50.016 "None of these is a computer. 00:06:50.040 --> 00:06:51.696 I know what a computer is: 00:06:51.720 --> 00:06:53.056 it's that glowing box 00:06:53.080 --> 00:06:56.696 in front of which mom or dad spends way too much time." 00:06:56.720 --> 00:06:58.216 But then we would talk 00:06:58.240 --> 00:07:01.056 and we would discover that actually, a car is a computer, 00:07:01.080 --> 00:07:03.456 it has a navigation system inside of it. 00:07:03.480 --> 00:07:06.256 And a dog -- a dog might not be a computer, 00:07:06.280 --> 00:07:07.496 but it has a collar 00:07:07.520 --> 00:07:10.136 and the collar might have a computer inside of it. 00:07:10.160 --> 00:07:13.616 And grocery stores, they have so many different kinds of computers, 00:07:13.640 --> 00:07:17.056 like the cashier system and the burglar alarms. 00:07:17.080 --> 00:07:18.416 And kids, you know what? 00:07:18.440 --> 00:07:20.976 In Japan, toilets are computers 00:07:21.000 --> 00:07:22.896 and there's even hackers who hack them. 00:07:22.920 --> 00:07:24.696 (Laughter) 00:07:24.720 --> 00:07:25.936 And we go further 00:07:25.960 --> 00:07:29.176 and I give them these little stickers with an on/off button on them. 00:07:29.200 --> 00:07:32.816 And I tell the kids, "Today you have this magic ability 00:07:32.840 --> 00:07:36.456 to make anything in this room into a computer." 00:07:36.480 --> 00:07:37.816 And again, the kids go, 00:07:37.840 --> 00:07:40.736 "Sounds really hard, I don't know the right answer for this." 00:07:40.760 --> 00:07:42.336 But I tell them, "Don't worry, 00:07:42.360 --> 00:07:44.936 your parents don't know the right answer, either. 00:07:44.960 --> 00:07:47.176 They've just started to hear about this thing 00:07:47.200 --> 00:07:49.416 called The Internet of Things. 00:07:49.440 --> 00:07:51.416 But you kids, you are going to be the ones 00:07:51.440 --> 00:07:55.816 who are really going to live up in a world where everything is a computer." 00:07:55.840 --> 00:07:58.056 And then I had this little girl who came to me 00:07:58.080 --> 00:07:59.376 and took a bicycle lamp 00:07:59.400 --> 00:08:03.616 and she said, "This bicycle lamp, if it were a computer, 00:08:03.640 --> 00:08:05.656 it would change colors." 00:08:05.680 --> 00:08:08.696 And I said, "That's a really good idea, what else could it do?" 00:08:08.720 --> 00:08:10.456 And she thinks and she thinks, 00:08:10.480 --> 00:08:14.496 and she goes, "If this bicycle lamp were a computer, 00:08:14.520 --> 00:08:17.256 we could go on a biking trip with my father 00:08:17.280 --> 00:08:18.896 and we would sleep in a tent 00:08:18.920 --> 00:08:22.760 and this biking lamp could also be a movie projector." 00:08:23.640 --> 00:08:25.600 And that's the moment I'm looking for, 00:08:26.400 --> 00:08:27.976 the moment when the kid realizes 00:08:28.000 --> 00:08:30.376 that the world is definitely not ready yet, 00:08:30.400 --> 00:08:33.376 that a really awesome way of making the world more ready 00:08:33.400 --> 00:08:35.616 is by building technology 00:08:35.640 --> 00:08:38.400 and that each one of us can be a part of that change. 00:08:39.200 --> 00:08:42.256 Final story, we also built a computer. 00:08:42.280 --> 00:08:47.016 And we got to know the bossy CPU and the helpful RAM and ROM 00:08:47.040 --> 00:08:48.456 that help it remember things. 00:08:48.480 --> 00:08:51.416 And after we've assembled our computer together, 00:08:51.440 --> 00:08:54.096 we also design an application for it. 00:08:54.120 --> 00:08:56.135 And my favorite story is this little boy, 00:08:56.159 --> 00:08:57.416 he's six years old 00:08:57.440 --> 00:09:00.559 and his favorite thing in the world is to be an astronaut. 00:09:01.120 --> 00:09:03.376 And the boy, he has these huge headphones on 00:09:03.400 --> 00:09:06.656 and he's completely immersed in his tiny paper computer 00:09:06.680 --> 00:09:08.696 because you see, he's built his own 00:09:08.720 --> 00:09:13.016 intergalactic planetary navigation application. 00:09:13.040 --> 00:09:16.176 And his father, the lone astronaut in the Martian orbit, 00:09:16.200 --> 00:09:18.056 is on the other side of the room 00:09:18.080 --> 00:09:19.696 and the boy's important mission 00:09:19.720 --> 00:09:22.640 is to bring the father safely back to earth. 00:09:23.760 --> 00:09:27.216 And these kids are going to have a profoundly different view of the world 00:09:27.240 --> 00:09:29.640 and the way we build it with technology. 00:09:30.840 --> 00:09:34.696 Finally, the more approachable, the more inclusive, 00:09:34.720 --> 00:09:38.096 and the more diverse we make the world of technology, 00:09:38.120 --> 00:09:42.096 the more colorful and better the world will look like. 00:09:42.120 --> 00:09:44.696 So, imagine with me, for a moment, 00:09:44.720 --> 00:09:47.296 a world where the stories we tell 00:09:47.320 --> 00:09:50.336 about how things get made don't only include 00:09:50.360 --> 00:09:52.776 the twentysomething-year-old Silicon Valley boys, 00:09:52.800 --> 00:09:57.200 but also Kenyan schoolgirls and Norwegian librarians. 00:09:58.000 --> 00:10:02.216 Imagine a world where the little Ada Lovelaces of tomorrow, 00:10:02.240 --> 00:10:05.456 who live in a permanent reality of 1s and 0s, 00:10:05.480 --> 00:10:10.096 they grow up to be very optimistic and brave about technology. 00:10:10.120 --> 00:10:13.496 They embrace the powers and the opportunities 00:10:13.520 --> 00:10:15.120 and the limitations of the world. 00:10:15.680 --> 00:10:19.816 A world of technology that is wonderful, whimsical 00:10:19.840 --> 00:10:21.480 and a tiny bit weird. 00:10:23.120 --> 00:10:24.616 When I was a girl, 00:10:24.640 --> 00:10:26.656 I wanted to be a storyteller. 00:10:26.680 --> 00:10:28.256 I loved make-believe worlds 00:10:28.280 --> 00:10:29.896 and my favorite thing to do 00:10:29.920 --> 00:10:33.976 was to wake up in the mornings in Moominvalley. 00:10:34.000 --> 00:10:37.120 In the afternoons, I would roam around the Tatooines. 00:10:37.320 --> 00:10:40.200 And in the evenings, I would go to sleep in Narnia. 00:10:41.400 --> 00:10:44.600 And programming turned out to be the perfect profession for me. 00:10:45.720 --> 00:10:47.656 I still create worlds. 00:10:47.680 --> 00:10:50.640 Instead of stories, I do them with code. 00:10:51.640 --> 00:10:54.696 Programming gives me this amazing power 00:10:54.720 --> 00:10:57.096 to build my whole little universe 00:10:57.120 --> 00:11:01.080 with its own rules and paradigms and practices. 00:11:02.120 --> 00:11:06.080 Create something out of nothing with the pure power of logic. 00:11:06.920 --> 00:11:08.136 Thank you. 00:11:08.160 --> 00:11:10.600 (Applause)