Books on C++
원문: http://www.lastmind.net/tWiki/bin/view/Main/SoftwareDevelopmentBooks
C++ Programming Language
프로그래밍 언어에 대한 책에는 세가지가 있다. 프로그래밍 언어를 배우기 위한 책, 프로그래밍 언어를 잘 쓰기 위한 책, 프로그래밍 언어의 레퍼런스.
읽어보지는 않았지만, C++을 배우기 좋은 책으로 ‘Essential C++’을 꼽을 수 있을 것 같다. Bruce Eckel의 ‘Thinking in C++’같은 것도 나쁘지 않은 것 같다. (본인은 좋은 C++ 입문서를 읽어본 적이 없다. 번역서는 커녕 일반 서점에서는 외서를 구하기가 힘들었기 때문에, 한국 사람이 쓴 책을 읽었었다.)
‘The C++ Programming Language’는 C++의 창안자인 Bjarne Stroustroup이 쓴 책인 만큼 권위도 있고 자세하기도 하고 잘 쓰여진 책이기도 하다. (한 때, ISO C++ Standard가 이 책을 기반으로 쓰여지기도 했으니까) 이 책은 위에서 말한 프로그래밍 언어에 대한 책의 세가지 성격을 모두 갖고 있는 책에 가깝다. C++의 문법뿐만 아니라 왜 그런 문법이 생기게 되었는가, 그리고 어떻게 사용해야하는가 까지도 자세하게 적고 있으니 말이다. 이러한 성격 탓에 입문서로는 약간 부담스러울 수는 있으나, 다른 입문서를 읽고 C++ 문법을 모두 익히더라도 한번 쯤 읽어볼만한 책이다.
개인적으로 Effective 서들은 C++의 중급자로 올라서기 위해서는 ‘필수서’라고 생각한다. C++을 사용할 때 거의 항상 부닥치는 문제들에 대한 idiom을 제시하고 있기 때문이다. Exceptional* 서는 *Effective*보다는 덜 범용적이지만, 역시 중요하고 유용한 idiom들을 적고 있다. Modern C++ Design은 template의 사용에 관한한 최고의 책이라고 한다. template이 어디에 쓰는 건지 모르겠다면 Modern C++ Design은 template을 사용해서 구현할 수 있는 모든 technique을 보여줄 것이다.
‘The C++ Standard’는 말그대로 ISO C++ Standard를 책으로 만든 것이다. 더 정확하게는 C++98과 이후에 나온 Technical Corrigandum 1 (일종의 서비스팩)을 합쳐놓은 버전이다.
STL reference로는 STL Tutorial and Reference Guide의 번역판을 가지고 있으나 별로 참조할 일이 없어서 평가는 하기 힘들 듯 하다.
대체로 http://cppreference.com 이나 ‘The C++ Standard’를 참조하는 편이다.
번역에 관해 한마디 하자면, 본인이 읽어본 번역서는 Effective 시리즈와 Exceptional C++이다. (Modern C++ Design 읽는 중) Effective 시리즈도 번역이 나쁘다는 사람이 있으나, 개인적으로는 그런대로 읽을만하다고 생각했고, (개인적으로 기본적인 용어를 번역하는 것을 싫어한다) Exceptional C++은 악역이었다. Herb Sutter의 홈페이지에 쓰여진 내용을 찾아 대조해보면서 읽어야만 했다.
저자에 대해서도 좀 적어보면, Bjarne Stroustroup(http://www.research.att.com/~bs/homepage.html)은 C++의 창안자이자 현재도 ISO C++ standard commitee에서 활발하게 활동하고 있는 사람이다. Herb Sutter(http://www.gotw.ca/)는 ISO C++ standard committee의 의장(convener)이며, 책이나 논문, 잡지(CUJ) 등을 통해, 활발할 저술활동을 하고 있다. comp.lang.c++.moderated newsgroup의 moderator이기도 하다. ‘Modern C++ Design’의 저자인 Andre Alexandrescue도 CUJ에 정기적으로 기고하는 사람 중 하나이다. Scott Meyers는 Effective 시리즈의 저자라는 사실 하나라도 너무나도 유명하기 때문에 굳이 따로 언급할 필요도 없을 듯 하다. (사실, 그 외에는 잘 모르겠음)
입문서
- Essential C++: C++ In Depth 시리즈의 입문서
- Thinking in C++, Volume 1: Introduction to Standard C++ ‘Thinking in Java’로 유명한 Bruce Eckel의 저서
- Thinking in C++, Vol. 2: Practical Programming
- The C++ Programming Language C++의 창안자인 Bjarne Stroustroup의 책. 그만큼 권위있고 잘 쓰여진 책이다.
C++을 잘 쓰기 위한 책
- Effective C++
- More Effective C++
- Effective STL
- Exceptional C++
- More Exceptional C++
- Modern C++ Design: C++ template 사용에 관한한 최고의 책
- Large-scale C++ Software Design
- Design & Evolution of C++: C++의 프로그래밍 언어적인 요소들이 어떤 이유로 현재의 형태로 정해졌는지 설명해주는 책.
- Advanced C++ Programming Styles and Idioms: C++ idiom에 대해 자주 인용되는 책 중의 하나.