Learning to program is hard because how bad are most of the Java and C++ books: absolutely confusing, boring and too long, esp. those made for schools/universities by professors, let you hate coding and give up.
The best C books are from 10-15 years ago so may teach outdated standards and practices, agreable list here:
http://stackoverflow.com/questions/5...guide-and-list
--> 1.The C Programming Language (Second edition) - Brian W. Kernighan and Dennis M. Ritchie
For C++ specifically the list here is also agreeable:
http://stackoverflow.com/questions/3...guide-and-list
--> 1.C++ Primer -> nice for first part, but confusing for OOP second part (is several authors in a book... not all same style). Advanced C++ books are all complicated.
I can help: I've (re)read several of the C/C++ books in the lists above a year ago (just so I don't forget C++), and wrote a tutorial as a result (my mainstream job includes writing tech books/manuals). I do not want to release it in public (I copy pasted too much stuff, is just mine study summary), but I will email it to the GFY guys who will send a mail to info [4t] chatgf,com or info [4t] tubecamgirl,com with topic/text: "Go fuck yourself C++". I'll reply with the attachment.
For Java: learn javascript instead. Or Python. Java it was cool 10 years ago. Even for Android you can use C++ (NDK) instead of Java anyway. About iOS: this is objective C, is a little different than C++, but if you know C++ is no big issue to see difference (function parameters etc.).