I see many fad posts here.
Considering that you are starting naked, here's my bit.
Don't read this all at once. Read first and last two paragraphs, come back later.
Python, start there.
Although I frown upon Python for practical applications, I do highly recommend it as a wonderful learning language.
That was it's designed purpose, and it performs admirably.
Then move on. The training wheels feel safe and comfortable, but it's time to move on.
For object oriented methodology, I (regretfully) must recommend Java. It is almost a purely object oriented language, and forces you to think and code in an OO manner for everything. The primary utility of OO is thoughtful extension of what already exists, so Java's extensive library is good; the primary intent of OO was simulations, which Java performs adequately. NetBeans is a good IDE for learning, though Eclipse is better for professional work. Although I consider Objective-C better at teaching the nature of OO, and Smalltalk better still, I can not recommend them, simply due to smaller implementation base and fewer resources.
At this point, take a retro detour back to C. Not C++. C. It gets you close to the hardware, but still gives you structured logic. It lets you cut out your own heart with a laser torch... albeit by accident when you were just trying to peel a potato. Learning it will give you a better understanding at what is going on at the base of all other platforms and languages out there. Only Assembly and raw machine code get closer to the bare, naked hardware. And, more importantly, coupled with what you learned in Java, it shall prepare you for the insane power of C++ (should you elect to learn it).
For learning the nature of lambda expressions and functional programming, nothing beats Scheme. Ignore Ruby, Scala, Clojur, Haskell, Erlang, no matter how temped.
Why? Scheme forces your brain to think in only a functional manner, which is the goal when learning something alien to you, and please trust me, lambda is quite alien to most human brains.
Ruby advocates will point out that it has a more friendly and natural syntax, which is true. Please go read the sentence above, again.
Only move on to the others once you truly grok lambda in Scheme.
(Or Common Lisp, but Scheme is better at teaching, IMHO).
First Scheme project I typically assign: Write a simple program to replace all square braces [] with parentheses (), and vice versa. It will make writing any Lisp based language much faster on keyboards where the square brace is a single keystroke, but the parentheses require shift, while teaching some of the basics of how Scheme sees the universe.
Everything I've suggested has many books written for it, many enthusiast guides, formal standards bodies, at least a decade of maturity behind it, implementations on many platforms, formal classes at colleges (should you so desire), and free accessibility.
By no means should you stop there, if you make it this far.
Those are the teaching languages.
Lua is a great little embeddable scripting language.
C++ is still around for a reason. Consider it the most Dwarfy language of all time. The Boost library is Adamantine.
C# (and the rest of the .NET stack) are going to be around for a long time. But you should see things done philosophically correct before seeing them done by a marketing department.
Not to mention whatever is (re)invented between now and then.
Cheers, and best luck.