Arduinos are great for learning about microcontrollers and electronics, but the IDE is a bit primitive. Plus developing for an external device is harder in lots of ways than developing and running your code on the same machine.
Modern IDEs include source-level debuggers with breakpoints, the ability to examine (and change) the variables in the running program, etc. These tools are incredibly valuable in learning programming.
I would suggest getting a C/C++ compiler for your computer (I use a Mac, and for the Mac I would suggest Xcode, which is excellent, and free) and a book on C.
You can write command line tools and skip all the OS stuff, since that doesn't apply. Command line C code is pretty much identical across all platforms. Writing command line tools is quite a bit like writing code using the Serial library on the Arduino, but with faster turn-around and much better debugging.
For learning vanilla C the original Kerrigan and Richie C book is a good choice. It isn't that long, is very well written, and includes lots of exercises. If you read that book and do all the exercises you'll have a solid knowledge of C, including a strong understanding of pointers.
Once you have a strong basis in C, you can move on to C++, or just stick with C. C++ is pretty heavy-weight for a small system like an Arduino with very little RAM. There is a lot to be said for the economy of C.
It would help to learn the basics of C++ so you understand the C++ libraries that are widely used on the Arduino platform, and also learn the basics of OOD (Object-Oriented Development).
Piethon:
Howdy!
I've been loving the Arduino, and have been learning how to do some things with it. I have been able to get some interesting projects set up, but they (to me) are still relatively simple. I am now trying things that are using more arrays, libraries, and have started to come across pointers. I would like to learn more about these, and get a better handle on the fundamentals (ints, strings, using #define as opposed to int =, etc.). Most of my learning has been from the Project book from the Arduino Starter Kit, and looking at other Arduino examples. I have also been using the Arduino language reference page, but am looking for something a little more guided.
I was just wondering if anybody has any good tutorial websites, YouTube videos, books, etc. they could recommend to learn the code/theory better - as opposed to piecemealing it together from Arduino projects and examples as those only get me so far before I run into a wall. I don't know C/C++, so I am assuming that I should look in to that. But, I'm so new, I don't know if I should learn C first, then C++, or if they're "the same" only one more capable than the other...
Anyways, any general ideas/advice would be appreciated! Thanks!