Where do I start learning C for the Arduino?

Where do I start learning C for the Arduino?

Youtube videos?
Free compilers for the PC?

Work thru Learning section and tutorials.

Also try projects like found in here http://www.earthshineelectronics.com/files/ASKManualRev5.pdf

One of the best ways is to open some of Examples in the IDE. Start with "blink", which is just about the most basic Arduino program that actually does something (blink the LED connected to digital 13).

The syntax of C can take a little getting used to- all those curly braces and such don't make things particularly easy to just read, especially if there's things like nested and conditional loops, etc.

Reading through a few of the examples.. real programs, basic as they are.. can give you a feel of the basic structure, it's a good way to see that what you need to learn isn't as daunting as it looks at first. From there, I'm also still a fan of paper when it comes to reference materials at times, and O'Reilly really is the go-to source for programming references, IMO.

Here's one that may be good: http://shop.oreilly.com/product/9781565923065.do

I'd recommend pretty much anything they carry, you are going to want to keep it to the C/C++ books rather the MFC and other topics. The pocket reference actually looks tempting to me, now that I'm looking at it...

I think the one on the last page may be too much, though it specifically is for embedded design.. you are going to be far better off for quite some time to get a good foundation rather than super in-depth structure analysis. Though there are a ton of folks doing projects that prove you can write huge applications for embedded processors like Arduino, the real fact is that Arduino programs are generally fairly simple, small, and to the point. Thousand-line programs just don't happen with Arduino very often, most are tens of lines, a couple hundred in extreme cases.