Learning programming w\ Arduino. Where to start?

Ive recently got the arduino starter kit and finished reading the book that came with it and i think it didnt teach enough on programming and making more complex stuff as much as it did showing you(and doing all the work for you) how to control an connect electronics. Im pretty new to programming so i want to know are there any good books that teach you the arduino language(without doing all the work and teaching you the basics,the intermediate and more if possible)

"the arduino language" is C++. There are shelves full of books at your local bookstore or library to teach you C++. The reference page covers the stuff that is specific to the Arduino.Skip the delay() and String pages, and do not use those functions.

i think it didnt teach enough on programming and making more complex stuff as much as it did showing you(and doing all the work for you) how to control an connect electronics.

Vague statement. Do you have a EE background? For sensors and LED strips and stepper motors and servo motors and stuff like that, both Adafruit and Sparkfun have a huge selection and most come with sample code and Arduino libraries if required.

Hooking up a LED requires knowledge of one electrical formula: E = I * R
E is voltage in Volts
I is current in Amps
R is resistance in Ohms
And that formula will serve you well for all simple DC calculations.

Another good formula is: P = I^2 * R
P is power in Watts
I is current in Amps
R is resistance in Ohms

Pick up a used textbook used for Industrial technicians. 99% of what you need is there... The other 1% is complex math needed for non-DC calculations and if/when you need, ask here and we will steer you.

Ray

Added:

fully half of knowledge is ability.

reading words without doing is only gaining facts.

using the parts and making things results in practical knowledge.

many schools use robots as the medium to teach. present a goal, offer tools, let the individual apply the knowledge. soon enough they find the places they did not understand.

I would ask, what have you attempted to make, but failed ? that is were your need to seek more knowledge.

I reckon there are two parts to learning programming, with neither taking priority

Trying out simple stuff - like the examples that come with the Arduino IDE and modifying them a little to gain confidence.

Studying the basic concepts of programming (which are pretty much universal and independent of particular languages) such as arrays, FOR and WHILE loops, variables data types etc.

Successful programming also needs the ability to diagnose problems by being nitpicking and methodical.

...R

PaulS:
"Skip the delay() and String pages, and do not use those functions.

Why?Because delay() stop the whole arduiuno? Whats bad about String?

You need to be clear about the difference between string and String.

Strings (with a capital S) are OK on a PC but will probably screw up the memory on a small device like an Arduino.

...R