Last Updated: Jan 09,2013
Thinking of purchasing the raspberry pi...
what for though lol. Your other options are the well known BeagleBoard, Pandaboard, pogo plugs, guruplugs, BeagleBone, BeagleBoard-XM, and the less known but stupidly powerful (and pretty finicky) ODROID-X.
We've dealt with each and every one of these and they all have their quirks but you won't find one cheaper than the raspberry.
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
What can I do with compilers and architectures?
What are compilations?
Well thats kind of vague. Compilers turn the readable code u recognize (like c or java) into machine code. Java is a bit interesting in that theres an intermediate step but u can read on that later.
Basically lets say I have hello world program in C. If I compile it using an x86 compiler, itll turn it into machine code for an x86 machine. If I use an ARMv7 compiler, itll run on an ARMv7 machine and not on x86 machines. In this way, we can write cross platform code which just needs to be recompiled instead of rewritten to run on many different architectures. Do note that not all x86 compilers are created equal. Some are more optimized for things others. Also, sometimes u run into commands specific for ARM that dont run on x86 at which point u have to rewrite small parts of ur c code.
What can I do with compilers and architectures once if I were to learn them?
Lol anything. All software is run on machines. So the skies the limit. Write watever software u want. I suggest u just start with an android, ios, or windows app.
So a architecture is what it's running on and the compiler is whats created using java?
Perhaps you should go to wikipedia and search:
I wont have enough space here explain that all.
Processor architechture = the ARM CPU for the Pi for example ?
Compiler = java,python,c,c++?
I think I'm over thinking or just don't understand what computer language sounds like in civilian translation :banghead:
Lol still no. I really suggest you just google/wiki this stuff.
U use a compiler to compile c code. Thats probably one of the first things about software u shud kno
Bottom line, no. Dont buy an RPi. Learn the basics of software on ur PC first.
Separate names with a comma.