"Namespaces are features often found within object oriented languages, such as C++, Ruby, and recently, PHP. A namespace allows libraries to use similar naming conventions without collision. The namespace often applies and implies a context for its identifiers."
Now I don't know how big this book is, but I don't think you can cram that much information in a children's programming introduction.
I also don't see at all how it is relevant to explain this much information about namespaces and their historic context. The amount of jargon you need to be familiar with to understand this paragraph is rather large and I know plenty undergraduates who'd have difficulty with understand this, even if they've used namespaces before..
Is this information for the parent or for the child?
(please don't see this as a middlebrow dismissal, I think it's a great idea to write programming books for young children and the cover of this one looks great, I am just genuinely surprised at this page being in there)
In fact to further prove your point, the boolean page made reference to the history of the name, which even I was unaware of after 25 years of programming.
It's a great pity about the content of this book as it's actually a really good idea. But with the content as in depth as it is, I couldn't even justify buying it as to read to my kid as a novelty item.
> Named after George Boole, boolean is the most primitive data type, allowing for one of two values - true or false. Boolean operators are intended to represent truth values. Many languages contain a strict boolean data type, however, several languages, such as C and Lisp represent boolean values as the integers of 0 (false) and 1 (true). In most languages 1 and 0 are interchangeable for true and false.
I suspect the average lay adult pulled off the street would have a hard time understanding this, let alone a child.
* (if 0 "truthy" "falsey")
"truthy"This is exactly what computer science is not about. I feel like I'm an astronomer looking for a great children's book to introduce my child to the wonders of the universe; but instead I get a book that goes over all the different parts and kinds of telescopes.
BTW, Telescopes are cool, a miracle of optics.
Page 1: K is for key. Like your fingerprint, everyone is unique
Page 2: Though programming languages use ...
The first page is for the kid, the second for the parent. I kinda like it actually.
For example, how would you create a simple memory allocator? How would you multiplex a single timer interrupt to perform all necessary OS services? How would you create a process scheduler? How would you implement a syscall handoff from your running process to the OS and get the result back? How would you implement something like inotify/kqueue? I play this game with every bit of technology I touch.
The fun begins when you come across something where you are way off base. You think you have a great idea for how to do it, and then you see an implementation that is much more clever and usually simpler than yours. That is when I think you grow the most as an engineer: after you can truly appreciate the genius of the accepted solution.
A nice idea though.
I reckon I can think of better examples for each of the terms than he/she's come up with there. The two we have are:
"A is for Array: a place to store your toys." - then there's a picture of a box with lots of DIFFERENT toys in. Shouldn't they all be toys of the same type? It should be obvious that an array means "more than one of the same thing".
"W is for While: While there is food on your plate, you will sit there" - doesn't really describe what WHILE does? The operation should be related to the condition. For example, maybe it should be, "While there is food on your plate, you will keep eating."
Not to be too picky over a book for 3 year olds, of course. :)
Not any more "the same thing" than all being toys. C, C++, Java, Ruby, Javascript, PHP all let you stuff references to objects that are entirely different into arrays some way or other, and I'd be quire confident in claiming that the same is true for most languages in common use.
> "W is for While: While there is food on your plate, you will sit there" - doesn't really describe what WHILE does?
It describes exactly what WHILE does. Whether or not there is an operation that changes the condition within the loop is an entirely separate concern from the while construct. Anyone with a child will have experienced situations where the child most definitively will not keep eating, and what changes the condition is that a parent as an outside actor finally takes the food away, for example.
toybox = []string{"car", "dinosaur", "robot", "action man"}
Though the real problem is that you're an adult trying to rationalize an analogy designed for kids - which is never going to work.There's not usually much POINT, but you can do it..
http://www.amazon.com/gp/customer-media/product-gallery/1489... is what I was hoping was on the front page, a picture from inside the book, to help explain what the book is. From the "Look inside" link on Amazon, I feel like the author touches on concepts, but doesn't really explain them, but then goes into implementation details in various languages.
Everybody's right about it being too high level, too far over the heads, etc. But it just looks fun, I sure am going to enjoy reading it to her, and to me, fun and enjoying yourself is what should animate a lifelong love of programming.
* Where does it say the book is for 3 year olds? Several people are commenting as though that is the intended audience. Am I just missing where the author says, "This is for your 3yo"? I don't see it. I think it's just ignorantly assuming that, because it's an "ABC" book that the paradigm is locked into 3yos.
* Brandon - you may want to go ahead and lock in the suggested age range for the book so that searchers can find your book easier. Naming the book "A is for..." is going to limit you with any parent of a child above 5 - by telling Amazon (and the viewers) the suggested age range, you remove a bias/filter that those parents would have about such a book.
These are hardly "Youtube-quality comments". Clearly you've not been on youtube for a bit.
I looked at my own "A is for Actuary" comment, and even that looks a little mean now. I meant it in a humorous way, personally I like the fact that he had the courage and creativity to write/draw a book for his kids that is relevant to his world, and the world of others.
I think most of us can see things we would have done differently - just as I think most of us can see things that we do like about the book as well. But arguing about the intricacies of an analogy that is aimed at children strikes me as unfair.
Which was the point the former poster was making. We're not saying that you're not allowed to have an opinion nor a right to express it. Just that some of the perceived negativity (and I say that because your comment - intentional or not - does read negatively) comes across as pointless nitpicking.
While we wait for him to add the pictures, we can dig them out ourselves from amazon: http://www.amazon.com/gp/reader/1489522212/ref=sib_dp_ptu#re...
Use the "Surprise me"-link to get to a page inside the book.