I'm one of those people who believe that the first language you master determines the way you will approach problems. I got stuck with Python after trying many common languages such as Java, and it has definitely influenced me. Therefore, if you want to do low-level stuff, go with C, but otherwise start with something actually high-level... and stay away from C++, C# and Java. I mean, they're useful, but goddamn awful for learning... also far from elegant.
I recommend to look into Python, C and Scheme/Racket at first. Each of them is simple and clean in a way, and teaches you a certain programming paradigm. Once you are able to solve most exercises at Project Euler fluently in those languages, join an open-source project of your choice in any language you like.
Although I certainly do like Ruby, Common Lisp, Haskell, D and some others, I don't think any of them is really suitable for newcomers.