PurpleScarz
Again, I disagree.
You may not see any use for VB, but that doesn't mean new programmers can't fool around with the interface to help with their C# coding (if that's what they choose). I'm sticking by my guns when I say that C is not a beginner language. Python is as simple as it gets, far easier than C. C# has many built in functions and coupled with Visual Basic, is also fairly easy to pick up. A step up from Python, but easier.
First and foremost, you must divorce in your mind Visual Studio from the Basic language. It's actually the Visual Studio IDE that is useful for rapidly prototyping GUI applications, not the Basic language.
While you're right that there's no such thing as a bad first language, you're wrong to extend that logic to the misguided notion that there's no wrong language to teach a first-time programmer. There are absolutely some terrible languages to inflict upon the impressionable mind of a first-time programmer, and Basic is one of them.
As a language, Basic has absolutely no value in the modern world. None. Not even for "beginners". At best, it's a nostalgic toy for old hats. However recommending Basic as language for beginners is not only out-dated by more than two decades, it should be considered criminal negligence at this point.
BASIC, even Visual Basic, deserves to be a dead language. It has long outlived it's usefulness. At this point, it only serves to perpetuate the same antiquated patterns, styles, and vocabulary that every other modern language abandoned long ago. You might as well recommend they learn COBOL. Considering how far the industry has progressed past those Cold War-era notions, such languages would only serve to pollute their brain with the ugly artifacts of a long forgotten past.
Furthermore, C is absolutely an appropriate language for beginners. It is a 20th century fallacy to proclaim that BASIC is a better language for beginners than C. The reality is that unless you eschew imperative languages all together (the alternative being declarative languages in the lineage of LISP), you need to become intimately familiar with the concept of pointers and memory management in order to become proficient as a programmer. There is no better language for learning these concepts than C. Nearly every other imperative language goes out of its way to obfuscate pointers from the user, and in so doing deprives them of the opportunity to easily learn about them.
The only other languages of note that do not try to hide the pointers from the user are Objective-C and C++. Objective-C is close enough to C that there is functionally little difference between learning one versus the other. C++, on the other hand, is a convoluted beast that does more to ensnare the user in their own mistakes than it does to help them. Stay as far away as you possibly can.
I have no problem with your suggestion of Python. In fact, I often prefer to use Python for teaching first-time programmers. However I only teach it as part of a broader course on the fundamentals of computer science, which includes learning about pointers and memory management through building a compiler for a high-level language.
Please don't recommend thenewboston on here. Those videos are terrible and don't actually teach users anything. We've made drinking games of the mistakes, errors, and bad advice perpetuated by those videos. There are many superior video series out there for learning programming,
such as these by Richard Buckland.
Edit: I'm not posting this to attack either one of you. I'm posting this solely in the interest of protecting the OP, and anyone else that is reading this thread, from potentially harmful advice. I hope you both take this as constructive criticism and continue to contribute in C&T/TT.