I have been looking at the buzz happening about arduino for a while and have been trying to understand what it is exactly. So long I have been able to understand that arduino is an open source hardware that eliminates the complexities of c programming used in micro controller programming.
I do understand that there is an absolute necessity of some kind of programming language even if c is not used by arduino. Where is that arduino programming language?
I am surprised because in the random you tube videos that I have seen, it appeared to me that any one from a non electronics education back ground can program an arduino and apply it to their projects. It made me think that arduino programming should be something like PLC programming.
But since you said C++, I am not sure how a non software engineer is going to use an Arduino like it is marketed. I am currently learning c from a book , The 8051 microcontroller and embedded system by Mazidi and McKinley. I am aware of the complexities of c programming.
I have found some videos on Youtube which can be handy if you are starting out with Arduino. Searching on google will also open up many results on Arduino, before that I would suggest you to go through the instructions on this site.
I'm also learning the ropes with Arduino. I guess it's all about experimentation, getting the correct resources and support from the community, and YouTube
As someone also learning to program the Arduino, I have a pet peeve.... the overuse of delay()!
Almost every book, website, and video series I've examined starts with the Blink sketch that uses delay() to time events, and never really goes past it. Even though the example sketches that come with the Arduino quickly move to a different style of programming (see Blink Without Delay and Debounce, which use the millis() timer), those books, websites, and videos keep using delay() instead.
It is simpler - but then using your emergency brake to control your car's speed is simpler than using the brake, gas, and shifter. And I think using delay() is akin to using your emergency brake to drive.
Study Blink Without Delay and Debounce, to start. Find videos about those sketches, and about using the millis() and micros() timers to time events.
And if a book, website, or video tells you to use delay() to debounce a button, stop reading or watching. That is a poor way to accomplish debouncing an input, it stops the action so nothing else can happen, and there are much better ways to do this.