This is a good topic, and could hopefully lead to some good learning tools for Cocos2d.
I studied Fortran, Pascal and Assembly in school, but then spent the next 18 years writing only assembly for embedded systems, then another 4 with C for embedded systems. About a year ago I hired a programmer to write an app with me based on a spec, data and artwork I made. This was helpful in getting my feet wet, but didn't give me much practical experience for writing code.
So for the next app I decided I'd write it myself, as this is a hobby and I wanted to learn. I found Cocos2d while searching for graphics tools online. So I started with little to no experience programming beyond assembly code, which as I've found is like having no experience at all when it comes to writing code for apps.
Forums like this are filled with great people who are kind and enormously helpful, and I would be totally stuck without the help I've been given here. But the frustrating thing about some forums, help pages, examples, etc. are that they assume you know a lot more about writing code for apps.
Often people will ask a question, and many times the reply is "look at the example code" or "learn C". But the examples are only useful if you are at a particular level of programming. One of the main reasons I come to this forum almost every day is because people here generally don't do that, they actually take the time to help and explain, which is very refreshing.
So a book in paper form is something that wouldn't appeal to someone like me. But an electronic form something like "Illustrating C by Donald Alcock" is an example of something that I found very useful for C in embedded systems.
What I'd find useful, and would pay for, would be something that lists each class in Cocos2d and the syntax for using the functions in the class. I know people refer to the online documentation for Cocos2d, but I've found it confusing and no help to me.
An example of something I'd find extremely useful would be:
Creating a Sprite
CCSprite *yourspritename = [CCSprite spriteWithFile: @"yoursprite image file name"];
Where yourspritename is a name you decide to call your sprite
Where yoursprite image file name is the graphics file name for the image you want to use for your sprite. Typically a PNG or JPG file. This image file must be in your xcode project.
Next, in order to see your sprite on the screen, you will need to place the sprite on a layer, set it's position, and more.
There are optional settings for your sprite such as scale, opacity, and more, described further below.
Placing a sprite on the screen
[layer addChild:yourspritename];
Where layer is the layer you want the sprite to be shown on. Typically this can be "self" for the current layer, or can be another layer that you've defined.
Where yourspritename is a name you decided to call your sprite when you created it in "Creating a Sprite".
etc.