You need 3 things:
- Figure out how search engines work (like Google)
It can give you a better book list, tips and manuals than any expert can give to you, because it's tailored to your needs. (I could write over 100 pages about which books are better for you if you have this and that pre-knowledge and this and that attitude of learning and want to do this or that - but why waste my time with this? Most likely you would never read it). All experts use search engines daily for doing their tasks, and look up manuals. Programming is so complex and changes so fast that you can't have all the names inside your head). The most important skill a programmer must have is the knowledge how to find the information he needs to solve his task. So giving you a book list is contra-productive.
- Be Patient
If something doesn't work right away, think about it and play with it until you figure it out. But don't give up!
- Practice
Just get the source code of a game (or whatever) and try to modify it. Or work on an open-source project and try to fix some bugs. Or make a project of your own in your favorite computer language. Stay away from gui-tools where you only need to click to produce some code! Write it all yourself. By practicing programming, you'll learn alot and you will train your logic and math skills