I have been using Processing for over four years. FOUR! Weird, right? Seems impossible that it has been that long. But a quick check of the old Processing forums showed that I signed up in May of 2003.
Things have changed quite a bit since I first started with what was then called P5 (btw, folk, the ‘P5′ nick has been deprecated). If my memory serves, version 60 was the one I started with. Now it is up to version 134 and is so tantalizingly close to being a 1.0 release. There are dozens of user contributed libraries, tons of reference material, and a quickly growing user base.
In the four years of my Processing experience, the question I am asked much more frequently than any other is “how do I get started with Processing”. The answer is simple enough. Practice! Like with any other new language or methodology, the more you use it, the more comfortable you become with it and the more control you gain over it.
I wish I had a better answer. Seems dismissive to say ‘practice makes perfect’, but I really don’t know how else to explain my process. Generally speaking, I try to code something that is right outside of my comfort zone. Oddly enough, these self-made tutorials are how most of my projects get started. Wanting to learn about ArrayLists led to my experiments with particle emitters. Wanting to learn about texture mapping led to my first experiments with OpenGL. Wanting to learn about arcballs led to my first experiments with Quaternions. Actually, that last one is a lie. I HATE Quaternions! I REFUSE to learn Quaternions!!! But not as much as Quaternions refuse to be learned by me. Damn things are confusing!
With the Magnetosphere project, it might help to know that I have been working with that code (and getting a ton of help from co-workers and friends) for around three years. It started simply enough. I just wanted to make particles react to each other using the laws of magnetism to define their behaviors. But I stuck with the code. I returned to it every time I learned a new trick or found better ways to do old tricks. And so the code evolved.
When I think about how it looked when I started and how it looks now, I can’t believe how far its come. It just reaffirms the notion that practice does make perfect. Not that magnetosphere is perfect in any respect. I still see tons I want to do with it and there are plenty of tangents off magneto that are waiting to be explored.
So to answer the question of how to get started with a more concrete answer:
• Spend some time with the examples that come with Processing. If any of those examples intrigue you, figure out why they work. And then use them as a base for further study.
• Poke around in the forums. Many of your questions have already been answered. Search the forums for the right (or better) way to do something that you cant quite figure out.
• Get either of the following Processing books. Both have enough variety of content to get the beginner up to speed and keep the advanced user engaged.
Starting to code in an unfamiliar environment can be a bit overwhelming at first. But thats the beauty of Processing. Getting started is surprisingly easy. My only programming experience before starting with Processing was Actionscript 1.0. I found that taking a Flash project and translating it to Processing was a fairly easy task. Here is a little Processing.org list about how Processing and Actionscript handle things slightly differently.
So thats it for now. Hopefully this will help orient those who are new to Processing. And in closing, please remember those tired clichés that became such overused phrases for a reason: there is truth in those little nuggets.
Practice makes perfect.
Rome wasnt built in a day.
If at first you dont succeed, try, try again.
The longest journey begins with a single step.
If wishes were horses, beggars would ride.
Okay, maybe not that last one so much.