thewhills said:
I bought a book on C++ that was recommend by a friend and a cheap book on C and I just can't get into it.
It start off ok, but then the throw 50 lines of code at you for even a basic program and I get lost...
C and C++ are where you want to start if you're looking to get into serious programming. They're low level enough so that you have to deal with memory management, various data types, and other nitty things. It gives you a very good understanding of how computers work under the covers, but makes you jump through a lot of hoops to do what you might think are simple tasks.
By contrast, things like Perl and Python are very powerful languages. You can do the same tasks with single built-in function calls, rather than writing tons of very detailed instructions. The other benefit to Perl and Python specifically is that they're not compiled. On a personal note, compiling was the thing that drove me away from C (and I guess Java too). So you write it, you run it. Skips the whole compiling phase. Plus, you can do funky things like running new code on the fly with "eval".
For example, if you're programming with an array in C, you have to tell the compiler how big that array is going to be in advance. Oh, and you have to tell it how big each slot in the array is, as well, and what data type is going to be stored there (one and the same, usually). So if you're not sure if you're going to need 10 slots or 5000 slots, you're going to have to either declare the full max right up front, or dynamically allocate new memory on-the-fly as your array grows. In Perl? You don't need to do any of that. Perl's smart enough to handle it for you. Python, too, I assume. Technically, you don't even need to declare the variable (although you should!)-- you just start using it and it's there for you.
The sacrifice is processing speed. If you try and do any intense data processing, like, say, ray-tracing a 3D image or extrapolating out a mathematical formula to billions of iterations, it'll be much faster in C, C++. But 9 times out of 10, you don't care about that for hobby-style programming. Having your programs be easy to build and easy to edit is far more desirable.
Myself, I'm a Perl guy. But Perl may be losing its edge to Python, given that I see more about Python these days than Perl. Maybe because Perl 6 is such a change from Perl 5-- maybe because Perl 6 took so long to release, I dunno. Anyway, I guess I'd have to recommend Python. But Perl's still cool too :)
DaveE