Choosing a first programming language to learn can be painful, especially today, there's so man darn languages that come across as eye-candy to the prospective developer. Anyways, it certainly can depend on what your goals are in learning. If you want to do strict hardware and low-level stuff than your first choice may be different than if you want to end up in doing front-end web development or desktop development.
Given the many different languages, the many different ways they are applied, I would definitely say that Python is the best choice for a beginner. Seriously, Python has so much going for it. It's a powerful language, its well established, its everywhere and used by everyone. Probably the most important thing about Python, from a beginner's perspective, is that the community is HUGE. I doubt you'll ever find yourself lost and unable to find an answer to something you seek. Python is used as a language in first year comp sci courses to teach paradigms and fundamentals, and its also incredibly practical. So for whatever your reasons for getting into programming, I'd say you can't go wrong with Python.
Ruby does come in as a close second for first time learners, for many of the same reasons as Python. The community is huge, well receiving of newcomers to the language, its easy to jump into and there are gems (libraries) for everything.
Oh and for Python, I have to add in a recommendation for this book by Al Sweigart, Automate the Boring Stuff with Python. All of his books are a great read for getting into Python, but this one in particular is great because its entry level, but its all really useful and practical. Its stuff you'll use and that will not just keep you interested, but push you into the rabbit hole of 'what's next.'
Anyways, that turned into a long rant. Enjoy!