P.s.: I guess the reason you want such a "book that has it all", is because you are looking for "the fast way". There is nothing like that. Learning is a process, and this process ALWAYS takes it's time. Please - take your time. Seriously read one good book for each topic - and only then you (might) know enough to build a proper something...
If you want it the fast way, you will understand some basic concepts, and this leeds to crap that more experienced programmers will have to fix someday for you, and then this (reverse engineering, refactoring...) will take even MUCH more time So pleeease, TAKE YOUR TIME, study new topics properly!
