V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Amose2024
V2EX  ›  C++

C++入门书籍,我是不是被坑了?

  •  
  •   Amose2024 · 5 天前 · 1941 次点击

    在 B 站找 C++自学路线,有的 UP 主包括 01 星球等,推荐书籍《 C++ Primer Plus 》。我买回来上下两册,巨厚。 上册目前看了两百页。

    我发现这书的槽点有两点: 第一点是书中明确说对于初学者不需要 C 语言基础,或者其它语言基础。但是它一再提及其它语言(有些是没有见过的语言),甚至大篇幅讲 C 语言语法,示例里 C 语言和 C++混用,看了之后合上书顿时分不清哪个是 C 的,哪个是 C++的。对于没 C 语言基础的人来说,尤其痛苦。

    第二点是重点的地方不讲深,几句话带过去了,而不重要的地方废话真是多。

    当时 B 站的人推荐理由是 C++ Primer 更深,不适合初学者,推荐 C++ Primer Plus 。

    后悔当时没有在外网去收集这两本书的不同之处,外网骂后者是垃圾书籍的可多了。。。

    这两本书完全不是同一级别,Primer 更好,Plus 是 shit!

    就吐槽一下,看完还是要看完的。

    22 条回复    2025-02-10 12:37:48 +08:00
    wuxinling
        1
    wuxinling  
       5 天前
    如果不是明确的有需要用 C++的开发需求的话,新手用 python 入门吧,省事一点。
    wanmyj
        2
    wanmyj  
       5 天前   ❤️ 1
    LZ 是非理工科的底子吗?你的这句:对于没 C 语言基础的人来说,尤其痛苦 --- 一般理工科的基础课里要么有一门 C 语言的课程,要么有一门 C++语言课程。无论上过哪一门,都能快速区分出一段代码里有没有 C++的元素。这里不说“快速区分出一段代码里有没有 C 的元素”,是因为 C++的编译器是兼容 C 语言的,C 语言的部分,C++语法都支持,虽然可能编译的结果有差异。

    如果你没有理工科的基础,那入门 C++还是略有难度的,最好有个人带,和实际项目一起入手。如果有理工科基础,但看 C++ Primer (Plus)这种书吃力的话,那还是多写 demo 代码,可以快速把语法吃透,毕竟那么多语法,只通过看书,完全看过都是非常痛苦的事,更不要提掌握
    sryanyuan
        3
    sryanyuan  
       5 天前
    plus 还可以吧 我十几年前在学校自学就是学的这本书 我觉得掌握语言还是没什么问题的
    coderluan
        4
    coderluan  
       5 天前   ❤️ 1
    C++初学者可以不学 C ,但是最好学过其它编程语言,现有个面向过程编程的逻辑再去学面向对象。Plus 本身不至于屎,但是碰瓷 Primer 属于原罪了。
    kinkin666
        5
    kinkin666  
       5 天前   ❤️ 2
    如果是大一、大二的话,可以先 !!!批判性地!!! 学习学校里发的课本,比如谭浩强的 c++,把上面的实验都做一遍,然后再学 C++ Primer

    再之后就可以学 unix 网络编程 和 CSAPP 了,再然后可以看看 muduo (可能有年头了哈

    unix 网络编程和 csapp 学了之后内功就挺深厚的了
    zixiangcode
        6
    zixiangcode  
       5 天前
    推荐个网站: https://www.learncpp.com/ ,很清晰,入门很友好,还会很自然地引入一些 Modern C++ 的特性,作者还会在评论区答疑
    zhuanggu
        7
    zhuanggu  
       5 天前
    不明白为啥要学 C++,我记得那是我十五年前上学刚工作的时候学的,现在除了嵌入式和一些 AI 的得层用的很少了,你是要从事这个方面的工作吗?如果仅仅是学习编程,学个 Python 就足够了
    skallz
        8
    skallz  
       5 天前   ❤️ 1
    @zhuanggu 确实,看各自语言生态库的数量和更新频率就看得出来了,前三的基本都是 py ,js ,java ,很多年雷打不动,很多时候 c++是第二或者第三语言了(就算刚毕业就奔着 c++岗位的之前也应该有学习其他语言),所以 op 提到的 c++教程为什么会有其他编程语言混入 23333
    skallz
        9
    skallz  
       5 天前
    不过我也非常讨厌 c++教程里面混入 c ,你可以教我用 c++的第三方库解决这个问题,但是别教我用 c 自己去处理,混在一起对入门真的不太友好
    cnbatch
        10
    cnbatch  
       5 天前   ❤️ 1
    偏向阅读书籍的话,如果有其他编程语言的基础,那么可以过一遍 C++之父的 A Tour of C++(中文版叫《 C++之旅》),时间足够的话还可以看看他的 The C++ Programming Language (中文版叫做《 C++程序设计语言》,电商平台查找时注意看作者栏,同名书籍过多)

    更推荐的是楼上提供的 learncpp 网站,内容新得多
    LotusChuan
        11
    LotusChuan  
       5 天前   ❤️ 1
    是的,学 C++看书没啥用,原因是 C++作为较为底层的语言对更底层抽象得并不好,它把这些底层问题都抛给开发者。学会基础语法 crud 很简单,但是如果你需要接触一些特性就会发现各种书、文档、教程都在若无其事地引入底层细节,这就是底层抽象不好的体现。

    我学 C++用的 C++ Primer ,现在回头看来一是效率低下,二是讲的很浅,三是现在 C++ 11 已经过时了。

    如果你计算机基础不行,而且非学 C++不可,那最好是找个国外公开课刷 lab 把计算机基础补了,主要是操作系统。一般这种课用的是纯 C ,理解纯 C 写法后再看 C++相关特性就会理解为什么这么设计。

    如果你本身有计算机基础,直接去网上搜 C++的编程约定,按最佳实践来写。不要沉溺于某个特性,它可能毫无作用,可能在以后的标准中被替代,最重要的是你的同事看不懂。

    最后 C++的现状挺尬的,岗位只把它当成工具,有价值的是具体的业务,也就是其实学点基础语法就能干了,显得 C++那些特性很多余。这种现状会让你感觉很割裂,上班写的是 for 嵌套,论坛却在讨论 concept 。
    BALKIN
        12
    BALKIN  
       5 天前
    Primer Plus 我觉得作为入门书挺可以了。Primer 是一章把所有 C++基础特性讲完,第二章开始就开始讲各种 c++11 标准相关的。C++这门语言历史太长各种杂七杂八特性和历史遗留问题太多,楼主不需要太心急。
    daqingzi
        13
    daqingzi  
       5 天前
    为什么不去图书馆借,图书馆老多了
    letianqiu
        14
    letianqiu  
       5 天前
    C++ Primer Plus 是可以作为编程零基础的人学的,C++ Primer 是给有编程经验的人看的。
    lvlongxiang199
        15
    lvlongxiang199  
       5 天前   ❤️ 1
    有编程经验的话, 可以看 a tour of cpp 及 cs106L
    lvlongxiang199
        16
    lvlongxiang199  
       5 天前
    @lvlongxiang199 主要介绍了 modern cpp (cpp11+
    araraloren
        17
    araraloren  
       5 天前
    大部分书籍都需要你有基本的知识,别听他们胡扯。。
    Lhcfl
        18
    Lhcfl  
       5 天前
    确实被坑了,拿 C++ Primer Plus 入门有点太中式高等教育了的感觉了,虽然我也没有能推荐的更好的书
    Amose2024
        19
    Amose2024  
    OP
       5 天前
    谢谢大家回复。我并非没有编程经验,C 语言很久前学过,忘光了,Java, Python, Ruby, Js 都有熟悉过,有的还做过项目。我的直属 Leader 希望部门成员每年学习一门新语言,我选了 C++。公司也有 C++项目,只是我没接触过。
    C++有难度,想挑战一下。也有部分人选择学习 Rust 。公司氛围非常友好,开发也不紧张,每周有半天时间让大家自由学习。
    Plus 扯什么 FORTRAN, BASIC 之类的语言,然后把 C 混合进来讲,显得作者要么是卖弄,要么就不是给学编程的人看的。

    看楼上的指教,learncpp 网站、A Tour of C++、The C++ Programming Language 、cs106L ,值得参考。
    YsHaNg
        20
    YsHaNg  
       5 天前
    我觉得直接看 cppreference.com 就好了啊
    gumayusi
        21
    gumayusi  
       4 天前
    这都什么年代的书了,不如《学习 C++20 》。以前的书经常串来串去的,比如《 Java 核心编程》到处都在讲 C++,Java GUI 都死了多少年了还留着占页数。
    slack
        22
    slack  
       2 天前 via Android
    C++实际上是一门充满各种各种“方言”的编程语言,MSVC 和 GCC 、LLVM 也是各有各做,你真按照书上写的去做会过不了编译。你敢信,某个小版本 VS 更新后你写的代码就失效了,嗯是的傻逼微软就是如此任性。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   981 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 22:49 · PVG 06:49 · LAX 14:49 · JFK 17:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.