- Age Range: 10 and up
- Grade Level: 5 - 8
- Paperback: 352 pages
- Publisher: No Starch Press; 1 edition (December 18, 2014)
- Language: English
- ISBN-10: 1593275668
- ISBN-13: 978-1593275662
- Product Dimensions: 1 x 7 x 9 inches
- Shipping Weight: 1.4 pounds (View shipping rates and policies)
- Average Customer Review: 4.3 out of 5 stars See all reviews (10 customer reviews)
- Amazon Best Sellers Rank: #88,137 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Other Sellers on Amazon
+ $3.99 shipping
+ Free Shipping
Ruby Wizardry: An Introduction to Programming for Kids Paperback – December 18, 2014
|New from||Used from|
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
From the Publisher
"Give a child a way to bring their imagination to life, and amazing things will happen."
—Steve Klabnik, from the Foreword
A Note from the Author
Learning to program sounded boring to me when I was younger. I thought programming and computers were all about math and logic—that there was no room to be creative or do anything interesting.
Then something very strange happened: I decided to give programming a try. I discovered that this thing I thought would be terribly dry and boring was exactly the opposite—it was challenging and fun. Suddenly, I was calling the shots! If I told the computer to make a puzzle game, it made a puzzle game. If I told it to make a website, it made a website.
It made real things in the world that I could see, play with, and use. It was as if all the stories I had been writing for years could now come to life, and all it took was this little box and a language I could use to talk to it.
If you’ve never programmed anything in your life, give it a try. You might find yourself pleasantly surprised, like I was. I hope you find "Ruby Wizardry" a useful first step on your very own programming adventure.
About the Author
Eric Weinstein has helped millions of people learn to program through Codecademy, where he designed and authored the Ruby curriculum. He has also taught creative writing to undergraduates and veterans at NYU, where he was a Veterans Writing Workshop Fellow. He writes Ruby for a living in New York City.
If you are a seller for this product, would you like to suggest updates through seller support?
Top Customer Reviews
Big fan of Eric's other work so maybe I am missing something. Maybe buy this book and judge for yourself.
With "Ruby Wizardry", Eric takes his coding skills and puts them into the sphere of helping kids get excited about coding, and in particular, excited about coding in Ruby. Of all the languages my daughter and I are covering, Ruby is the one I’ve had the most familiarity with, as well as the most extended interaction, so I was excited to get into this book and see how it would measure up, both as a primer for kids and for adults. So how does Ruby Wizardry do on that front?
As you might guess from the title and the cover, this book is aimed squarely at kids, and it covers the topics by telling a story of two children in a magical land dealing with a King and a Court that is not entirely what it seems, and next to nothing seems to work. To remedy this, the children of the story have to learn some magic to help make the kingdom work properly. What Magic, you ask? Why the Ruby kind, of course :).
Chapter 1 basically sets the stage and reminds us why we bought this book in the first place. It introduces us to the language by showing us how to get it ("all adults on deck!”), how to install it, make sure it’s running and write our first "Hello World” program. It also introduces us to irb, our command interpreter, and sets the stage for further creative bouts of genius.
Chapter 2 looks at "The King's Strings" and handles, well, strings. Strings have methods, which allow us to append words like length and reverse written with dots ("string".length or 'string'.reverse). Variables are also covered, and show that the syntax that works on raw strings also works on assigned variables as well.
Chapter 3 is all about Pipe Dreams, or put more typically, flow control, with a healthy dose of booleans, string interpolation, and the use of structures like if, elseif, else and unless to make our ruby scripts act one way or another based on values in variables and how those values relate to other things (such as being equal, not equal, done along with other things or in spite of other things, etc.).
Chapter 4 introduces us to a monorail, which is a train that ravels in an endless loop. Likewise, the chapter is about looping constructs and how we can construct loops (using while as long as something is true and until up to the point something becomes false, along with for to iterate over things like arrays) to do important processes and repeat them as many times as we want, or need. Also, it warns us to not write our code in such a way to make an infinite loop, one that will just keep running, like our monorail if it never stops.
Chapter 5 introduces us to the hash, which is a list with two attributes, a key and a value, as well as the ability to add items to arrays with shift, unshift, push or pop. additionally we also learned how to play with range methods and other methods that give us insights as to how elements in both arrays and hashes can be accessed and displayed.
Chapter 6 goes into talking about symbols (which is just another word for name), and the notation needed to access symbols. Generally, the content of something is a string; the name of something is a symbol. Utilizing methods allows us to change values, convert symbols to strings, and other options that allow us to manipulate data and variables.
Chapter 7 goes into how to define and create our own methods, including the use of splat (*) parameters, that allows us to use any number of arguments. We can also define methods that take blocks by using "yield".
Chapter 8 extends us into objects, and how we can create them and use them. We also learn about object IDs to tell them apart, as well as classes, which allow us to make objects with similar attributes. We also see how we can have variables with different levels of focus (Local, Global, Instance and Class) and how we can tell each apart (variable, $variable, @variable and @@variable, respectively).
Chapter 9 focuses on inheritance, which is how ruby classes can share information with each other. this inheritance option allows us to create subclasses and child classes, and inherit attributes from parent/superclasses.
Chapter 10 shows us a horse of a different color, or in this case, modules, which are a bit like classes, but they can't be created using the new method. Modules are somewhat like storage containers so that we can organize code if methods, objects or classes won't do what we want to do. By using include or extend, we can add the module to existing instances or classes.
Chapter 11 shows us that sometimes the second time's the charm, or more specifically, we start getting the hang of Refactoring. Using or operators to assign variables, using ternary operators for short actions, using case statements instead of multiple if/elseif/else statements, returning boolean variables, and most important, the removal of duplicate code and making methods small and manageable.
Chapter 12 shows us the nitty-gritty of dealing with files. Opening reading from, writing to, closing and deleting files are all critical if we want to actually save the work we do and the changes we make.
Chapter 13 encourages us to follow the WEBrick Road, or how we can use Ruby to read and write data from the Internet to files or back to Internet servers using the open-uri gem, which is a set of files that we can use to make writing programs easier (and there are lots of ruby gems out there :) ).
Chapter 14 gives some hints as to where you, dear reader, might want to go next. This section includes a list of books, online tutorials, and podcasts, including one of my favorite, the Ruby Rogues Podcast. It also includes interactive resources such as Codecademy, Code School, and Ruby Koans, and a quick list of additional topics.
The book ends with two appendices that talk about how to install Ruby on a mac or a Linux workstation and some of the issues you might encounter in the process.
For a "kids book", there's a lot of meat in here, and to get through all of the examples, you'll need to take some time and see how everything fits together. The story is engaging and provides the context needed for the examples to make sense, and each section provides a review so that you can really see if you get the ideas. While aimed for kids, adults would be well suited to follow along as well. Who knows, some wizarding kids might teach you a thing or three about Ruby, and frankly, that's not a bad deal at all!
The book features two kids, Scarlet and Ruben, who help the King with various problems by using the various computers (or computer-like devices) all around his kingdom. No matter what the issue, Scarlet and Ruben show the King how he can use Ruby to overcome the obstacles in his way! The story is broken up by examples of programs that demonstrate the concepts introduced in the story; readers are encouraged to program alongside the characters, which is a very engaging way to reinforce all of the material. Some of the characters are more knowledgeable than others, but what is really great about this book is that no one character knows everything – everyone in the book learns at least one thing. It’s a very disarming way to get readers to identify with the characters.
Ruby itself is a powerful language – yet it is very simple to program in. Processes that take multiple lines of code in other languages are far simpler on Ruby, making it a more natural way to learn programming logic. Through the reading of Ruby Wizardry, readers will learn all about various simple aspects of programming, such as variables, symbols, arrays and strings. Once finished reading the book, readers will also be able to organize code with methods and classes, and will be able to express their ideas in Ruby, whether as single lines of code, or as scripts.
The writing in Ruby Wizardry is not very complicated, and is very easy for children to read. While the intended age of the book is for kids 10 and up, my daughter (who is 8) could follow along with the story and began to really enjoy learning some of the concepts that were being taught. More importantly, the writing was easy enough for her to understand enough to ask questions about things that were a little beyond her grasp. I can tell you that she enjoyed the fact that the female characters in the book knew a bit more than their male counterparts. The kiddo also enjoyed the programming examples, and after a few demonstrations wanted to try her hand at running the programs herself. While she didn’t always get it right, the book’s informal and unassuming style doesn’t feel oppressive when mistakes are made. When she erred, she was quick to check the book and get back to her programming. Aside from these small programming demonstrations, there are also larger projects in the book.
It’s not hard to see that some kids reading this title will become enchanted while others will become frustrated – though, I suspect the stymied crowd probably didn’t ever really want to program in the first place. Weinstein does a great job with repetition with concepts, and on top of repeating them, he teaches slightly different ways to do things. Not all of these methods will jive with each reader, but chances are good that one of the many ways in which he is teaching will strike a chord. A word of warning: this book teaches a lot of concepts – not necessarily a bad thing, but important to note nonetheless. The PDF of the book that was sent to us to review sits at around 327 pages, and features an introductory chapter on how to install Ruby on your computer, as well as a final section that recommends further resources to reinforce the concepts, and learn new aspects of Ruby!
If you’re looking to get your kiddo into programming (or if you’re looking to learn a new programming language), then Ruby Wizardry is for you. Keep in mind that kids younger than 10 will need a little more guidance on the subject – but judging by my daughter's reaction, that might not really be an issue. Eric Weinstein has done a great job creating a learning resource that is both informative and fun, making the act of learning how to program the furthest thing possible from being a chore.
It starts with these two kids who help the King find his string necklace, which is where you learn about strings. Then a pipe in his castle bursts. Then you use a train to go to a breakfast restaurant and the train is stuck in a loop. Every single time they encounter a problem, which they then solve with use of Ruby. It’s a really interesting way to learn, because it keeps you -especially kids- involved in the story. And at the end of every chapter, they revise what you’ve learned so far.
This is a really kid-friendly way of learning, and it’s a thorough guide as well! I truly learned a lot while going through this. It also gives you links if you need to download something and helps you start up Ruby. If you ever want to teach your kids how to program, I feel like this would be the perfect way!
Most Recent Customer Reviews