from:http://blog.csdn.net/weiqubo/article/details/4839873
當讀者有一定c/c++基礎
推薦的閱讀順序:
level 1
從<<essential c++>>(可不看)開始,短小精悍,可以對c++能進一步瞭解其特性
以<<c++ primer>>作字典和課外讀物,因爲太厚不可能一口氣看完
level 2
然後從<<effective c++>>開始轉職,這是聖經,請遵守10誡,要經常看,沒事就拿來翻翻
接着是<<exceptional c++>>,個人認爲Herb Sutter主席大人的語言表達能力不及Scott Meyers總是在教育第一線的好
順下來就是<<more effective c++>>和<<more exceptional c++>>,請熟讀並牢記各條款,接下來<<More C++ Idioms>>和<<Advanced
C++ Programming Styles and Idioms>>迅速將你帶入專家級行列.
當你讀到這裏,應該會有一股升級的衝動了
level 3
<<insied the c++ object model>>看過後如一縷清風掃去一直以來你對語言的疑惑,你終於能明白compiler到底都揹着你做了些什麼了,這本書要細細回味,比較難啃,最好反覆看幾遍,加深印象
看完上一本之後,這本<<The design and evolution of c++>>會重演一次當年C++他爹在設計整個語言過程中的歷程
level 4
<<the c++ standard library>>是stl的字典,要什麼都可以查得到
學c++不能不學stl,那麼首先是<<effective stl>>,它和聖經一樣是你日常行爲的規範
<<generic programming and the stl>>讓你從oo向gp轉變
光用不行,我們還有必要了解stl的工作原理,那麼<<stl源碼剖析>>會解決你所有的困惑
level 5
對於c++無非是oo和gp,想進一步提升oo,<<exeptional c++ style>>是一本主席這麼多年的經驗之談,是很長esp的
一位stl高手是不能不去了解template的,<<c++ template>>是一本百科全書,足夠你看完後對於gp遊刃有餘
<<modern c++ design>>(中譯名C++設計新思維)是太過聰明的人寫給明眼人看的
好書有很多,不能一一列舉
以上我的讀書經歷,供各位參考。接下來的無非就是打怪練級,多聽多寫多看;boost、stl、loki這些都是利器,斬妖除魔,奉勸各位別再土法練鋼了。
at last,無他,唯手熟爾。
C++/OPP/OOD系列:
層級一:語法/語意(C++)
[Lippman2000] Essential C++
by Stanley B. Lippman Addison Wesley Longman 2000,276 pages
Essential C++ 中文版 ,侯俊傑 譯,282頁
[Gregory95] C++:The Core Language
by Gregory Satir 1995 O'Reilly
C++語言核心,張銘澤 譯 ,236頁
[Deitel98] The Complete C++ Training Course 2/e
by Harvey M.Deitel 1998 Prentice Hall
C++大學教程(第二版),邱仲潘等 譯,816頁
[Stevens2000] Standard C++ Bible
Standard C++ Bible 2000 Al Stevens IDG
標準C++寶典,林麗閩等 譯,766頁
[Eckel2000] Thinking in C++ 2/e
by Bruce Eckel 2000 1470 pages Prentice Hall
C++ 編程思想,劉宗田等 譯,420頁
[Lippman98] C++Primer 3rd Editoin,
by Stanley Lippman and Josee Lajoie
Addison Wesley Longman,1998 1237 pages
C++ Primer 中文版,侯俊傑 譯,1999,1237頁
[Struostrup2000] The C++ Programming Language
The C++ Programming Language,Special Editoin,by Bjarne Stroustrup
Addison Wesley Longman,2000,1017 pages
C++程序語言經典本,葉秉哲 譯,儒林 1999
[ANSI C++] C++規格書 1998.9.1 PDF格式
ANSI C++ 1996 Draft
層級二:專家經驗(C++/OOP)
[Meyers96] More Effective C++
by Scott Meyers,Addison Wesley,1996,318pages
More Effective C++中文版,侯俊傑,培生 2000. 318頁
[Meyers98] Effective C++ Second Edition,
by Scott Meyers,Addison Wesley Longman,1998.256pages
Effective C++ 2/e 中文版,侯俊傑,培生 2000.256頁
[Sutter99] Exceptional C++
Exceptional C++,by Herb Sutter,Addison Wesley Longman,2000.208pages
Exceptional C++中文版,侯俊傑,培生 2000.248頁
[Sutter2001]More Exceptional C++
by Herb Sutter,Addison Wesley Longman,2001.
層級三:底層機制(C++ Object Model)
[Ellis90] The Annotated C++ Reference Manual
by Margaret A.Ellis and Bjarne Stroustrup
Addison Wesley Longman,1990,447 pages.
[Lippman96] Inside the C++ Object Model
Inside the C++ Object Model,by Stanley Lippman,Addison Wesley Longman,1996,280pages
深度探索C++物件模型,侯俊傑 譯
層級四:設計模式的複用(C++/Patterns)
[Gamma95] Design Patterns:Elements of Reusable Object Oriented Software,
by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides,Addison Wesley,1995.395pages
設計模式,李英軍等譯,機械工業出版社,2000.254頁
重構-改善既有代碼的設計。
[Alex2001]Modern C++ Design: Generic Programming and Design Patterns Applied
by Andrei Alexandrescu,Addison-Wesley,2001,352Paper
Genericity/STL系列:
第一個境界是使用STL:
[Josuttis99]:The C++ Standard Library -A Tutorial and Reference,
by Nicolai M.Josuttis, Addison Wesley 1999.799pages
第二個境界是瞭解泛型技術的內涵與STL的學理:
[Austern98]:Generic Programming and the STL -Using and Extending the C++ Standard Template library,
by Matthew H.Austern,Addison Wesley 1998.548page
第三個境界是擴充STL:
[Stepanov2001]:C++ Standard Template Library
by P.J.Plauger,Alexander A.Stepanov, Meng Lee,David R.Musser,Prentice Hall 2001
這些就是你應該看的書,如果你想成爲高手。
http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
-
Code
Complete (2nd edition)by Steve McConnell
-
The
Pragmatic Programmer
-
Structure
and Interpretation of Computer Programs
-
The
C Programming Language by Kernighan and Ritchie
-
Introduction
to Algorithms by Cormen, Leiserson, Rivest & Stein
-
Design
Patterns by the Gang of Four
-
Refactoring:
Improving the Design of Existing Code
-
The
Mythical Man Month
-
The
Art of Computer Programming by Donald Knuth
-
Compilers:
Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman
-
Gödel,
Escher, Bach by Douglas Hofstadter
-
Clean
Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
-
Effective
C++
-
More
Effective C++
-
CODE by
Charles Petzold
-
Programming
Pearls by Jon Bentley
-
Working
Effectively with Legacy Code by Michael C. Feathers
-
Peopleware by
Demarco and Lister
-
Coders
at Work by Peter Seibel
-
Surely
You're Joking, Mr. Feynman!
-
Effective
Java 2nd edition
-
Patterns
of Enterprise Application Architecture by Martin Fowler
-
The
Little Schemer
-
The
Seasoned Schemer
-
Why's
(Poignant) Guide to Ruby
-
The
Inmates Are Running The Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity
-
The
Art of Unix Programming
-
Test-Driven
Development: By Example by Kent Beck
-
Practices
of an Agile Developer
-
Don't
Make Me Think
-
Agile
Software Development, Principles, Patterns, and Practices by Robert C. Martin
-
Domain
Driven Designs by Eric Evans
-
The
Design of Everyday Things by Donald Norman
-
Modern
C++ Design by Andrei Alexandrescu
-
Best
Software Writing I by Joel Spolsky
-
The
Practice of Programming by Kernighan and Pike
-
Pragmatic
Thinking and Learning: Refactor Your Wetware by Andy Hunt
-
Software
Estimation: Demystifying the Black Art by Steve McConnel
-
The
Passionate Programmer (My Job Went To India) by Chad Fowler
-
Hackers:
Heroes of the Computer Revolution
-
Algorithms
+ Data Structures = Programs
-
Writing
Solid Code
-
JavaScript
- The Good Parts
-
Getting
Real by 37 Signals
-
Foundations
of Programming by Karl Seguin
-
Computer
Graphics: Principles and Practice in C (2nd Edition)
-
Thinking
in Java by Bruce Eckel
-
The
Elements of Computing Systems
-
Refactoring
to Patterns by Joshua Kerievsky
-
Modern
Operating Systems by Andrew S. Tanenbaum
-
The
Annotated Turing
-
Things
That Make Us Smart by Donald Norman
-
The
Timeless Way of Building by Christopher Alexander
-
The
Deadline: A Novel About Project Management by Tom DeMarco
-
The
C++ Programming Language (3rd edition) by Stroustrup
-
Computer
Systems - A Programmer's Perspective
-
Agile
Principles, Patterns, and Practices in C# by Robert C. Martin
-
Growing
Object-Oriented Software, Guided by Tests
-
Framework
Design Guidelines by Brad Abrams
-
Object
Thinking by Dr. David West
-
Advanced
Programming in the UNIX Environment by W. Richard Stevens
-
Hackers
and Painters: Big Ideas from the Computer Age
-
The
Soul of a New Machine by Tracy Kidder
-
CLR
via C# by Jeffrey Richter
-
Design
Patterns in C# by Steve Metsker
-
Alice
in Wonderland by Lewis Carol
-
Zen
and the Art of Motorcycle Maintenance by Robert M. Pirsig
-
About
Face - The Essentials of Interaction Design
-
Here
Comes Everybody: The Power of Organizing Without Organizations by Clay Shirky
-
The
Tao of Programming
-
Computational
Beauty of Nature
-
Writing
Solid Code by Steve Maguire
-
Philip
and Alex's Guide to Web Publishing
-
Object-Oriented
Analysis and Design with Applications by Grady Booch
-
Effective
Java by Joshua Bloch
-
Computability by
N. J. Cutland
-
Masterminds
of Programming
-
The
Tao Te Ching
-
The
Productive Programmer
-
The
Art of Deception by Kevin Mitnick
-
The
Career Programmer: Guerilla Tactics for an Imperfect World by Christopher Duncan
-
Paradigms
of Artificial Intelligence Programming: Case studies in Common Lisp
-
Masters
of Doom
-
Pragmatic
Unit Testing in C# with NUnit by Andy Hunt and Dave Thomas with Matt Hargett
-
How
To Solve It by George Polya
-
The
Alchemist by Paulo Coelho
-
Smalltalk-80:
The Language and its Implementation
-
Writing
Secure Code (2nd Edition) by Michael Howard
-
Introduction
to Functional Programming by Philip Wadler and Richard Bird
-
No
Bugs! by David Thielen
-
Rework by
Jason Freid and DHH
-
JUnit
in Action
|