My first language was Visual Basic, and I think it is a very good language for beginners. Visual Basic allows total beginners to easily create a graphical app, without getting lost in a ton of code, and also not having the "console-only stuff sucks" feeling. Although it introduces some bad programming practices (variable are created on first use, no need to declare them), I liked it because it doesn't scare people off programming because you aren't restricted to console apps like most languages (for beginners) and the syntax doesn't use a ton of symbols. Of course VB is not a serious language and when I left it I was already trying to make pointers work in VB

, so the move to C was kinda natural. (I already knew all about pointers) Also VB is *very* slow, even if you compile it to native code instead of bytecode (they call it p-code).
Of course, C++ is more well know than C, so I just went onto a website and learned C++. The thing that confused me about C++ was this operator overload crap.
1 cout << "Hello world";
2
(This is the code used in about every C++ tutorials)
I looked up the definition of the << operator and it told me it was the bit shift operator. This is very misleading for beginners, and will cause a lot of confusion when you try to use the real operators. Also, at that time I did not see the advantage of object-oriented programming, so that drove me to drop C++ and learn C instead.