I have doubts about the effectiveness of visual programming languages as learning tools. Am I alone in this? Many college courses, including Harvard's CS50, begin by teaching students basic concepts with a visual programming language, but are these efforts misguided? I really don't see how something like Scratch is a more intuitive or more effective way for someone to learn what a For loop is. Why not just start out with code?

What are your thoughts?
Sorry to burst your bubble, but all language learning software do have quite many weaknesses, so they never ever will be able to replace real language lessons nor any other learning activities! You need to use the target language as much as you can and in as many ways as possible. There is NO quick fix for this, learning takes the time it takes. In short: Speak, write, read, listen, understand, communicate!