在 B 站找 C++自学路线,有的 UP 主包括 01 星球等,推荐书籍《 C++ Primer Plus 》。我买回来上下两册,巨厚。 上册目前看了两百页。
我发现这书的槽点有两点: 第一点是书中明确说对于初学者不需要 C 语言基础,或者其它语言基础。但是它一再提及其它语言(有些是没有见过的语言),甚至大篇幅讲 C 语言语法,示例里 C 语言和 C++混用,看了之后合上书顿时分不清哪个是 C 的,哪个是 C++的。对于没 C 语言基础的人来说,尤其痛苦。
第二点是重点的地方不讲深,几句话带过去了,而不重要的地方废话真是多。
当时 B 站的人推荐理由是 C++ Primer 更深,不适合初学者,推荐 C++ Primer Plus 。
后悔当时没有在外网去收集这两本书的不同之处,外网骂后者是垃圾书籍的可多了。。。
这两本书完全不是同一级别,Primer 更好,Plus 是 shit!
就吐槽一下,看完还是要看完的。
![]() |
1
wuxinling 5 天前
如果不是明确的有需要用 C++的开发需求的话,新手用 python 入门吧,省事一点。
|
2
wanmyj 5 天前 ![]() LZ 是非理工科的底子吗?你的这句:对于没 C 语言基础的人来说,尤其痛苦 --- 一般理工科的基础课里要么有一门 C 语言的课程,要么有一门 C++语言课程。无论上过哪一门,都能快速区分出一段代码里有没有 C++的元素。这里不说“快速区分出一段代码里有没有 C 的元素”,是因为 C++的编译器是兼容 C 语言的,C 语言的部分,C++语法都支持,虽然可能编译的结果有差异。
如果你没有理工科的基础,那入门 C++还是略有难度的,最好有个人带,和实际项目一起入手。如果有理工科基础,但看 C++ Primer (Plus)这种书吃力的话,那还是多写 demo 代码,可以快速把语法吃透,毕竟那么多语法,只通过看书,完全看过都是非常痛苦的事,更不要提掌握 |
![]() |
3
sryanyuan 5 天前
plus 还可以吧 我十几年前在学校自学就是学的这本书 我觉得掌握语言还是没什么问题的
|
![]() |
4
coderluan 5 天前 ![]() C++初学者可以不学 C ,但是最好学过其它编程语言,现有个面向过程编程的逻辑再去学面向对象。Plus 本身不至于屎,但是碰瓷 Primer 属于原罪了。
|
![]() |
5
kinkin666 5 天前 ![]() 如果是大一、大二的话,可以先 !!!批判性地!!! 学习学校里发的课本,比如谭浩强的 c++,把上面的实验都做一遍,然后再学 C++ Primer
再之后就可以学 unix 网络编程 和 CSAPP 了,再然后可以看看 muduo (可能有年头了哈 unix 网络编程和 csapp 学了之后内功就挺深厚的了 |
6
zixiangcode 5 天前
推荐个网站: https://www.learncpp.com/ ,很清晰,入门很友好,还会很自然地引入一些 Modern C++ 的特性,作者还会在评论区答疑
|
![]() |
7
zhuanggu 5 天前
不明白为啥要学 C++,我记得那是我十五年前上学刚工作的时候学的,现在除了嵌入式和一些 AI 的得层用的很少了,你是要从事这个方面的工作吗?如果仅仅是学习编程,学个 Python 就足够了
|
8
skallz 5 天前 ![]() @zhuanggu 确实,看各自语言生态库的数量和更新频率就看得出来了,前三的基本都是 py ,js ,java ,很多年雷打不动,很多时候 c++是第二或者第三语言了(就算刚毕业就奔着 c++岗位的之前也应该有学习其他语言),所以 op 提到的 c++教程为什么会有其他编程语言混入 23333
|
9
skallz 5 天前
不过我也非常讨厌 c++教程里面混入 c ,你可以教我用 c++的第三方库解决这个问题,但是别教我用 c 自己去处理,混在一起对入门真的不太友好
|
10
cnbatch 5 天前 ![]() 偏向阅读书籍的话,如果有其他编程语言的基础,那么可以过一遍 C++之父的 A Tour of C++(中文版叫《 C++之旅》),时间足够的话还可以看看他的 The C++ Programming Language (中文版叫做《 C++程序设计语言》,电商平台查找时注意看作者栏,同名书籍过多)
更推荐的是楼上提供的 learncpp 网站,内容新得多 |
![]() |
11
LotusChuan 5 天前 ![]() 是的,学 C++看书没啥用,原因是 C++作为较为底层的语言对更底层抽象得并不好,它把这些底层问题都抛给开发者。学会基础语法 crud 很简单,但是如果你需要接触一些特性就会发现各种书、文档、教程都在若无其事地引入底层细节,这就是底层抽象不好的体现。
我学 C++用的 C++ Primer ,现在回头看来一是效率低下,二是讲的很浅,三是现在 C++ 11 已经过时了。 如果你计算机基础不行,而且非学 C++不可,那最好是找个国外公开课刷 lab 把计算机基础补了,主要是操作系统。一般这种课用的是纯 C ,理解纯 C 写法后再看 C++相关特性就会理解为什么这么设计。 如果你本身有计算机基础,直接去网上搜 C++的编程约定,按最佳实践来写。不要沉溺于某个特性,它可能毫无作用,可能在以后的标准中被替代,最重要的是你的同事看不懂。 最后 C++的现状挺尬的,岗位只把它当成工具,有价值的是具体的业务,也就是其实学点基础语法就能干了,显得 C++那些特性很多余。这种现状会让你感觉很割裂,上班写的是 for 嵌套,论坛却在讨论 concept 。 |
![]() |
12
BALKIN 5 天前
Primer Plus 我觉得作为入门书挺可以了。Primer 是一章把所有 C++基础特性讲完,第二章开始就开始讲各种 c++11 标准相关的。C++这门语言历史太长各种杂七杂八特性和历史遗留问题太多,楼主不需要太心急。
|
13
daqingzi 5 天前
为什么不去图书馆借,图书馆老多了
|
14
letianqiu 5 天前
C++ Primer Plus 是可以作为编程零基础的人学的,C++ Primer 是给有编程经验的人看的。
|
15
lvlongxiang199 5 天前 ![]() 有编程经验的话, 可以看 a tour of cpp 及 cs106L
|
16
lvlongxiang199 5 天前
@lvlongxiang199 主要介绍了 modern cpp (cpp11+
|
![]() |
17
araraloren 5 天前
大部分书籍都需要你有基本的知识,别听他们胡扯。。
|
![]() |
18
Lhcfl 5 天前
确实被坑了,拿 C++ Primer Plus 入门有点太中式高等教育了的感觉了,虽然我也没有能推荐的更好的书
|
![]() |
19
Amose2024 OP 谢谢大家回复。我并非没有编程经验,C 语言很久前学过,忘光了,Java, Python, Ruby, Js 都有熟悉过,有的还做过项目。我的直属 Leader 希望部门成员每年学习一门新语言,我选了 C++。公司也有 C++项目,只是我没接触过。
C++有难度,想挑战一下。也有部分人选择学习 Rust 。公司氛围非常友好,开发也不紧张,每周有半天时间让大家自由学习。 Plus 扯什么 FORTRAN, BASIC 之类的语言,然后把 C 混合进来讲,显得作者要么是卖弄,要么就不是给学编程的人看的。 看楼上的指教,learncpp 网站、A Tour of C++、The C++ Programming Language 、cs106L ,值得参考。 |
20
YsHaNg 5 天前
我觉得直接看 cppreference.com 就好了啊
|
21
gumayusi 4 天前
这都什么年代的书了,不如《学习 C++20 》。以前的书经常串来串去的,比如《 Java 核心编程》到处都在讲 C++,Java GUI 都死了多少年了还留着占页数。
|
![]() |
22
slack 2 天前 via Android
C++实际上是一门充满各种各种“方言”的编程语言,MSVC 和 GCC 、LLVM 也是各有各做,你真按照书上写的去做会过不了编译。你敢信,某个小版本 VS 更新后你写的代码就失效了,嗯是的傻逼微软就是如此任性。
|