Originally posted by Skuzzy 
Gadfly, that is not C, that is C++.  Very different.
C++ is indeed ugly.  C is much easier to read and debug, and will generally produce smaller and faster code.  I would not start with C++.  It is much more difficult than C for a beginning programmer.  I know C++, but never use it.  The code is just plain ugly to work with.
I have to disagree with you there: for complex projects I prefer C++: well designed and written C++ is much easier to deal with. 
C too easily ends up as a long convoluted spaghettie of functions with little or no structure. But then I was brought up, so to speak, in the object orientated world. C++ is just a superset of C anyway (assuming you stick to ANSI standards) so the one leads to another. 
Originally posted by Skuzzy 
BASIC can teach you some bad habits as it is a very unstructured language.
I definitely agree with that: this also goes for M$ VisualBasic as well.
My advice: learn C (and then C++ 

) or Java. Which one depends on what you are trying to do. C/C++ are more computationally efficient, Java is generally easier and has lots of things already written for you. Programming languages are just tools: you pick the right one for the job - be careful of people who get fanatical about them!
My other piece of advice is this:
Learn to do all the tasks involved in writing a piece of software yourself, inlcuding compiling, linking, build files etc. Too many people start off using fancy development environments like JBuilder & Visual Studio  and then can't figure out how to get things work when they go wrong (or move to another environment).