C++는 꽤 방대한 부분을 담고 있다. 대부분의 현대 프로그래밍 언어들과 마찬가지로 기본 구문에 대해 학습해야 하고 , 객체지향을 학습해야하고, 여기에 표준 템플릿 라이브러리(STL: Standard Template Library)를 학습해야한다.
대부분의 언어 학습자들이 적게는 5-6권, 많게는 10권 전후의 책을 학습하는 동안 읽게 된다 . 즉, 단 한권으로 모든 것을 끝낼 수 있는 책은 아쉽게도 없다.
벌써 여러해동안 프로그래밍을 해오고 있는 내게 C++는 잠시 지나간 언어에 불과했다. VC++를 사용하고 있을때는 C++은 잊어버린채 Win32 API와 MVC 구조에 둘러싸여 있었기 때문에 C++에 대해 깊이 생각할 시간이 없었고, 그 이후로는 생산성을 위해 닷넷을 사용하고 있어서 완전히 잊어버리게 되었다 .
그러다가 C/C++를 사용해서 앞으로 2년간 일을 해야하는 입장에서 C++에 대한 책을 다시 찾다가 "생각하며 배우는 C++"을 선택했다. Primer C, Primer C++도 소장하고 있고, Accelerated C++과 같은 책도 소장하고 있다 .
다른 책들과 달리 이 책의 장점은 처음 프로그래밍을 입문하는 사용자나 C++를 처음 접하는 사용자에게 초보자들이 흔히 부딪힐 수 있는 문제, 고급자는 쉽게 해결하지만 책이나 인터넷에서도 찾기 힘든 그런 문제들에 대해서도 언급하고 자세하게 설명해 나가고 있다는 점을 들 수 있다 .
또한, VS6, VS.NET 2003과 같이 널리 쓰이는 개발툴과 표준 C++과의 차이점에 대해서 설명하고 있는 점도 다른 책에는 없는 장점이다 . 아마도, 진지하게 표준 C++와 각 컴파일러간의 차이점을 비교하기 위해 GCC를 비롯한 다양한 C++ 컴파일러를 비교해본 경험이 있는 사람이라면 각 환경에 따라 차이가 있고 , 표준 C++과 다른 점이 있다는 것도 잘 알고 있을 것이다.
물론, VS 2005 beta2까지 나온 단계에서 저자가 언급한 표준 C++과 개발툴과의 차이점은 거의 대부분 해소가 되었고 , VS 2005 beta2에서는 표준 C++을 충실히 따르는 것을 확인할 수 있을 것이다.(VC++ 2005 Express는 MS 사이트에서 쉽게 다운받을 수 있다)
후반부에 템플릿과 STL에 대한 내용이 있으며, 간략하게 이해하기엔 좋지만 깊이있는 설명을 기대하기엔 다소 무리가 있다 . 불행히도 STL을 다루는 대부분의 책들은 템플릿에 대해 모두가 잘 알고 있다고 가정하기 때문에 이 책에서 템플릿 부분을 잘 숙지하고 다른 STL 관련서를 학습할 것을 권한다.
이 책이 갖는 또다른 장점은 실전 프로젝트로 <성적관리 프로그램>을 만들어 보는 것으로 총 3 개의 챕터로 책의 중간중간에 배치되어 있어서 지금까지 배운 내용을 토대로 확장해볼 수 있게 했다는 점을 들 수 있다. "Accelerated C++"의 경우 모든 챕터가 1장에서 시작한 내용을 토대로 따라하면서 확장하여 가는 방식이라 책의 중간부터 보기도 어렵고 , 책의 흐름을 놓쳐버리면 이후의 챕터를 따라하기 어려운 점이 있다. 이 때문에 "Accelerated C++"에 대한 평가는 극과 극으로 나뉜다.
"생각하며 배우는 C++"는 실전 프로젝트는 별도의 챕터로 중간중간에 배치해서 관심없는 사람에게는 생략할 수 있게 했으며 , 관심있는 학습자에게는 자신이 배운 프로그래밍 지식을 실제로 어떻게 적용할 수 있는지 보여주는 동시에 학습 흐름과 별도의 챕터로 분리해서 흐름을 놓칠 염려는 없어보이는 게 장점이다.
이 책을 학습하고 이후에 STL 관련서적들을 탐독하는 것을 추천한다.