WEBVTT 00:00:20.238 --> 00:00:23.410 Code is the next universal language. 00:00:23.736 --> 00:00:27.893 In the seventies, it was punk music that drove the whole generation. 00:00:27.893 --> 00:00:30.461 In the eighties, it was probably money. 00:00:30.461 --> 00:00:32.829 But for my generation of people, 00:00:32.829 --> 00:00:37.148 software is the interface to our imagination and our world. 00:00:37.552 --> 00:00:39.626 And that means that we need 00:00:39.626 --> 00:00:42.723 a radically, radically more diverse set of people 00:00:42.723 --> 00:00:44.255 to build those products, 00:00:44.255 --> 00:00:49.358 to not see computers as mechanical and lonely and boring and magic, 00:00:49.358 --> 00:00:51.681 to see them as things that they can tinker 00:00:51.681 --> 00:00:54.495 and turn around and twist, and so forth. 00:00:55.105 --> 00:00:58.753 My personal journey into the world of programming and technology 00:00:58.762 --> 00:01:01.446 started at the tender age of 14. 00:01:01.446 --> 00:01:05.853 I had this mad teenage crush on an older man, 00:01:05.853 --> 00:01:08.375 and the older man in question just happened to be 00:01:08.375 --> 00:01:12.683 the then Vice President of the United States, Mr. Al Gore. 00:01:12.847 --> 00:01:15.648 And I did what every single teenage girl would want to do. 00:01:15.648 --> 00:01:18.280 I wanted to somehow express all of this love, 00:01:18.280 --> 00:01:20.315 so I built him a website, it's over here. 00:01:20.315 --> 00:01:24.296 And in 2001, there was no Tumblr, 00:01:24.528 --> 00:01:26.954 there was no Facebook, there was no Pinterest. 00:01:27.477 --> 00:01:29.266 So I needed to learn to code 00:01:29.266 --> 00:01:32.136 in order to express all of this longing and loving. 00:01:32.737 --> 00:01:34.976 And that is how programming started for me. 00:01:34.976 --> 00:01:37.444 It started as a means of self-expression. 00:01:37.444 --> 00:01:40.941 Just like when I was smaller, I would use crayons and legos. 00:01:41.320 --> 00:01:45.920 And when I was older, I would use guitar lessons and theater plays. 00:01:46.807 --> 00:01:51.406 But then, there were other boys, other things to get excited about, 00:01:51.406 --> 00:01:53.943 like poetry and knitting socks 00:01:53.943 --> 00:01:57.176 and conjugating French irregular verbs 00:01:57.176 --> 00:01:59.556 and coming up with make-believe worlds 00:01:59.556 --> 00:02:02.160 and Bertrand Russell and his philosophy. 00:02:02.160 --> 00:02:04.214 And I started to be one of those people 00:02:04.214 --> 00:02:07.150 who felt that computers are boring and technical and lonely. 00:02:08.520 --> 00:02:10.288 Here's what I think today. 00:02:10.288 --> 00:02:14.496 Little girls don't know that they are not supposed to like computers. 00:02:14.496 --> 00:02:16.001 Little girls are amazing. 00:02:16.001 --> 00:02:20.134 They are really, really good at concentrating on things 00:02:20.134 --> 00:02:23.406 and being exact and they ask amazing questions like, 00:02:23.406 --> 00:02:25.970 "What?" and "Why?" and "How?" and "What if?" 00:02:25.970 --> 00:02:29.545 And they don't know that they are not supposed to like computers. 00:02:30.166 --> 00:02:31.705 It's the parents who do. 00:02:32.310 --> 00:02:33.796 It's us parents who feel 00:02:33.796 --> 00:02:38.536 like computer science is this esoteric, weird science discipline 00:02:38.536 --> 00:02:42.146 that only belongs to the mystery makers. 00:02:42.146 --> 00:02:45.272 That it's almost as far removed from everyday life 00:02:45.272 --> 00:02:47.448 as, say, nuclear physics. 00:02:47.856 --> 00:02:50.195 And they are partly right about that. 00:02:50.195 --> 00:02:53.506 There's a lot of syntax and controls and data structures 00:02:53.506 --> 00:02:56.346 and algorithms and practices, 00:02:56.346 --> 00:02:58.950 protocols and paradigms in programming. 00:02:58.950 --> 00:03:03.326 And we as a community, we've made computers smaller and smaller. 00:03:03.326 --> 00:03:07.609 We've built layers and layers of abstraction on top of each other 00:03:07.609 --> 00:03:09.274 between the man and the machine 00:03:09.274 --> 00:03:12.516 to the point that we no longer have any idea how computers work 00:03:12.516 --> 00:03:14.376 or how to talk to them. 00:03:14.946 --> 00:03:17.483 And we do teach our kids how the human body works, 00:03:17.483 --> 00:03:20.856 we teach them how the combustion engine functions 00:03:20.856 --> 00:03:24.146 and we even tell them that if you want to really be an astronaut 00:03:24.146 --> 00:03:25.565 you can become one. 00:03:25.565 --> 00:03:27.352 But when the kid comes to us and asks, 00:03:27.352 --> 00:03:30.508 "So, what is a bubble sort algorithm?" 00:03:30.508 --> 00:03:34.560 Or, "How does the computer know what happens when I press 'play,' 00:03:34.560 --> 00:03:36.864 how does it know which video to show?" 00:03:36.864 --> 00:03:38.848 Or, "Linda, is Internet a place?" 00:03:39.434 --> 00:03:42.010 We adults, we grow oddly silent. 00:03:42.869 --> 00:03:45.390 "It's magic," some of us say. 00:03:45.390 --> 00:03:48.600 'It's too complicated," the others say. 00:03:48.961 --> 00:03:50.518 Well, it's neither. 00:03:50.568 --> 00:03:53.210 It's not magic and it's not complicated. 00:03:53.210 --> 00:03:56.756 It all just happened really, really, really fast. 00:03:56.756 --> 00:03:59.878 Computer scientists built these amazing, beautiful machines, 00:03:59.878 --> 00:04:02.454 but they made them very, very foreign to us, 00:04:02.454 --> 00:04:04.810 and also the language we speak to the computers 00:04:04.810 --> 00:04:07.664 so that we don't know how to speak to the computers anymore 00:04:07.664 --> 00:04:09.744 without our fancy user interfaces. 00:04:09.744 --> 00:04:11.511 And that's why no one recognized 00:04:11.511 --> 00:04:14.460 that when I was conjugating French irregular verbs, 00:04:14.460 --> 00:04:17.434 I was actually practicing my pattern recognition skills. 00:04:17.434 --> 00:04:20.050 And when I was excited about knitting, 00:04:20.050 --> 00:04:23.444 I actually was following a sequence of symbolic commands 00:04:23.444 --> 00:04:25.487 that included loops inside of them. 00:04:25.487 --> 00:04:27.764 And that Bertrand Russell's lifelong quest 00:04:27.764 --> 00:04:31.646 to find an exact language between English and mathematics 00:04:31.646 --> 00:04:34.617 found its home inside of a computer. 00:04:34.617 --> 00:04:36.790 I was a programmer, but no one knew it. 00:04:39.286 --> 00:04:43.646 The kids of today, they tap, swipe and pinch their way through the world. 00:04:43.667 --> 00:04:46.626 But unless we give them tools to build with computers, 00:04:46.626 --> 00:04:50.332 we are raising only consumers instead of creators. 00:04:50.601 --> 00:04:54.426 And I believe that, if JavaScript is the new lingua franca, 00:04:54.458 --> 00:04:58.858 instead of grammar lessons, we should be teaching poetry classes. 00:04:59.303 --> 00:05:02.558 This whole quest led me to this little girl. 00:05:02.583 --> 00:05:04.825 Her name is Ruby, she is six years old. 00:05:04.850 --> 00:05:08.637 She is completely fearless, imaginative and a little bit bossy. 00:05:08.847 --> 00:05:11.095 And every time I would run into a problem 00:05:11.120 --> 00:05:13.376 in trying to teach myself programming like, 00:05:13.400 --> 00:05:17.376 "What is object-oriented design or what is garbage collection?", 00:05:17.400 --> 00:05:21.816 I would try to imagine how a six-year-old little girl would explain the problem. 00:05:21.840 --> 00:05:24.496 And I wrote a book about her and I illustrated it 00:05:24.520 --> 00:05:26.896 and the things Ruby taught me go like this. 00:05:26.920 --> 00:05:29.376 Ruby taught me that you're not supposed to be afraid 00:05:29.400 --> 00:05:31.062 of the bugs under your bed. 00:05:32.000 --> 00:05:34.056 And even the biggest of the problems 00:05:34.080 --> 00:05:37.576 are a group of tiny problems stuck together. 00:05:37.600 --> 00:05:40.336 And Ruby also introduced me to her friends, 00:05:41.260 --> 00:05:45.109 the colorful side of the Internet culture. 00:05:45.280 --> 00:05:47.136 She has friends like the Snow Leopard, 00:05:47.160 --> 00:05:50.096 who is beautiful but doesn't want to play with the other kids. 00:05:50.120 --> 00:05:54.736 And she has friends like the green robots that are really friendly but super messy. 00:05:54.760 --> 00:05:56.936 And she has friends like Linux the penguin 00:05:56.960 --> 00:06:00.616 who's really ruthlessly efficient, but somewhat hard to understand. 00:06:00.640 --> 00:06:02.880 And idealistic foxes, and so on. 00:06:04.180 --> 00:06:07.836 In Ruby's world, you learn technology through play. 00:06:08.360 --> 00:06:11.576 And, for instance, computers are really good at repeating stuff, 00:06:11.600 --> 00:06:14.496 so the way Ruby would teach loops goes like this. 00:06:14.520 --> 00:06:17.896 This is Ruby's favorite dance move, it goes, "Clap, clap, stomp, stomp 00:06:17.920 --> 00:06:19.416 clap, clap and jump." 00:06:20.840 --> 00:06:24.856 And you learn counter loops by repeating that four times. 00:06:24.880 --> 00:06:27.696 And you learn while loops by repeating that sequence 00:06:27.720 --> 00:06:29.496 while I'm standing on one leg. 00:06:29.520 --> 00:06:32.816 And you learn until loops by repeating that sequence 00:06:32.840 --> 00:06:34.896 until mom gets really mad. 00:06:34.920 --> 00:06:35.936 (Laughter) 00:06:36.078 --> 00:06:40.045 You learn decomposition skills by problem solving flow charts 00:06:40.075 --> 00:06:43.275 and seeing what went wrong in Ruby's friends' practicalities. 00:06:43.823 --> 00:06:47.934 You learn that algorithms are much like cupcake recipes. 00:06:47.975 --> 00:06:51.695 And most of all, you learn that there are no ready answers. 00:06:52.720 --> 00:06:55.456 When coming up with the curriculum for Ruby's world, 00:06:55.480 --> 00:06:58.776 I needed to really ask the kids how they see the world 00:06:58.800 --> 00:07:00.816 and what kind of questions they have 00:07:00.840 --> 00:07:02.920 and I would organize play testing sessions. 00:07:05.292 --> 00:07:08.958 I have three little stories for you from those play testing sessions. 00:07:09.460 --> 00:07:12.020 I would start by showing the kids these four pictures. 00:07:12.580 --> 00:07:14.916 I would show them a picture of a car, 00:07:14.940 --> 00:07:17.356 a grocery store, a dog and a toilet. 00:07:17.380 --> 00:07:20.620 And I would ask, "Which one of these do you think is a computer?" 00:07:21.580 --> 00:07:24.316 And the kids would be very conservative and go, 00:07:24.340 --> 00:07:26.116 "None of these is a computer. 00:07:26.140 --> 00:07:27.796 I know what a computer is: 00:07:27.820 --> 00:07:29.156 it's that glowing box 00:07:29.180 --> 00:07:32.796 in front of which mom or dad spends way too much time." 00:07:33.327 --> 00:07:34.823 But then we would talk 00:07:34.940 --> 00:07:37.756 and we would discover that actually, a car is a computer, 00:07:37.780 --> 00:07:40.156 it has a navigation system inside of it. 00:07:40.180 --> 00:07:42.956 And a dog - a dog might not be a computer, 00:07:42.980 --> 00:07:44.196 but it has a collar 00:07:44.220 --> 00:07:46.836 and the collar might have a computer inside of it. 00:07:46.860 --> 00:07:50.316 And grocery stores, they have so many different kinds of computers, 00:07:50.340 --> 00:07:53.756 like the cashier system and the burglar alarms. 00:07:53.780 --> 00:07:55.116 And kids, you know what? 00:07:55.140 --> 00:07:57.676 In Japan, toilets are computers 00:07:57.700 --> 00:07:59.596 and there's even hackers who hack them. 00:07:59.620 --> 00:08:01.396 (Laughter) 00:08:01.820 --> 00:08:03.036 And we go further 00:08:03.060 --> 00:08:06.276 and I give them these little stickers with an on/off button on them. 00:08:06.300 --> 00:08:09.916 And I tell the kids, "Today you have this magic ability 00:08:09.940 --> 00:08:13.556 to make anything in this room into a computer." 00:08:13.580 --> 00:08:14.916 And again, the kids go, 00:08:14.940 --> 00:08:17.836 "Sounds really hard, I don't know the right answer for this." 00:08:17.860 --> 00:08:19.436 But I tell them, "Don't worry, 00:08:19.460 --> 00:08:22.036 your parents don't know the right answer, either. 00:08:22.060 --> 00:08:24.276 They've just started to hear about this thing 00:08:24.300 --> 00:08:26.516 called The Internet of Things. 00:08:26.540 --> 00:08:28.516 But you kids, you are going to be the ones 00:08:28.540 --> 00:08:32.916 who are really going to live up in a world where everything is a computer." 00:08:32.942 --> 00:08:37.323 Your washing machine, toothbrush, even your milk bottle. 00:08:37.332 --> 00:08:41.054 And that you're the last generation that will remember the computer 00:08:41.078 --> 00:08:42.212 as a glowing box. 00:08:42.940 --> 00:08:45.156 And then I had this little girl who came to me 00:08:45.180 --> 00:08:46.476 and took a bicycle lamp 00:08:46.500 --> 00:08:50.716 and she said, "This bicycle lamp, if it were a computer, 00:08:50.740 --> 00:08:52.756 it would change colors." 00:08:52.780 --> 00:08:55.796 And I said, "That's a really good idea, what else could it do?" 00:08:55.820 --> 00:08:57.556 And she thinks and she thinks, 00:08:57.580 --> 00:09:01.596 and she goes, "If this bicycle lamp were a computer, 00:09:01.620 --> 00:09:04.356 we could go on a biking trip with my father 00:09:04.380 --> 00:09:05.996 and we would sleep in a tent 00:09:06.020 --> 00:09:09.860 and this biking lamp could also be a movie projector." 00:09:11.256 --> 00:09:13.335 And that's the moment I'm looking for, 00:09:14.221 --> 00:09:17.371 not the moment when the kid writes the prefect Ruby array, 00:09:17.500 --> 00:09:19.076 the moment when the kid realizes 00:09:19.100 --> 00:09:21.476 that the world is definitely not ready yet, 00:09:21.500 --> 00:09:24.476 that a really awesome way of making the world more ready 00:09:24.500 --> 00:09:26.716 is by building technology 00:09:26.740 --> 00:09:29.500 and that each one of us can be a part of that change. 00:09:30.300 --> 00:09:33.059 Final story, we also built a computer, 00:09:33.084 --> 00:09:35.951 the glowing box, the archaic glowing box. 00:09:35.980 --> 00:09:40.716 And we got to know the bossy CPU and the helpful RAM and ROM 00:09:40.740 --> 00:09:42.156 that help it remember things. 00:09:42.180 --> 00:09:45.116 And after we've assembled our computer together, 00:09:45.140 --> 00:09:47.796 we also design an application for it. 00:09:47.820 --> 00:09:49.835 And my favorite story is this little boy, 00:09:49.859 --> 00:09:51.116 he's six years old 00:09:51.140 --> 00:09:54.259 and his favorite thing in the world is to be an astronaut. 00:09:54.820 --> 00:09:57.076 And the boy, he has these huge headphones on 00:09:57.100 --> 00:10:00.356 and he's completely immersed in his tiny paper computer 00:10:00.380 --> 00:10:02.396 because you see, he's built his own 00:10:02.420 --> 00:10:06.716 intergalactic planetary navigation application. 00:10:06.740 --> 00:10:09.876 And his father, the lone astronaut in the Martian orbit, 00:10:09.900 --> 00:10:11.756 is on the other side of the room 00:10:11.780 --> 00:10:13.396 and the boy's important mission 00:10:13.420 --> 00:10:16.340 is to bring the father safely back to earth. 00:10:17.460 --> 00:10:20.916 And these kids are going to have a profoundly different view of the world 00:10:20.940 --> 00:10:23.340 and the way we build it with technology. 00:10:24.540 --> 00:10:28.396 Finally, the more approachable, the more inclusive, 00:10:28.420 --> 00:10:31.796 and the more diverse we make the world of technology, 00:10:31.820 --> 00:10:35.796 the more colorful and better the world will look like. 00:10:36.927 --> 00:10:39.997 Because disruption doesn't start with technology. 00:10:40.125 --> 00:10:43.258 Disruption starts with the people with a vision. 00:10:43.974 --> 00:10:46.958 And computer science, and programming and technology 00:10:46.982 --> 00:10:50.249 the very DNA of all of these things is humanity. 00:10:50.442 --> 00:10:53.077 Computers, after all, they used to be humans 00:10:53.826 --> 00:10:57.110 who were really, really good at calculating things. 00:10:57.490 --> 00:11:00.307 And still today, programmers don't write the code 00:11:00.344 --> 00:11:02.344 only for the machine to execute. 00:11:02.458 --> 00:11:06.688 They write the code for other programmers to read and build upon. 00:11:06.820 --> 00:11:09.396 So, imagine with me, for a moment, 00:11:09.420 --> 00:11:11.996 a world where the stories we tell 00:11:12.020 --> 00:11:15.036 about how things get made don't only include 00:11:15.060 --> 00:11:17.476 the twentysomething-year-old Silicon Valley boys, 00:11:17.500 --> 00:11:21.900 but also Kenyan schoolgirls and Norwegian librarians. 00:11:22.700 --> 00:11:26.916 Imagine a world where the little Ada Lovelaces of tomorrow, 00:11:26.940 --> 00:11:30.156 who live in a permanent reality of 1s and 0s, 00:11:30.180 --> 00:11:34.796 they grow up to be very optimistic and brave about technology. 00:11:34.820 --> 00:11:38.196 They embrace the powers and the opportunities 00:11:38.220 --> 00:11:39.820 and the limitations of the world. 00:11:40.980 --> 00:11:45.116 A world of technology that is wonderful, whimsical 00:11:45.140 --> 00:11:46.780 and a tiny bit weird. 00:11:48.420 --> 00:11:49.916 When I was a girl, 00:11:49.940 --> 00:11:51.956 I wanted to be a storyteller. 00:11:51.980 --> 00:11:53.556 I loved make-believe worlds 00:11:53.580 --> 00:11:55.196 and my favorite thing to do 00:11:55.220 --> 00:11:59.276 was to wake up in the mornings in Moominvalley. 00:11:59.300 --> 00:12:02.420 In the afternoons, I would roam around the Tatooines. 00:12:02.620 --> 00:12:05.500 And in the evenings, I would go to sleep in Narnia. 00:12:06.700 --> 00:12:09.900 And programming turned out to be the perfect profession for me. 00:12:11.020 --> 00:12:12.956 I still create worlds. 00:12:12.980 --> 00:12:15.940 Instead of stories, I do them with code. 00:12:16.940 --> 00:12:19.996 Programming gives me this amazing power 00:12:20.020 --> 00:12:22.396 to build my whole little universe 00:12:22.420 --> 00:12:26.380 with its own rules and paradigms and practices. 00:12:27.420 --> 00:12:31.380 Create something out of nothing with the pure power of logic. 00:12:32.819 --> 00:12:35.086 And that probably makes me a poet. 00:12:35.981 --> 00:12:37.197 Thank you. 00:12:37.222 --> 00:12:39.662 (Applause)