If you want to do some programming on you’re Pi, i’d heavily recommend the headless approach with an online, cloud based IDE.
I’ve tried cross compiling with eclipse running on a virtual machine on my desktop computer and found it really error prone and tedious to set up (much like the Pi) and i’ve tried using the Pi as an actual computer with a keyboard, mouse and monitor. While the latter was ok, it’s not exactly practical. Especially if you’re working on a mobile application as i was.
The best way to do it is to use the web based Raspberry Pi / Beaglebone IDE by Adafruit.
It’s pretty much the same gig as programming on a beaglebone with the cloud 9 IDE (which is a tad better). I don’t know which came first but i’d hazard a guess at cloud 9. Both are in beta anyway.
The advantage with the Adafruit wed IDE is that all of your dev files are stored both on the Pi or beagebone itself and on the cloud by way of bit bucket. So if you overcook your Pi (pun definitely intended) everything is backed up.
Also the web IDE supposedly boasts debugging features although i’ve not really looked at them / can’t get it to work, maybe it’s still a working progress. Still, check it out!
Works with anything you’re Pi can compile, there’s a few python examples.
I’d recommend C/C++ because 99% of devices have some form of C/C++ compiler, and they have good control over low level hardware. Whereas if you can find a compiler for an 8-bit microchip PIC that does Python, i’ll let you bag my sister off.
Also I think Python gives people bad habbits, it’s no easier to learn than any other language, the big thing about it is it’s “easy to use” syntax… which no other language copys so why bother. If you can program in C/C++ you can program in Java or Python with a quick read up on syntax. I doubt the same can be said for learning python as a first language.
As for learning C/C++ itself, I suppose if you have a Pi you’re most likely going to do it on that, so check out this website:
it’s pretty comprehensive, if you were to read it all and dabble with you’re Pi i think you’d be pretty competent at the end. The more experience you have with programming in general the easier you’ll find it!