A list of resources which developers found helpful to learn programming languages, methods, or tips and tricks as they apply to programming for Rhino.
There are a bunch of fantastic resources avalible for learning RhinoScript. Most of them are located on the RhinoScript Wiki page.
To write plug-ins for Rhino using the standard SDK, you first need to learn the C++ programing language itself.
Sam says: This is a fantastic intro to C++ book for people with little or no programming experience. Although this book looks intimidating (1224 pages), it has a nice slow pace for beginners so you don't start feeling lost. The author has a friendly writing style, and the projects in the book progress at a pace slow enough so it is understandable, but not so slow that it is boring (for a beginner).
The Rhino SDK is heavily based on MFC (Microsoft Foundation Class), a set of Microsoft libraries included with the Standard and Professional versions of Visual Studio which handle things like creating windows and writing files to disk. (It is not included in the Express edition.) An understanding of MFC will make understanding Rhino plug-ins a much simpler task.
Sam says: I started with a book geared to a more experienced audience and quickly got discouraged thinking that I would never understand MFC. Introduction to MFC Programming with Visual C++ is exactly what it says, an introduction. It won't teach you everything, but if you are just starting out with MFC and have a decent understanding of C++ (I am doing fine so far with this book only having read C++ Primer Plus) it is a great first step into MFC. The book starts you out writing simple console applications (which, if you start with something like the Prata book, will be very familiar to you by this point) and starts adding small portions of MFC bit by bit so you don't get overwhelmed. One note about this book: in the very first example program it has you try to use cout with a CString, which cout does not understand. So instead of seeing your string output, you only see its memory address, which is not a great way to start the book off. But beyond that it has been good.
by Jeff Prosise
Sam says: This is the book I tried to start with learning MFC, and I quickly got lost with it. I personally don't think this a book for absolute beginners, but rather people who are very familiar with programming for Windows (using the Windows API) but need to learn MFC. Having forced my way through part of it before setting it aside and starting with the MFC intro book, I can see that it would be a valuable resource down the line as I learn more. This book covers what I would consider some of the more complex aspects of MFC such as versioning and threading. My only (silly) gripe with this book is that for my copy at least, the binding is terrible. The book is now in about 10 different pieces (although binding a 1376 page hardcover can't be easy).
If you wish to write plug-ins for the Rhino.NET SDK, you will need to understand a .NET compatible programming language like VB.NET or C#.
by James D. Foley
Dale Fugier says: Another book worth having…
by Les A. Piegl, Wayne Tiller
by David F. Rogers
Jonathan Chertok says: My experience was that the Piegl/Tiller book was oriented towards mathematicians and quite technical. The Rogers book had some moderately interesting historical info which I had run across previously, and some technical but not very well laid out mathematics.
The following diagram, posted on the plug-ins newsgroup by Rajaa Issa, gives a overview of B-rep objects in the context of openNURBS.