Getting started with openFrameworks

Hi all,

I’ve decided to start working with openFrameworks. I have no prior experience with C++ and I am thinking about approaching it the hard way.

Does it make sense to learn the basic and advanced concepts behind C++ (from this book) and than move to OF, or should I jump straight on using OF, learning from online resources?

What was your approach to learn OF?

If you have any programming experience at all, I think it makes more sense to just start with OF itself and use it’s resources (books, examples, forum) and when needed google / stackoverflow for learning. A book about C++ comes second.

Personally I came from Processing, so I had a fairly solid background (Processing is similar to OF, Java is similar to C++, both use OpenGL and GLSL). I started by running all the examples and reading all the OF-specific books: Programming Interactivity by Joshua Noble, the two books by Denis Perevalov and the community ofBook. Currently I am almost 500 pages into C++ Primer to gain more understanding about C++. I would say that reading a C++ book is not required to get started with OF, but having knowledge of C++ might make your code better in the long run.

As far as I know, the main problem with C++ books is that they are almost exclusively targeted at computer science types. They are boring, reference-style textbooks. In short, they are motivation-killers. At least for Java (and many other programming languages), there were some Head First books, which are kind of fun to read. I’m already struggling for months to read the C++ book I mentioned, it’s just totally boring. Also, a general C++ book will have less direct practical use in an OF context. However, in defence, reading a general C++ book does give a broader and deeper understanding of several relevant topics.

To conclude, I would say start as OF-specific as possible and use general C++ resources as a secondary source of learning. All of this under the assumption that you are aware of the basic language-agnostic principles of programming such as variables, loops, OOP etc.

1 Like

Thank you for your response.
I come from an intermediate Java/C# background. The books you suggested look exciting, I will start with those.

Exactly this.

That Bjarne’s book that you mentioned is boring as hell and not useful for creative projects at all. I don’t know what’s your background and which field you want to advance, but if it’s graphics or you just want to draw something cool on screen I would totally recommend The Nature of Code book by Daniel Shiffman and his video tutorials on the same subjects covered in the book as a starting point. Also, ofBook is definitely the right choice as well!

2 Likes

I am a newbee in the OF playground. I only tried Processing before.

In order to learn OF, I first bought Stroustrup’s book but only read half of it. It was not the best tool for me so I switched to the tutorial part at cplusplus.com it is a really well made and quite short introduction to C++ .
I then read the OFbook on github and went back to www.cplusplus.com when I cam accross obscure syntaxes. In the past, I had read Processing related content in “programming interactivity”. I recently skimmed through it again, but stopping on OF related passages.

If you already have a programming background, I think the ofbook is a great start. Running and tweaking the examples is really fun.
In restrospect, Stroustrup book was rather puzzling as it quiclky went into the deepness of C++. definitely not the best bet for the beginner I still am.

I also think that learning is always easier when you have a project in mind. In my case It helped me find helpful chunks of commented code on different forums. (stackoverflow, cplusplus, or here)

Hope this can help newcomers.

1 Like