Best programming language for beginners?

Taking the question literally, I would say Pascal is the best language for a beginner to learn first. Pascal bridges the gap between low and high level, reaches as far as object orientation and goes a long way towards deterring bad habits. Learning Pascal first, makes everything else much easier.

BASIC still has a place, despite the snobbery. The advantage is the immediate rewards which inspired so many of us to stay the course. Modern structured BASICs often come with OOP and a compiler of sorts. Apart from the near English constructs which make it so easy to learn, I honestly struggle to see much which distinguishes these modern BASICs from most other high level languages. BASIC remains popular for macro languages, rapid prototyping and there are still millions of applications in production use written in 'BASIC like' languages.

The shortcoming of BASIC is it is strictly high level and won't help much when you get to lower level languages like C/C++ The drawback to learning BASIC first is the bad habits it lets you fall into can be difficult to drop...And of course that snobbery.

Once you have a low level and a high level language under your belt, learning becomes more about design patterns, libraries and fashions. Whatever language you choose, the constructs are generally similar as there is a microprocessor with input and output underneath them all.

Python though...Is Devil spawn. Making indentation and white space syntactically significant sucks the very joy from life. I am pretty sure if I had been made to learn Python at school, I would have ended up with a completely different career.