Originally Posted by MT Rotor
To teach myself programming,
If you want to learn programming and that's it, your best bet is to go with the Eclipse IDE and Java for android apps or maybe even Visual Studio and C# for windows apps. Or build a website or something although that's technically a markup language. You could do like a JSF page for the Java backend (you can google all this stuff).
Now if you want to something more interesting like learning about compilers and the lower level stuff like processor architectures then yes get a raspberry pi. Specifically with the raspberry pi you will learn about the ARM architecture (which is like x86 architecture just different). By 'like x86' I mean it is an instruction set. The Raspberry Pi implements the ARM instruction set to do computations. I believe it is the ARM11 or ARMv6 instruction set. One or the other. You will learn about cross-compiling, linux kernel compilation, or maybe even android kernel compilation. It's important for you to know that for every instruction set, (even between ARM11 and ARMv6) things must be recompiled to run using that particular set of instructions.
I guess at this point you'll have to decide what type of programming you want to do.
Note: the raspberry Pi I'm fairly sure will run Android quite nicely. You can in fact program Android apps for the RPi no different than you would for your phone; but then again, why would you buy a raspberry pi instead of writing an app for ur phone