Oh, well, now I'm adding a list.
C language
Since C ++ language includes the C language, which is much easier to learn, I would advise starting with it. In particular, with Shildt - "Complete Handbook of C" . This is the only book in which I did not meet just a bunch of outdated information with an error in every second example (hello to the K & R book).
However, studying C is not necessary, although I recommend it.
As for c ++ itself
Robert Laforé - "Object-Oriented Programming in C ++"
A wonderful book on C ++ for beginners. Written in simple, concise and understandable language, the material is disassembled in detail and in detail. I recommend as the very first in C ++. There are examples to solve. Reading is a pleasure. The only drawback I noted is that the author strongly and often overpraises the merits of the language in the text of the book.
Herbert Shildt - Complete C ++ Reference
After reading Lafore, you can cope with the details of the language and look at a kind of reference textbook on C ++. Here everything that was not said in the first book will be said.
Next comes the list, which I did not read, but the books from it are recommended as the best on many resources.
- Bruce Ekkel, Chuck Allison - "Philosophy C ++. Introduction to Standard C ++."
- Bruce Ekkel, Chuck Allison - "C ++ Philosophy. Practical Programming."
- Stanley Lippman, Josi Lajoye - "C ++ Programming Language. Introductory Course"
- Stanley Lippman - "Fundamentals of C ++ Programming. Volume 1"
Well, it was C ++, but there is also its STL library, which separate books and Boost are also devoted to. As well as the analysis of advanced programming techniques in C ++.
- Peter Norton Scott Meyers - "Effective use of STL"
- Nikolay Dzhosjutis - "C ++ Standard Library. For Professionals."
- P. Plauger, A. Stepanov - "STL. Standard C ++ Template Library"
Be sure to check out later BOOST, unfortunately I do not know the books.
- Peter Norton Scott Meyers - "The most effective use of C ++. 35 new ways to improve the programming style."
- Norton Scott Meyers - "Effective use of C ++. 50 recommendations for improving your programs and projects."
- Peter Norton Scott Meyers - "Effective use of C ++. 55 sure tips to improve the structure and code of your programs."
- Coat of Arms Sutter - "New Challenges in C ++"
- Coat of arms Sutter - "Solving complex problems in C ++"
Andrei Alexandrescu, Coat of Arms Sutter - "C ++ Programming Standards. 101 Rule and Recommendation"
Be sure to read a book of four about design patterns .
Stroustrup
If you have read many of the books and got enough experience, then it's time to move on to the works of Straustrup. His books are written in an academic language and are quite difficult to read. Some recommend starting with it, but only from the fact that they themselves began with it when there was no longer any good literature on the market. One-to-one don't take it first, but it is mandatory for a good C ++ programmer.
Still not bothered to rivet boring console applications? It's time to go to the study of QT. Or study programming under Windows.
QT
- Max Schlee "Qt 4.8. Professional C ++ Programming"
- Blanchett, Summerfield - "Qt4 GUI programming in C ++"
- Mark Summerfield - Qt Professional Programming (High tech) - 2011
- Andrey Borovsky - Qt4.7 +. Practical programming in C ++ - 2012
A little Windows brainstormers, but instead of WinAPI you can read something more high-level, all there is MFC, WTL. Yes, the first two books for windows 95, but since then WinAPI has not changed at all, books are an excellent tool.
- Charles Petzold - "Programming for Windows 95. Volume 1"
- Charles Petzold - "Programming for Windows 95. Volume 2"
- Jeffrey Richter - "Windows for professionals"
Well, in general, here you can still add any necessary books that are not directly related to C ++, but I think you will come across them in the process of studying. Also all sorts of DirectX, OpenGL, databases, etc., etc. Something can still be seen here: good books on C ++
And also, if you are a windows oriented developer, it is better to use the C # language for designing the GUI interface, and to write libraries for it in C ++. But this is only later.
Good luck if you want to become a professional in C ++.
And remember about the article: Learn how to program in ten years (Peter Norvig) .