C/C++: Tutorials about doing a larger programming-project?

Question by koppe74: C/C++: Tutorials about doing a larger programming-project?
I already know basic C/C++ programming, but I’m looking for a tutorial/step-by-step guide about handling a larger programming project (larger than the examples typically found in text-books).

I will be programming under Linux (though it shouldn’t be that different from Windows). It will (for now) be a terminal (CLI) program (not GUI).

I’m especially after the following:
-Identifying good classes, their data and methods… and best relationship between them (inheritance, classes embedded in other classes, which classes sends messages to which others)
-How to identify likely candidates for classes, methods/functions, data-members/variables by looking at description of the problem
-Use of flow-charts, block-charts etc. to split problem into a sequence of steps
-Best practices: One big file or many smaller? Use include to stitch together, or compile each smaller files separately and use linker? Use separate header and source-code files? Create and use libraries or not?
-“Stitching everything together” into a program…
-Optional: Linux: Creating Makefiles, using auto-configure etc.

I would prefer something online, but books are OK too…
Any specific book you would suggest?

Best answer:

Answer by sephi21roth
O’Reilly media books

Add your own answer in the comments!