Here's ,my experience with languages and programming:
Started with Pascal: Yuck yuck yuck. Didn't like all the wierd rules n'stuff. My first Language and was dissapointed... maybe it was my teacher...
Learned C: This is what I should have learned in the first place because its so similar to Pascal, I felt I wasted my time re-learning more complicated but similar syntax and types etc... but C felt much better than Pascal thats for sure. Just make sure you get Pointers and pointer arithmetic understood perfectly!! Its the most important aspect, that and memory allocation and deallocation being done correctly. Bit-wise operations are also very handy/powerful/fast but hard to read sometimes. C is very powerful.
Third, learned C++: I said ahhh, this is awesome, I think I'll just use C++ objects as the base of any apps I make and have the GUI in platform specific code (like objective-c). Plus, I got the idea of objects, and the idea of funtion overloading + subclassing + streams... liked streams, didn't get multiple inheritance... (what if two objects have the same function?) Either way, I thought, "What a smart language C++ is, its fast, object oriented, platform neutral."
Moved to Java: I thought wow! Forget C++!! This is so much more fun and elegant, liked the idea of types actually being objects (numbers for example), decided everything I do would be in Java (garbage collection seemed nice (automatic freeing of memory), if slow) and the way things operated, I liked it alot, thought I could write code once, and deploy it on a desktop and a web page too, like that even more.
Lastly, tried Objective-C: I thought, this is even better than Java!! I really really liked the fact that in the syntax, methods a separate from the objects they call, so for example instread of calling object.doSomething() you call [object doSomething]; this makes the syntax so different than C you dont get confused, and I really hated the syntax of C/C++ functions TBO. Also, since methods (functions) are "sent" not called to objects, its entirely possible to send calls to objects that don't understand them and not have the app crash (this would be impossible in pure C++ without workarounds) and in fact, if an object doesn't understand a message, it can forward it somewhere else! I thought WOW! Way better! Then the idea of typlessness (id as a void object pointer) was great because any object could take the place of another as long as it implemented the methods needed AT RUNTIME. Many things about cocoa itslef, too made me like it so much, its designed very very well, and its a shame its not available on other platforms, but maybe thats the point. Anyways, as a person who has gone from zero knowledge and therefore zero prejudice and through 4 languages I think Objective C is clearly the most "Fun" yet powerful. I was also glad that Objective C was just completely implemented in C itself, and was an object system purely based in C not just "on" C, and non-proprietary like say VB, even though cocoa may be.
Anyways, here's my conclusion:
Pascal, blah.
C, YOU MUST KNOW C even if it is so confusing, just go slowly until you get it.
C++, very practical if even more messy than C. Its a fine object system, even if heavily typed, which is good and bad.
Java, very nice, fun, slow. I dont like VMs, and I don't like Garbage Collection (slower, and I wanna know whats going on with my objects)
Objective-C, absolutely simple, the most simple OO language based on C I have studied, yet the most flexible and powerful. Can be heavily typed, or typeless, no multiple inheritence (I don't like it anyways - messy), fragile base class problem is mostly a non-issue etc.Memory management is completely up to the implementor, in cocoa its reference counting (I think a good compromise). Its just great to use, and you can use C++/Java objects from it as well, which is double nice. You can program in straight C all you want in Objective C without constraint, I liked that too.
You can load a plug-in with one line of code! One line! Less code to write == less bugs on your side.
In the end I, as you can tell, found Objective-C to be the best for me... Java is good, and C++ is fine, but Objective-C has the flexibility of C without the "hairballs"; fragile base class scared me away from C++ I hear Ruby and Python are also very good, but haven't tried them lately. C# seems interesting, but I dislike the C++/Java like syntax... a lot.
Anyways, Good luck.