Computer science is something hard to understand without the right fundation. Indeed, you need to go from the basics. But, what are the basics? Someone can argue that you need to understand data flow, others can say you need to know about data structures, maybe some logic too.

Just having another programming language is not enough, if you ask me. We already have many, start with our beloved Pascal, it was conceived as a learning language. Then you can put Logo, Lisp, or even Basic on the list.

ASM is powerfull, but not good for someone who wants to learn the basics. Neither C is an option if you are learning.

From my experience, I can tell that younger programmers avoid anything that seems extremely complicated. They like easier things, like visual programming. Unfortunately many of them learn popular and easy languages, business oriented. At least, this is the common way here in my country. New programmers learn Visual Basic or VB.NET and some SQL.

What I found disturbing, is the lack of hacking (in the good sense of wanting to know more and experimenting new stuff). They see computers as a black boxes with an OS where you double click an icon and start a program. There's nothing under the OS hood, that motivated the need for understanding, to pursuit the never ending quest for knowledge. They are something we can call key strokers, dumb as rocks, repeating the same patterns they learn, without knowing or understanding why it works or not. They barely know about algorithms and see them as arcane formulaes, wrote by some obscure wizard, who's name is lost in the night of times.

In my opinion, if you want to start something great like teaching good foundations for new programmers, bring them that motivation in the first place, inspire them. Then teach them some "magic" about programming science, also teach them to set reachable goals and teamwork.