一、语言入门:
《C++ Primer》
最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中)
适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。
《The C++ Programming Language》/《C++程序设计语言》
最新版本:第三版特别版
简称TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The C Programmer Language》区分开来)
《Essential C++》
《Accelerated C++》
这两本薄一些,都是不错的选择。《Accelerated C++》本人没有读过,从各方面的评价来看,完全值得推荐。
以上几本书都有相应的中文版,而且翻译的质量都不错。上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
二、进阶A:
这个路线侧重于语言本身
《Effective C++》
最新版本:第二版(第三版国外已上架,国内一些网上书店也在预订中)
简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》
个人认为此书应为C++程序员必备的案头书。几乎Effective系列和Exceptional系列都在这里得到了总结。最新的模版、异常的业界经验都在这里的到了体现。可能的唯一缺陷就是对一个新手而言,关于“为什么这么做”的问题,解释的不够。
我的看法是:如果你不理解其中的条款,记忆,并且照做;如果你理解其中的条款,我猜你一定会同意书中的观点。我认为这本书中的内容至少在2009年以前都不会过时,人们将广为传诵它制定的101条戒律。
还不知道他的简称,也许“101”会成为一个候选者?
提到《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 and Design》/《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 Patterns Applied》/《C++设计新思维——泛型编程与设计模式之应用》
简称MCD。在阅读MCD之前,建议先阅读一下《C++ Template》。
《对象揭秘:Java、Eiffel和C++》
你对C++不满吗?这本书可以部分地帮你完成抱怨的目标。也许它还可以让你不迷信C++。
最后,一份C++标准文档也是应该加以咀嚼的。
还有一些书籍,并不能简单的归于C++,也难以在纯粹的书本学习中加以掌握。《Design Patterns》/《设计模式》一书就归于此类。
所有上述的书籍,要么谈论C++语言本身,要么谈论STL的,要么兼而有之(当然严格讲STL也是C++语言非常重要的一部分)。偶尔,某些书中条目也会涉及实际工程。这些书并不是C++软件开发的全部,但是他们很重要。阅读这些书,未必需要化费太多的精力,有时候是会困难,但也有时候会很快速。
最后,编程语言并非计算机科学技术的全部,尤其对于在校的学生来说,打好基础、开阔视野都是非常重要的。
1. 《C++ Primer》Lippman写的,经典中的经典,C++入门的宝典,读完这本书,基本语法过关,部分技巧掌握。
2.《The C++ programming language》C++的创始人Bjarne Stroustrup写的,这本书的权威性毋庸置疑,而且这里面讲到了一些比较底层的东西,如果你看过了《C++ Primer》的话,这本书可以跳着看,懂的就跳过。
3.《Effective C++》 Scott Meyers顶级大师用活泼幽默的语言写的书,这本书中讲到了许多应该注意的问题,这是十分值得购买的书。(Lippman曾把程序员分为看过effective c++的和没看过的两类。由此可见此书的重要性)
4.《More Effective C++》上书的姊妹篇,这本书里讲到了许多关键性的技术,对提高程序的效率是非常有帮助的。
5.《Advanced C++》这是一本神奇的书,里面讲到了许多连C++设计者都没想到的妙法,解决了许多看似不可能解决的问题。Scott Meyers曾隆重推荐过的书。
6.《Inside the C++ Objects Model》又是Lippman的大作!这本书讲到了他在开发第一个C++编译器时的许多想法,彻底解析了C++底层机制是如何实现对象模型的,看过这本书,你对C++的了解会有质的飞跃!从这刻起,你有权力说你是一个C++程序员了!
光学C++语言基本上看完上述的书就是高手了,其他经验要在实践中累积,这是我个人的经验。另外,你学了C++还要开发程序,开发软件,无疑要使用MFC之类的东西
《API Programming》和《MFC Windows 程序设计》两书值得一看。这两本书能迅速提高你的实践水平。
【学习基本路线图】
顺序:基本原理(进制转换啊什么的) --> C(学习能力强的可以从C++开始) --> API --> C++语法 --> 操作系统原理 --> MFC --> 数据库 -- 数据结构 -- 硬件 -- 领域编程(根据你自己以后的行业特点的专业性编程)
最后从数据库开始可以交叉进行。
【学习方法】
1.基本原理:
这个部分主要理解就行了,至于是不是非要记住十六进制怎么转换二进制啊,CPU结构图啊什么的,完全没有必要。记住主要是理解,记忆并没有什么意 义,有些人略过这些一样能学会C++,之后回头再详细学习效果会更好,更开始就大概知道有这个回事就行了。
推荐书籍:《微机原理与接**术》作者:牟琦 这本书看到第23页就行了,知道进制转换的大概方法和有这么一回事就行了。
《汇编语言》第二版 作者:王爽(只看第一,二,三章) 这是第一本让我觉得过人也能写出好书的书,相当经典,汇编领域过人写的出还真的是不错,一本80X86领域的就是这本,WIN32的就是罗云彬的那本 《WIN32汇编程序设计》第三版,现在好像出第四版了,叫什么玉拙成器什么什么的。
2.C
既然我们是学习C++,那么C就是路过的,C是一门面向过程的语言(哲学说法,现在你还不需要懂,不要怕呵呵),而C++是一门面向过程的语言(也 是哲学呵呵,不懂先别着急,这个要慢慢去领悟),说白了,C++是C的一个超集,对C做了一些有意义的扩充,这个说多了暂时你还不明白,总之这个阶段的学 习有些人喜欢从C开始,有些人喜欢直接从C++开始,其实多半都是一样的,学了C以后你学起来C++更加简单,因为很多东西都是一样的,著名的《C++ primer plus》就把C++的学习分成了两个部分,C部分和C++部分。
推荐书籍:如果你想快速掌握C和C++的基础语法,那么选择谭浩强的绿本本吧,这本书写的很简陋,快速浏览一下C和C++的基础语法还是可以的,真 正掌握就算了吧。
还有网上不论青红皂白推荐的书下面做一下介绍:
回复最多的无非就是两本: 谭浩强 C 和 K&R C,K&R是C的创始人,他们的书根本不适合新人去看,到不是有多难,他们只是在建立一种标准,而不是一本真正的教程。
个人认为真正想学习C的人,看清楚了,真正想学习C的人啊,不是路过的人,应该看一下《C primer plus》,这本书有些罗嗦,但是讲的很全面,可以当字典使用。
3.API
这部分的话,其实是慢慢积累的,你去Google查一下什么是API就好了,学习Windows原理的时候你会理解到是个什么东西的,大概说起来就 是微软给我们提供了一些封装好了的函数,我们可以调用过来实现一些简单而且常用的功能,比如MessageBox是弹出一个窗口,你只要在他的参数里自己 设定大小啊和现实什么啊就是了。
推荐书籍:MSDN 微软提供的字典式的帮助文档,这个是你积累API什么的最好的老师。
3.C++
重点来了,如果你前面学习了C,那么你现在可以先温习一下C的语法,因为在你没有学习面向对象之前,C和C++的语法是基本一样的,注意是基本,循环 啊,指针啊,数组啊,结构啊,函数啊,+—×/%啊什么的。然后你要开始重要的一步:学习C++自己独有的特性,类啊,封装啊,重载啊,多态啊,继承啊什 么的,这些都是非常重要的,在你日后写Windows程序的时候都是经常用到的知识,并且是必不可少的。
推荐书籍:《C++ primer plus》 第五版中文版 这本书详细到真是有些罗嗦,C++的每一个角落都不放弃,学习的时候不求掌握所有的特性,但是必须去理解,以后你遇到了不懂的或者比较生疏的可以回头来 查,这样学习的才比较扎实。
《C++ primer》第四版 这是C++领域里我读过最经典的书籍之一了,在这本书里,你将震惊于大师的技法和教学角度,你会经常感叹,再感叹。这本书呢,不是你现在学的,而是等自己 写出几个像样的Windows程序以后,再回头来看,你才能有所领悟。
4.操作系统原理
这个其实是学习MFC(下一步要介绍的)必须学习的,如果你用C写过Windows程序,你会对这个了如指掌,但是我们只是学了语法,这部分就必须 去学习,其实很快,我们不必知道的太多,只需要得到必须的就可以了,这部分当年我一天学完的,就是看孙鑫的视频学会的(只看视频第一章就行了,第二章讲C++特性 的你也可以看看,MFC从第三章开始,以后接着看)。
推荐书籍:这里推荐孙鑫的视频,这部视频在《深入详解VC++》这本书的的配套光盘里,非常经典,不可多得的过人讲解的超高水平的视频,看不懂就多 看几遍,我当年看了三遍才看懂(光看是绝对看不懂的,自己跟着写才行)。你只要看第一章就行了。
5.MFC
坚持住,学完这部分你就能写出真正的WIN32应用程序了,MFC呢就是微软把你所需要实现的功能进一步封装起来了(比API),你只需要实现你的功能, 至于程序的框架(最大化按钮啊,关闭按钮啊,边框啊,标题啊,什么的都给你提供好了,不用你自己用API代码实现了),具体的你学完操作系统原理(看完孙鑫的视 频第一章以后才能理解,现在不多说)。
MFC虽然给编程提供了诸多方便,但是无形中给学习却增加了难度,这部分要坚持住,多看几遍孙鑫的视频,好好的去啃才能有收获。
推荐书籍:孙鑫《VC++深入详解》,主要是视频比较著名。
侯先生(台湾)《深入浅出MFC》第二版,这本书很老了,但是依然是MFC的经典,但是是你以后真正拿MFC写出程序了以后,再去看,不然你绝对是看不 懂的,现在不着急看。
6.最后你们都会有自己的想法了,具体我也教不了你们什么了,之后你要设计的领域都写在路线图里了,至于更高级的领域,设计模式什么的,是有一定经验以后再去加深的。
这个时候你要做的,就是还要不断的学习
(一)语言入门:
《C++ Primer (3RD)中文版》Stanley B.Lippman, Josee Lajoie
适合有丰富C经验,缺乏C++经验的。
《The C++ Programming Language》/《C++程序设计语言》Bjarne Stroustrup(c++之父)
简称TC++PL
《The Design and Evolution of C++》Bjarne Stroustrup
简称D&E
TC++PL和D&E是C++语言圣经
《Essential C++》Stanley B. Lippman
《Accelerated C++》
这两本薄一些,都是不错的选择。
上面的书未必都需要读一遍,但无论如何,TC++PL是应该阅读的。
(二)进阶A:
这个路线侧重于语言本身
高效、健壮编程
《Effective C++》
简称EC。C++程序员必读!很多时候,我们说C++圣经不是指TC++PL,而是这一本。《The Pragmatic Programmer》一书中写到:“一旦你发现自己要参与C++项目的开发,赶快跑(不要走)到书店去购买Scott Mayer的《Effective C++》,可能还要《More Effective C++》”。
《C++ Coding Standards: 101 Rules, Guidelines, and Best Practices》/《C++ 编程规范》
提到《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》
这不是讲述使用程序库的,而是讲述程序库实现原理的。肠胃不好的,需要慢慢吸收。
网络编程
《C++网络编程,卷1:运用ACE和模式消除复杂性》,华中科技大学出版社
《C++网络编程,卷2:基于 ACE 和框架的系统化复用》,电子工业出版社
杂项
《C++编程思想(第2版)第1卷:标准C++导引》,机械工业出版社
《C++编程思想(英文版 第2版)》,机械工业出版社
《C++沉思录》,人民邮电出版社
《深度探索C++对象模型》,华中科技大学出版社
《深度探索C++对象模型(影印版)》,中国电力出版社
C++工程领域的最高境界:
《设计模式:可复用面向对象软件的基础》,机械工业出版社
这个路线的书,仍然是建议按顺序阅读。
进阶A、进阶B两个路线应该是可以并行的。
首先是 c++的,我想买这个C ++ Prime 第四版,这本书很多人评论说很好,不知道看过这本书的人觉得怎么样?还有更好的书推荐码?
其次是数据结构的书,我原本想买严蔚敏的,但是听别的朋友说最好是买国外的。
再次是windows编程,这个是sdk编程。不知道《Windows核心编程》适合我不?
最好是MFC编程,这个我已经选了孙鑫的视频了,但是还是缺一本书,不知道 《MFC Windows应用程序设计 》 任哲著这本书如何?《Windows程序设计 第二版》王艳萍的,这本书又如何呢?
最后还有就是一本 《VC++技术内幕第四版》的,这本书什么程度才能看呢?至于《Windows程序设计第五版》电子书我已经有了。
对于初学者,应该从《C++ Primer》第四版、《C++ Primer Plus》(第5版),《C++编程思想》或者《Accelerated C++》开始,当然《C++入门经典》(第3版)或者《C++大学教程(第五版)》也可以考虑,在书店里翻看,根据自己的阅读和学习习惯进行选择好了。唯一的忠告是:不要选择国内自编的入 门教程。在学习的同时,可以将《C++编程规范》和一本巨著放在一旁,阅读对应的相关段落和章节,如果有时间,做对应的习题。掌握基本特性后,可以对照 《C++必知必会》和《C++编程规范》,并试着做一做Exceptional系列中难度较小的题目,检查自己的学习效果。编程实践时可以阅读《C++高 级编程》或者《C++编程思想》中的一些段落,当然,其他比较实用的软件工程书也可以。这期间应该阅读Effective系列,并挑选难度合适的 Exceptional题自测。经过这样的锤炼,你应该已经基础非常扎实,可以步入C++的殿堂了。
相关推荐
C/C++学习路线是一条为编程初学者以及希望深入掌握这两种编程语言的学习者设计的知识进阶路径。该路线覆盖从基础编程概念到高级编程技巧的各个阶段,同时提供了实操项目案例来加深理解和应用。下面详细阐述各阶段的...
黑马程序员C/C++学习路线图大纲中第七阶段的学习是Go语言微服务的学习:主要介绍了C/C++学习路线图的Go语言微服务的学习目标,C/C++学习路线图的Go语言微服务的市场价值,C/C++学习路线图的Go语言微服务的重点知识。...
C/C++学习进阶路线,书籍推荐c++ primer effective C++
这才是你需要的C语言、C++学习路线!自学C语言_C++后台开发详细学习路线梳理
免费获得海量编程学习资料,包含不同技术岗位的相关学习路线以及编程指南,如C/C++后台开发、Java后台开发等; 持续更新各种深入浅出的原创技术专栏以及原创文章,为你剖析计算机底层的奥秘; 这里有来自字节跳动、...
接下来将从几个维度进行介绍:简单理解音视频原理、音视频理论基础、音视频学习路线、媒体协议和音视频发展方向。 一、C++音视频需要掌握哪些技术 1、搞音视频必须有扎实的C/C++开发语言基础、 JNI基础,学会如何...
自学C_C++的书籍推荐(自学C_C++看书路线推荐)(我自己读过的一部分有关C_C++开发相关的书籍)
为有志从事C/C++开发的程序员提供了学习路线,发展方向
### C/C++应用程序转向.NET Framework 的路线图 #### 一、引言 随着技术的发展,很多C/C++程序员面临着向.NET Framework迁移的选择。本文旨在帮助这些程序员了解迁移的原因及过程,以及如何在不放弃现有代码的基础...
腾讯后端T9开发学习路线图,内容路线非常详细。可以作为自身学习参考。 Linux C/C++ 后端开发学习路线。
在这份标题为“小学生C、C++学习路线图-2019-08-24(A)”的文件中,我们可以看到专门为小学生及初一学生设计的C和C++编程语言学习路线。这份文件详细列出了从基础到进阶的各种资源和学习主题,旨在帮助学生们逐步掌握...
这才是你需要的C语言_C++嵌入式开发自学路线!附知识点详细大梳理和自学书籍推荐
【C/C++经典算法PPT资源】是一份专门针对C/C++编程语言的算法教学资料,旨在帮助学习者深入理解并掌握计算机科学中的基础及高级算法。这份资源可能包括了排序、查找、图论、动态规划等多个核心算法主题,对于准备...
【C/C++编写的校园导航系统】是一种使用C或C++编程语言开发的应用程序,它旨在为学生和教职员工提供方便的校园内部导航服务。这个系统可能包含了地图显示、路线规划、地点搜索等功能,旨在优化校园内的移动体验。...
总的来说,【校园游览程序(C/C++)】是综合运用多种计算机科学知识的实践项目,对于学习和提升C/C++编程技能,以及理解软件工程的全生命周期,都是非常有价值的。通过这个项目,开发者可以深入学习到软件设计、数据库...
这是一本C/C++语言应用能力进阶的图书,总结了一个典型的学习者第101个小时开始的学习路线和心得,你值得拥有。 本书内容包括夯实C语言核心基础、提升你的编程功力、积累专业程序员开发经验、理解C++精髓和以C++为...
### C++ 进阶路线详解 #### 一、C++基础知识巩固与提升 在学习C++进阶之前,首先需要确保对C++的基础知识有深入的理解。推荐的书籍包括: - **《C++ Primer》**:这本书是学习C++的重要入门书籍之一,适合初学者...
学习《C/C++算法大全集》不仅能提升编程技能,也能锻炼逻辑思维能力,为解决复杂计算问题打下坚实的基础。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,深化对算法的理解,提高解决实际问题的能力。
下面我们将详细探讨电梯模拟程序的核心算法以及C/C++实现的要点。 一、电梯模型与调度算法 电梯模型通常包括电梯的状态(如静止、上行、下行)、楼层请求、电梯内部乘客等要素。调度算法是决定电梯如何响应楼层...
12. C++基础:虽然标题为C和C++的学习路线,但C++是C语言的超集,具备面向对象的特性,如类、对象、继承和多态等。学习C++应该在掌握C语言的基础上进行。 以上知识点构成了C和C++学习的系统路线图,是编程初学者...