Author: Majed Marji
Publisher: No Starch Press
Audience: Anyone who wants to learn programming as well as about Scratch
Reviewer: Lucy Black
Scratch is such an easy language to learn, surely you can't really need a book?
Yes you can. Scratch does a great job of making programming seem obvious, but this really only lowers the cost of getting started - which is a very good thing. At some point you are going to have to confront the ideas that are inherent in programming and this is quite a sophisticated task. If you have a teacher who already has access to the ideas, and this is quite different from "being able to program", then they can guide the beginner. But what if you are on your own or if, as is all too likely, your teacher confuses "being able to do" with "understanding"? This is where this book comes in.
Don't bother with this book if you are lazy and don't want to learn. It gives a lot, but it also demands a lot. If you stick with it I think that by the end you will be a fairly expert programmer and up to most tasks and, more importantly, ready to move on to a text-based language.
The book's subtitle is also indicative of what to expect - A Visual Introduction to Programming with Games, Art, Science, and Math. Notice the use of the "Math" at the end, which will probably turn some potential readers off big time, and is an indication that this isn't a book that is simply trying to reach the biggest possible market. The cover illustration of a chemistry lab is also designed to appeal to wanabee geeks. You get the message, if you are not wanting to be one of us....
In truth most of the examples are game oriented but this is reasonable given the nature of Scratch.
About the only problem a reader might have with this book is looking at the first chapter and thinking that the rest of the book is at the same low level. Chapter 1 introduces the basics of Scratch and, while it does it well, if you already know this move on to a later chapter. Chapters 2 and 3 continue the basic introduction to Scratch with a look at graphics and sound. This covers what most casual Scratch users find out by experimenting, but it presents it in a much more logical way. Even if you have been using Scratch it is worth skim reading to make sure you get the ideas straight.
Chapter 4 is where the book starts to move into territories that might be unfamiliar - procedures. Here you start to learn the basics of programming theory as well as practice. Don't let the term theory put you off as Majed Marji explains everything in terms of what benefits they have for practice.
Chapter 5 continues with a look at variables - another fundamental programming idea. Chapters 6 and 7 introduce the idea of flow of control with a look at decisions and loops.
The final two chapters round out the whole picture with a look at the two essential Scratch data structures - strings and lists.
The book is well illustrated in color and it shouldn't be difficult to follow the examples with a Scratch screen open in front of you. The examples vary from games to physics and math. For example, you get to create a demo of Ohm's law connecting resistors in series and a very nice sphere visualization - the effort to create this is low and the reward is high.
Be warned there are words in this book - lots of them - and the occasional light hearted joke. The important point is that you have to be ready to read the explanations of what is going on and not just try the programs out for fun.
The book really does try to explain what you need to know about general programming in terms of this easy-to-use visual language. For example, you even get to learn about recursion, which is something that can make a fool out of even the most experienced programmer, and binary is introduced as a conversion demo program. You even get to learn some basic algorithms - linear search, bubble sort, finding the median and so on.
This is not a book for dummies, but I can recommend it to anyone wanting to use Scratch as a way to graduate to full programmer status and have a lot of fun on the way.
A Programmer's Guide to Scratch 2
Other Scratch Book Reviews
Scratch Programming In Easy Steps
Super Scratch Programming Adventure!