Facebook software engineer Carlos Bueno doesn't want to teach every 9-year-old to write computer code. However, he thinks every child can learn the kind of thinking that programmers and computer scientists use every day.
That's what drove Bueno to write a children's book aimed at teaching some of the concepts of computer science -- without ever mentioning computers. "Lauren Ipsum" is a whimsical story about a little girl who gets lost in a forest and has a series of adventures in which she learns about problem-solving and other ways of thinking as she finds her way home.
Bueno initially self-published the book, selling it on Amazon and other sites and donating about 1,000 copies to teachers and children's groups. That led to him being honored last month by an Obama administration program, Champions of Change, for helping encourage women and minorities to enter tech fields. A San Francisco publisher, No Starch Press, is planning a new edition of "Lauren Ipsum" next year.
A self-taught programmer, Bueno learned to tinker as a boy by helping out in his father's TV repair shop. He spoke about his goals for the book in this interview, which was edited for length and clarity.
Q Why did you write this book?
A People tend to think that scientific progress is all about discovering new facts and raising the boundaries of human knowledge, but it's equally about discovering new ways to understand and explain things we already know. It's about turning the previously hard things into child's play. That's the other half of progress.
If you open a child's math book, you're going to see all these boring facts about zero and negative numbers and the square root of two. Every single one of those boring facts was once one of the weirdest, most difficult problems in the world.
When we as a society get serious about teaching this stuff to children, that's how we know that we actually nailed it and can move on to something more important.
Q What got you thinking about that?
A I have six nieces and nephews who were 9 years old (when he started the book). I thought about what I was doing when I was 9. And I thought if my dad can teach me how to fix a TV when I'm 10, how can I teach the next generation what I do when they're 10?
Q So what's the book about?
A It's about a little girl who is very impatient and gets herself into trouble, and the only way to get herself out of trouble is to think it through, and she learns you can solve problems on your own. If I say it's a children's novel about computer science, that's like a pink giraffe wearing a tutu. But it teaches the concepts of computer science in a way that's nonthreatening, through analogies and stories.
Q Should every child know how to code?
A There's a difference between computer science and programming. Computer science is thinking about how to do things. Programming is the art of explaining how to do things to a computer. You can't have one without the other, but there's an intersection between problem-solving in computer science and that bugbear of education, critical thinking.
People ask: "How do you teach problem-solving skills?" Well, what do you think programmers do all day? They solve problems. They figure out novel ways to fix things. That's what I'm trying to teach in the book.
Q Who is your target audience?
A Nine years old is a really good age because you can start to really understand some deep concepts, and you start to have good manual control, so you can do complicated things. Yet you're still a child, so you still have that boundless enthusiasm and imagination. So I think that's kind of the minimum age where they would get these ideas, or the minimum age of my ability to explain them.
Q What's more difficult -- writing code or writing children's literature?
A Well, on one hand you've got oversimplistic explanations, you've got expectations that are just way out of line, you've got a lot of immaturity to deal with -- and then there's children's books! (laughs). I don't know what's harder. Both are about pulling ideas apart and putting them back together. It's pretty much the same thing; I just used a different language.
Q As a person of Hispanic descent, is it important to you that more kids from minority backgrounds get into computer science?
A Sure. There are lots of reasons why the situation is the way it is -- socioeconomic issues, immigration policy, English-language education. I can't affect any of that. A kids' book is not going to fix immigration policy. But we have been working on a Spanish translation and it's nearly finished. Today if you don't understand English, you're not even going to get into the lobby (at some companies). So I'm working on getting the book translated and getting it out there in as many languages as we can.
Q Why do you feel so strongly about sharing these concepts?
A Software is eating the world; that's what (entrepreneur) Marc Andreessen said (in a famous essay). That means the stuff you're going to work with all day long is made of software. So you better learn how software works. That doesn't mean you need to become a professional programmer; it means you need to understand how the logic works, how this new science is changing the world. Otherwise, we're going to have people who can do it and people who can't.
Contact Brandon Bailey at 408-920-5022. Follow him at Twitter.com/BrandonBailey.
Job: Software engineer at Facebook, working on a team that tracks the efficiency of the website's vast computer network and looks for ways to improve server performance. Author of children's book "Lauren Ipsum."
Career: Worked as software engineer for several tech startups and at Yahoo before joining Facebook four years ago.
Education: Community college courses; taught himself to code
Family: Married; has a baby boy.
Five things about carlos bueno
1) As a boy in El Paso, Texas, he learned to fix video recorders and other electronic gear while helping out in his family's TV repair shop.
2) He worked briefly as a graphic designer before deciding that he should learn programming because computers were changing the industry.
3) His wife, Ytaelena Lopez, is a writer and artist who drew the illustrations for "Lauren Ipsum."
4) Bueno and Lopez initially raised money on Kickstarter to self-publish the first edition of their book.
5) He also blogs about debugging, data-sampling and other aspects of computer science at www.carlos.bueno.org.