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

曾经写过 7~8 年的 C++,但最近十年没有写了。怎么捡起来?

  •  
  •   yazoox · 42 天前 · 1374 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,大概 2014 年之前,一直都是写 C++的(还有 C#),在 Windows 平台,大概写了 7~8 年。

    后来公司组织架构调整,转管理了。又过了 5~6 年,组织架构又调整,我又回来写代码了。但是是做前端,就是 Javascript/Typescript, React, Redux/Saga ,那一套!

    经济形势不好,去年底公司裁员一波。虽然不知道下次什么时候裁员,但得早做准备吧。大家都知道前端太卷了,不想卷前端,C++是不是会好一点。

    那么问题来了,怎么把 C++捡回来?好像不论是 C++还是 C#,过去这十年,变化都挺大的...... 什么 lambda ,什么协程,等等

    上京东搜索了一下,这么多大部头的书?难道得买一本 C++20 ,从头啃么?

    PIC_20240316001.jpg

    22 条回复
    araraloren
        1
    araraloren  
       42 天前   ❤️ 1
    别捡了,容易伤到膝盖
    crayygy
        2
    crayygy  
       42 天前
    C++ 这些年也就 C++ 17 和 C++ 20 这两个稍微新点儿的东西,大部分公司估计都还没上 20 呢,看 17 就差不多了
    https://en.cppreference.com/w/cpp/17
    https://en.cppreference.com/w/cpp/20
    ugpu
        3
    ugpu  
       42 天前
    别用 C++了 淘汰的东西 这边建议 Rust
    ccpp132
        4
    ccpp132  
       42 天前
    或者看这个,https://www.modernescpp.com/index.php/table-of-content/
    讲道理 C++新东西随便看看就行了。看了多少平时用多少,没多少人能全部掌握
    vvhh2002
        5
    vvhh2002  
       41 天前
    用手!
    nealot
        6
    nealot  
       41 天前 via Android
    Aoyu
        7
    Aoyu  
       41 天前
    推荐《 C++20 高级编程(第 5 版)》。今年 2 月份刚出了第 6 版。
    yazoox
        8
    yazoox  
    OP
       40 天前
    @crayygy @ccpp132 @Aoyu 好的,谢谢大家!我去瞅瞅。
    agagega
        9
    agagega  
       40 天前
    假定你知道一点 C++11 (不知道也没关系,其实各种标准添加的东西虽多,但都是有内在逻辑的,C++也不是因为后面这些标准把它搞复杂的,相反这些标准反而是把原来复杂的问题给简化)

    14:围绕 11 的若干修复,比如可变参数模板、lambda 参数类型可以为 auto ,返回值 auto ,给库补上了几个之前没来得及进的函数比如 make_unique

    17:模板元编程大加强,和模板相关的地方可以用 constexpr 了,语法糖有 if constexpr ,if 和 switch 括号里可以初始化变量,可以用结构化绑定初始化变量,库多了 string_view 、any 、variant 、optional

    20:新的基于模块而不是头文件的编译模型(听着很美好但各家实现都不一样,而且未必能真的提高编译速度),range ( STL 给 iterator 的接口用起来确实很反人类),concept (让模板更像 interface 一点,但想要在对象里实现静态 interface 还得 CRTP ),coroutine (先玩玩 boost ASIO 吧)
    flx413
        10
    flx413  
       36 天前 via Android
    C++11 基本够用,C++17 再看一点就行了。其实我觉得没必要掌握高深技巧,应对工作就行。
    slideclick
        11
    slideclick  
       36 天前
    歪个楼,你的经历适合转全栈,c#
    RYS
        12
    RYS  
       33 天前
    @ugpu 为什么 C++被淘汰了哦。
    ugpu
        13
    ugpu  
       32 天前   ❤️ 1
    @RYS 极高的开发成本 维护成本
    底层有 C & 汇编 面向对象用它没啥意义 面向对象有 C# 高阶安全的有 Rust.
    现在用 C++的都是为了弄以前的老系统 维护.
    slideclick
        14
    slideclick  
       31 天前
    @ugpu 知乎有个叫 韦一笑的在这里详细了 c+缺点

    "纯 C 语言的工作有前(钱)景吗?"
    ugpu
        15
    ugpu  
       31 天前
    @slideclick 不应该拉扯某某人评论了 发表了.

    至于你说的前景, 任何语言都一样. 针对业务/用户产生了差异性. 和用什么语言无关.
    技术角度来说 C++的壁垒 场景在那 不用说 和 C++本身关系不大 更多的是数学 比如内核 数据库 . 大多数程序员应用场景也就 Java C# Rust 安全,高效, 成本低廉.
    ugpu
        16
    ugpu  
       31 天前
    @slideclick 或者我在直接点 我当了 7 年 C++码农.
    在现在这个行情 业务范围内 C++ 就是一坨屎.
    RYS
        17
    RYS  
       29 天前
    那 C#呢?应该比 C++的情况要好一点吧。
    求助大佬
    最近有两家公司签我,一个是写 Vue ,一个是写 C#。哪个未来前景好一点哦?
    RYS
        18
    RYS  
       29 天前
    @ugpu 那 C#呢?应该比 C++的情况要好一点吧。
    求助大佬
    最近有两家公司签我,一个是写 Vue ,一个是写 C#。哪个未来前景好一点哦?
    ugpu
        19
    ugpu  
       29 天前
    @RYS 谢邀.
    对你来说都一样 学好一门 C 语言就行
    个人意见: 没有技术上的狂热 科学上的追求. 哪个公司大 稳定 钱(考虑 加班) 福利 进行打分 选择分数高的 但是 Vue 和 C# 前后端? 还是一个是 web 一个是 WPF 类的? C#拓展性强 vue 难搞? 如果差距不大 我肯定选 C# 如果还有其他的就更好
    slideclick
        20
    slideclick  
       17 天前
    @ugpu 我最近也在找工作,总结了一下,不画图了,现在的软件主流开发,是远离传统 OS,远离传统 OS,远离传统 OS,

    比如前端是浏览器里,甚至小程序.后端是 cloud 提供的各种 redis mq 等等. 其实这个老程序员也经历过,比如 mis 开发后端就是个 sql

    而 cpp 老程序员,除了语言,其它的都是老 os,线程什么的.

    比如你看招 java 程序员,大部分要求懂 sql, kafaca,mq 等等.少量要求多线程的也是 jvm 多线程

    这是技术的必然.

    还在用 cpp 的是嵌入式,工业,医疗仪器等等---这些岗位很多理工的硕士就能干不用科班--而且我国落后的教育基本上学生都接触过 c++虽然水平很一般. 偏门的高性能计算图形视频游戏量化这些门槛高
    slideclick
        21
    slideclick  
       17 天前
    @ugpu "安全,高效, 成本低廉"
    我贼喜欢 golang 这个语言,真是 21 世纪的 c
    因为它简单,门槛低,工资 1-2 万吧,甚至硕士实习生也很多就能干

    国内不少大厂在狂招 golang 外包,就是当民工砌砖,golang 的优点是大家的砖都一样,连缩进都一样
    slideclick
        22
    slideclick  
       17 天前
    @agagega #14,谢谢,学习了,一下,C++11 没有 make_unique, c++14 的如果不用 make_unique 有时候会内存泄露,直到 c++17 才不漏也就是不是必须 make_unique 了

    真够复杂了,劝退了楼主么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2935 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:03 · PVG 21:03 · LAX 06:03 · JFK 09:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.