I must first commend you on your decision to learn computer science. I can assure you, you will not regret it.
Here is something I keep referring to from time to time while trying to decide what to learn next :
Sam Park's answer is a great read for somebody in your predicament.
This serves as a great repository for links to online courses as well as the order in which they should be taken.
As far as quality of courses is concerned, Harvard's CS50 or Stanford's CS106A would be my personal favourites as intro courses. Both David Malan and Mehran Sahami have, due to their engaging styles, managed to exponentially increase enrolment in intro computer science courses over the years. The CS106A lectures do have the disadvantage of having been filmed in 2008, but Mehran the apparent disadvantage totally worth it. I would recommend that you use these to begin. However, do not fall into the trap of multiple introductory computer science courses. This is a huge mistake I made myself. Just pick one and see it through to the end. This includes solving problem sets, programming assignments, quizzes, exams, and so on.
As soon as you complete your first introductory course, move on to higher level ones. Do not waste your time learning a multitude of programming languages in order to seem more versatile. There is no award for knowing more programming languages. Focus on higher level concepts, not syntax. Once you master a single programming language, new ones will come to you with ease (except maybe err..Brainf*ck)
I wish you all the luck in your endeavour to learn computer science. Scott Young's MIT Challenge may serve as a source of motivation and inspiration along the way.
But if there's one thing I implore you to take away from this answer, it's this:
Good coders aren't made by taking courses; good coders are made by writing code. Build as many side projects as possible. Most of your learning will have otherwise gone to waste. Good luck!