C/C++从入门到精通(入门、进阶、精通)

今天在网上偶然看见许多大师在讨论如何学习C/C++,大牛们推荐了一些书籍,我的以为很不错,怕之后想学的时候找起来费劲,因此给整过来了。(本文转自大牛、大师们)

个人我的的拙见能够这样学C++:
第一步:首先入门能够从 国内出版的 教材入门 如 
潭浩强的<<C程序设计>> 
清华大学出版的<<C++程序设计>>等 能了解一些基本语法 会编写些简单的程序 

第二步:看<<C++ primer>>我绝对对赞同这是本好书,面也广.<<TheC++ programingLanguage>>这本书的名头也是让我如雷灌耳,上图书馆找了半天没找到,唉伤心..它们能使你更全面的了解C++ 这时你对泛型编程.模版.容器.标准库函数 等都会有一些了解,甚至会有一些本身的独到看法了.之后看到这些代码不至于会不知道是什么东西(固然这书能够结合第一步的书看) 
<<The C++ StandardLibrary>>摘个内容简介:本书以最新的C++标准库为基础,不只介绍了C++标准库及其全部组件,并且还讲述了如何在实际编程中高效地使用它们,就当stl而言,感受对于STL入门不适合,并且应该也没有STL源码剖析说的那么详细,可是不失为一本好书.固然<<STL源码剖析>>就不用我说了吧
linux

随便一搜就是好评一大把啊.
对于标准函数的介绍与使用我知道的有一本比较小一点的书<<C/C++标准函数查询>>也能够作为参考.
可是最经常使用到的仍是MSDN吧,这个我想是必备的工具,固然若是是linux下编程,可能就要查在线版的MSDN了,
不过在线查询功能貌似很差用.

第三步:这时候C++基本的东西你已经掌握了差很少了 学习windows的程序设计 
两本精典之做 <<windows程序设计>> 
<<windows核心编程>>
(这两本书至少看完一本后,若是想进一步学网络编程<<winsock网络程序设计>><<windows网络编程>>之类的书能够看看)
若是有兴趣能够看些LINUX的编程书 
<<本身动手写操做系统>>
<<UNIX编程艺术 >>
<<UNIX环境高级编程>>
<<深刻理解LINUX内核>>
<<linux内核编程>>....... 
还有这个期间要结合 <<计算机组成原理>>
<<编译原理>>之类的书看 
而后再看VC++类的书 <<深刻浅出MFC>>
《VC++技术内幕》等 
有空的话能够学点汇编 汇编的书我就不介绍了 由于不是了解不少

第四步:第三步完了,差很少能写一些本身的小软件了,这时候要进一步发展学些复杂的,效率的.
看 <<数据结构>> 学习算法.
<<C++编程规范>> 
<<effectivec++>>
<<MOREEFFECTIVE C++>>
《Exceptional C++中文版》 
<<thinking inC++>> 这本书在国外有很高的评价,第一卷还简单一点,第二卷我啃了半天没啃下(标准库不是很熟悉的结果), 因此最好要看完<<theC++ progarming language>>或<<C++primer>>(固然其余书你们本身发掘了)再看它 
《C++ Templates全览(简体版)》,人民邮电出版社  模板是否是令你以为很新颖,那去学他吧. 
进一步提升本身,养成良好编写习惯还有不少好书下面我会列出来(不是说要大家全看,固然看的越多越好)
<<C++标准库扩展权威指南>>
......
第五步:看<<软件工程>>
<<软件体系结构>>之类的书  
说实话 考 程序员 软件设计师等 软件工程类的知识是少不了的呵呵 
我的建议,也许对某些人不适合,也许某些人有更好的建议.给你们一个选择了..
在这学习期间,能够尝试去考个程序员或软件设计师,系统分析师之类的证书,对未来就业有好处的.有空多到网上与人交流.提升本身


其余书我VC的看过不少,但C++的不多了.但是比较出名的我就列出来供你们参考(查至网上)

1。The C++ Programming Language(Bjarne Stroustrup)
2。 Inside The C++ Object Model (Stanley B. Lippman)
(这本书介绍一些C++的内部实现)
3。Advanced C++ Programming Styles And Idioms (James O.Coplien)
(这本书介绍一些C++编程的习惯用法)
4。 STL Tutorial and Reference Guide (David R. Musser) (ProfessorMusser
STL的创始人之一。这本书介绍Generic Programming
的思想和标准)。
5。 Design Patterns (Erich Gamma) (很精典的面向对象设计的组件和实例)
固然,看任何一本书的时候都要动手(试例程或作习题)。而后尝试着在课堂项目中把书中的方法试验一下,以加深印象。"

国外C++几乎全部的教材都被翻译为中文了,若是没有翻译的也已经有影印版出版。
TCPL和D&E
TCPL和D&E分别是《The C++ Programming Language》和《TheDesign and Evolution of C++》的简称,均出自BjarneStroustrup之手。说它们是C++语言圣经,并不为过。
中文名称:
《C++程序设计语言(特别版)》,机械工业出版社
《C++语言的设计和演化》,机械工业出版社
入门教程
Stanley B. Lippman, Essential C++
《Essential C++中文版》,华中科技大学出版社
《Essential C++(影印版)》,中国电力出版社
高效、健壮编程
《Exceptional C++中文版》,中国电力出版社
《More Exceptional C++中文版》,华中科技大学出版社
模板和泛型编程
《C++ Templates全览(简体版)》,人民邮电出版社
《C++设计新思惟:泛型编程与设计模式之应用》,华中科技大学出版社
标准库
《C++标准程序库:自修教程与参考手册》,华中科技大学出版社
《Effective STL(影印版)》,中国电力出版社
网络编程
《C++网络编程,卷1:运用ACE和模式消除复杂性》,华中科技大学出版社
《C++网络编程,卷2:基于 ACE 和框架的系统化复用》,电子工业出版社
杂项
《C++编程思想(第2版)第1卷:标准C++导引》,机械工业出版社
《C++编程思想(英文版 第2版)》,机械工业出版社
《C++沉思录》,人民邮电出版社
《深度探索C++对象模型》,华中科技大学出版社
《深度探索C++对象模型(影印版)》,中国电力出版社
C++工程领域的最高境界:
《设计模式:可复用面向对象软件的基础》,机械工业出版社
其余的好书能够参看我BLOG书评里的其余几篇文章
PS:20081123修正
==============================================
以上只是我我的的一点点本身的见解因为本身仍是菜鸟认识不是很深 因此 又找到了一篇我
认识的一个编程爱好者的文章 但愿对你们有帮助
他网名叫 仙水兄  
【讨论】我的认为学习C、C++、VC编程必读的几本书。
今日无事,很久没到这里来发帖了,看见还有人推荐书籍,因此我也来推荐几本本身以为C类语言编程必读的书:
  
只要认真的读了如下两本书和做了相关的习题,算是入门了。
士兵:《C程序设计》(谭浩强)
士官:《C++程序设计》+《C++程序设计习题解答》(钱能)

若是要想在C++上有必定功力,这两本是必读的书。 )
排长:《effective c++》 和《数据结构 用面向对象方法与C++描述》数据结构不必定要精通但应该了解的。

这时候比较想编写有界面的应用程序了,此书做为基础也好、进阶也罢都是必读之书。
连长:《windows程序设计》(上、下)

若是以为本身的C++水平够好了,下面这本书将使你从新认识这个自觉得很熟悉而且古老的语言。  
营长:《提升C++性能的编程技术》
)
要想开发应用软件并且比较方便但又不知道如何入门应该读的书:
团长:《VC++技术内幕》第四版、《深刻浅出MFC》(这本书毕竟是本身人所写,强烈支持的)

有本身作点游戏的想法应该先读:
旅长:《C++游戏设计基础》荣钦科技(因为此书讲得有些点到为止的“境界”因此把它看成无关紧要的旅长吧^_^,不过对于新手而言是个不错的起步!)

真正想本身开发点好游戏的人必读之书:
师座:《windows游戏编程大师技巧》 原书第二版+《传奇的故事学VC编游戏》(此两本书确实经典,但后一本已经绝版了。。。)  

想在游戏开发中(由于C++如今主要使用来开发游戏的)大展宏图的人应该看的书
军座:《游戏开发物理学》若是真的把这本书弄懂了,熟悉了,军座非阁下莫属。
-------------------------------------------------------------------------------------------------------------------------------
C++/OPP/OOD系列:
层级一:语法/语意(C++)
[Lippman2000] Essential C++ [推荐]
Essential C++,by Stanley B. Lippman Addison Wesley Longman 2000,276pages
Essential C++ 中文版 ,侯俊杰 译,282页
[Gregory95] C++:The CoreLanguage
C++:The Core Language by Gregory Satir 1995 O'Reilly
C++语言核心,张铭泽 译 ,236页
[Deitel98] The Complete C++Training Course
The Complete C++ Training Course 2/e by Harvey M.Deitel 1998Prentice Hall
C++大学教程(第二版),邱仲潘等 译,816页
[Stevens2000] Standard C++Bible
Standard C++ Bible 2000 Al Stevens IDG
标准C++宝典,林丽闽等 译,766页
[Eckel2000] Thinking in C++[第二版翻译不大好,建议看原版]
Thinking in C++ 2/e Bruce Eckel 2000 1470 pages Prentice Hall
C++ 编程思想,刘宗田等 译,420页
[Lippman98] C++Primer[有点C++基础再看,强烈推荐!]
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,Special Editoin,by BjarneStroustrup
Addison Wesley Longman,2000,1017 pages
C++程序语言经典本,裘宗燕 译,机械工业出版社 1999
[ANSI C++] C++规格书 1998.9.1PDF格式
ANSI C++ 1996 Draft

层级二:专家经验(C++/OOP)
[Meyers96] More Effective C++ [不错]
More Effective C++,by Scott Meyers,AddisonWesley,1996,318pages
More Effective C++中文版,侯俊杰,培生 2000. 318页
[Meyers98] Effective C++[推荐]
Effective C++,Second Edition,by Scott Meyers,Addison WesleyLongman,1998.256pages
Effective C++ 2/e 中文版,侯俊杰,培生 2000.256页
[Sutter99] Exceptional C++[不错]
Exceptional C++,by Herb Sutter,Addison WesleyLongman,2000.208pages
Exceptional C++中文版,侯俊杰,培生 2000.248页
[Sutter2001]More ExceptionalC++
More Exceptional C++ by Herb Sutter,Addison WesleyLongman,2001.
层级三:底层机制(C++ ObjectModel)
[Ellis90] The Annotated C++ Reference Manual
The Annotated C++ Reference Manual,by Margaret A.Ellis and BjarneStroustrup
Addison Wesley Longman,1990,447 pages.
[Lippman96] Inside the C++Object Model [good]
Inside the C++ Object Model,by Stanley Lippman,Addison WesleyLongman,1996,280pages
深度探索C++物件模型,侯俊杰 译

层级四:设计观念的复用(C++/Patterns)
[Gamma95] Design Patterns:Elements of Reusable Object OrientedSoftware, [强烈推荐]
by Erich Gamma,Richard Helm,Ralph Johnson,and JohnVlissides,Addison Wesley,1995.395pages
设计模式,李英军等译,机械工业出版社,2000.254页
[Alex2001]Modern C++ Design:Generic Programming and Design Patterns Applied [比较深奥]
by AndreiAlexandrescu,Addison-Wesley,2001,352Paper

Genericity/STL系列:
第一个境界是使用STL:
[Josuttis99]:The C++ Standard Library -A Tutorial and Reference,byNicolai M.Josuttis,
Addison Wesley 1999.799pages
中文版,侯捷译 [据说还能够]
第二个境界是了解泛型技术的内涵与STL的学理:
[Austern98]:Generic Programming and the STL -Using and Extendingthe C++ Standard
Template library,by Matthew H.Austern,Addison Wesley1998.548page

第三个境界是扩充STL:
[Stepanov2001]:C++ Standard Template Library byP.J.Plauger,Alexander A.Stepanov,
Meng Lee,David R.Musser,Prentice Hall 2001
这些就是你应该看的书,若是你想成为高手。
固然,由于不少书的内容会有所重叠,因此不是每本都必看的。在每一个层次里看1~2本就差很少了,固然,有时间多看几本有利无弊
《C++ Primer》
最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)
适合有丰富C经验,缺少C++经验的。不过我我的一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。

《The C++ Programming Language》/《C++程序设计语言》
最新版本:第三版特别版
简称TC++PL,有其余语言的丰富经验的。(也有人简称之为“TCPL”,但需与另外一本《The C ProgrammerLanguage》区分开来)c++

《Essential C++》
《Accelerated C++》
这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,彻底值得推荐。程序员

以上几本书都有相应的中文版,并且翻译的质量都不错。上面的书未必都须要读一遍,但不管如何,TC++PL是应该阅读的。
(二)进阶A:
这个路线侧重于语言自己算法

《Effective C++》
最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)
简称EC。C++程序员必读!不少时候,咱们说C++圣经不是指TC++PL,而是这一本。《The PragmaticProgrammer》一书中写到:“一旦你发现本身要参与C++项目的开发,赶快跑(不要走)到书店去购买ScottMayer的《Effective C++》,可能还要《More Effective C++》”。编程

《C++ Coding Standards: 101 Rules, Guidelines, and BestPractices》/《C++ 编程规范》
我的认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里获得了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的惟一缺陷就是对一个新手而言,关于“为何这么作”的问题,解释的不够。
个人见解是:若是你不理解其中的条款,记忆,而且照作;若是你理解其中的条款,我猜你必定会赞成书中的观点。我认为这本书中的内容至少在2009年之前都不会过期,人们将广为传诵它制定的101条戒律。
还不知道他的简称,也许“101”会成为一个候选者?windows

提到《Effective C++》,那么另外三本书一一浮出水面:
《More Effective C++》
《Exceptional C++》
《More Exceptional C++》。
新书《Exceptional C++ Style》也是值得一看的好书。
上述几本书,一本也不该该放过。
我的建议上述书籍按顺序阅读。而且,在未来反复阅读这几本书。
(三)进阶B:
这个路线侧重于程序库。设计模式

《The C++ Standard Library》/《C++标准程序库—自修教程与参考手册》
据说过STL吗?这本书会教你最基本的,也是最重要的STL的使用。这本书,应该是必读的。网络

《Effective STL》
会使用STL还不够,还必须知道何时选择什么STL组件,这是STL使用的必读书。数据结构

《Generic Programming and the STL: Using and Extending the C++Standard Template Library》/《泛型编程与STL》。
这本书理论性较强,可是真的很严谨,并且并非很是难懂。理解其中对于Concept的解释,将是很是重要的。框架

《C++ STL》
这不是讲述使用程序库的,而是讲述程序库实现原理的。肠胃很差的,须要慢慢吸取。

这个路线的书,仍然是建议按顺序阅读。
进阶A、进阶B两个路线应该是能够并行的。
其余进阶参考书
提出这些参考书,只是避免争议,也为开阔视野,笔者并未曾彻底读过全部的。

《Thinking in C++》/《C++编程思想》
这本书及其中文版传言好坏都有,没有认真看过,不作评价,若是确有兴趣,不妨尝试一下该书。

如下几本书基本上涉及的都是语言自己,大致上能够按照如下的顺序阅读。

《C++必知必会》
若是早一年,这本书将是重量级的,然而它被101和《Exceptional C++ Style》盖过一头。

《C++ Gotchas: Avoiding Common Problems in Coding andDesign》/《C++程序设计陷阱》
这又是一本我不曾读过,并且广受好评的书。

《STL 源码剖析》
这本书我刚到手,就被人"借"走,以致于到如今也没有看过。看过这本书的朋友,能够给一个合适的评价。

高级:
《The Design and Evolution of C++》/《C++语方的设计和演化》
简称D&E,内容并不艰深,Bjarne的书,仅此,就值得一读。
前段时间,互动网曾8块一本(人民币)贱卖此书,如今好像没了。

《Inside The C++ Object Model》/《深度探索C++对象模型》
C程序员读后必定会以为C++原来并不神秘。

《C++ Template》
在阅读STL、Boost或者Loki的源代码以前,请仔细阅读本书,它能够减轻一些阅读的烦恼。这本书是讨论C++模版的权威。

《Modern C++ Design Generic Programming and Design PatternsApplied》/《C++设计新思惟——泛型编程与设计模式之应用》
简称MCD。在阅读MCD以前,建议先阅读一下《C++ Template》。

《对象揭秘:Java、Eiffel和C++》
你对C++不满吗?这本书能够部分地帮你完成抱怨的目标。也许它还可让你不迷信C++。

最后,一份C++标准文档也是应该加以咀嚼的。
还有一些书籍,并不能简单的归于C++,也难以在纯粹的书本学习中加以掌握。《DesignPatterns》/《设计模式》一书就归于此类。

全部上述的书籍,要么谈论C++语言自己,要么谈论STL的,要么兼而有之(固然严格讲STL也是C++语言很是重要的一部分)。偶尔,某些书中条目也会涉及实际工程。这些书并非C++软件开发的所有,可是他们很重要。阅读这些书,未必须要化费太多的精力,有时候是会困难,但也有时候会很快速。 最后,编程语言并不是计算机科学技术的所有,尤为对于在校的学生来讲,打好基础、开阔视野都是很是重要的。