Everyone's going to say Python, because they don't really know much else.
But the truth is there is no optimal answer to a person's first language. It could pretty much be anything, quite frankly. C, Ruby, Lisp, Haskell, OCaml, Erlang... since it's your first, it won't be shocking, as you have no prior expectations and experience.
In fact, I would say that a beginner should learn a non-ALGOL language first, like Haskell, Lisp or ML. Because this will desensitize them to non-procedural paradigms right from the start, and they won't be yelling "OH GOD LISP MAKES NO SENSE OMG STUPID PARENTHESES THIS SYNTAX IS SO WEEEEIRD LOL" like a bunch of buffoons when they step outside of their comfort zone. Some hackers those people are.
Afterwards, go with C and then progress to a higher-level imperative language.
But, I'm going to take a stab here and say learn Ruby. It'll teach you ALGOL constructs, but it also has lots of elements from Smalltalk and Lisp, so it won't leave you entirely in a black hole.