I’m going to go against the flow here and say it doesn’t matter: I’d pick C++ or Java just because they’re the most generally used, and folks tend to prefer the language they start with.
Learning programming is a process of learning decomposition of problems into algorithms, how data and information flow through a process, data structures, encapsulation, and modularity. It’s the process of learning to think in a step-by-step model about how to do things, then implement that.
I’ve taught a lot of programmers to program, and the above is the hard thing to learn. The syntax of a language is almost irrelevant: from the hurdle of getting from “not a programmer” to “a programmer,” the language choice is a blip – the hard part is learning to turn a word problem into a program.
The only languages I’d stay away from as a beginner are the “academic” ones like Haskell, ProLog, and the various Scheme/Lisps. They use a fundamentally different breakdown of problems into algorithms, which makes it hard to transfer the skills from them into other languages. They’re explicitly designed to allow you to solve certain problem types by “hiding” the complexity of something (data structure manipulation for Lisp, constraint searching for Haskell/Prolog) from you. That’s fine if you only care about the specific problem domain they’re built for, but doesn’t help much for general-purpose programming. By all means, learn them, but do it after you’ve got the basics of a standard procedural language.