Here are some links to get you started.
http://learncodethehardway.org/
http://www.cplusplus.com/files/tutorial.pdf
http://www.saylor.org/majors/computer-science/
http://stackoverflow.com/questions/194812/list-of-freely-ava...
Also, learn to use YouTube to search for answers. Check this video out.
I find that people who learn CS from non-top-tier-tech colleges or from books tend to be limited in their knowledge, relying more on books and reference sheets than stronger programmers who learned by trial and error. People who learn how to program from external sources tend to be more narrow in their programming styles, following a single type or development, programming, project structure, and even languages - many are so limited they struggle to learn a new language, when a stronger program can pickup new languages quickly and entirely new programming styles.
Of course this is limited to programming for the most part. If you are going to be more focused on another aspect, the approach may be different. Learning hardware is more hands on and is harder to do through Google searching - in this aspect of CS, I'd strongly recommend some books to assist - also taking apart and rebuilding a computer or laptop is always fun if you haven't done so.
There are also other aspects to CS - if you are more descriptive with what you want to learn HN may be able to give some better replies.