If you're going with C and C++ 2 good Books that I found are:
Teach yourself C in 21 days http://kldp.org/files/c+in+21+days.pdf
Teach yourself C++ in 21 days http://newdata.box.sk/bx/c/
The good thing about these books are, they have a program analysis, quiz and exercises at the end of each chapter. That will help you improve your skills. Learning C and C++ will make you understand other programming languages much easier, even ASM.
After finishing Teach yourself C in 21 days"(or before classes and objects in Teach yourself C++ in 21 days) you could read about Data Structures and Algorithms(Lists, Queues, Stacks, Heaps, Graphs, Trees, Hash Tables, Sorting, Searching, Path Finding, etc).
But in some cases some languages use other languages as well:
- java has JNI, Java Native Interface, that compiles C code for speed,
- another example is GPU programming with CUDA or OpenCL that are kernels that you make in separate files and compile them thru GPU engine,
- or the script engine LUA that allows LUA scripting for your applications