曾经写过 7~8 年的 C++,但最近十年没有写了。怎么捡起来? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazoox
V2EX    C++

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

  •  
  •   yazoox 2024-03-16 11:09:48 +08:00 3277 次点击
    这是一个创建于 572 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    PIC_20240316001.jpg

    23 条回复
    araraloren
        1
    araraloren  
       2024-03-16 11:50:25 +08:00   1
    别捡了,容易伤到膝盖
    crayygy
        2
    crayygy  
       2024-03-16 12:10:42 +08:00
    C++ 这些年也就 C++ 17 和 C++ 20 这两个稍微新点儿的东西,大部分公司估计都还没上 20 呢,看 17 就差不多了
    https://en.cppreference.com/w/cpp/17
    https://en.cppreference.com/w/cpp/20
    ugpu
        3
    ugpu  
       2024-03-16 16:28:56 +08:00
    别用 C++了 淘汰的东西 这边建议 Rust
    ccpp132
        4
    ccpp132  
       2024-03-16 19:15:19 +08:00
    或者看这个,https://www.modernescpp.com/index.php/table-of-content/
    讲道理 C++新东西随便看看就行了。看了多少平时用多少,没多少人能全部掌握
    vvhh2002
        5
    vvhh2002  
       2024-03-16 23:22:57 +08:00
    用手!
    nealot
        6
    nealot  
       2024-03-17 07:12:21 +08:00 via Android
    Aoyu
       7
    Aoyu  
       2024-03-17 16:55:57 +08:00
    推荐《 C++20 高级编程(第 5 版)》。今年 2 月份刚出了第 6 版。
    yazoox
        8
    yazoox  
    OP
       2024-03-18 09:03:31 +08:00
    @crayygy @ccpp132 @Aoyu 好的,谢谢大家!我去瞅瞅。
    agagega
        9
    agagega  
       2024-03-18 20:38:43 +08:00
    假定你知道一点 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  
       2024-03-22 02:04:49 +08:00 via Android
    C++11 基本够用,C++17 再看一点就行了。其实我觉得没必要掌握高深技巧,应对工作就行。
    slideclick
        11
    slideclick  
       2024-03-22 16:49:40 +08:00
    歪个楼,你的经历适合转全栈,c#
    RYS
        12
    RYS  
       2024-03-25 19:30:54 +08:00
    @ugpu 为什么 C++被淘汰了哦。
    ugpu
        13
    ugpu  
       2024-03-26 09:07:47 +08:00   1
    @RYS 极高的开发成本 维护成本
    底层有 C & 汇编 面向对象用它没啥意义 面向对象有 C# 高阶安全的有 Rust.
    现在用 C++的都是为了弄以前的老系统 维护.
    slideclick
        14
    slideclick  
       2024-03-27 11:12:33 +08:00
    @ugpu 知乎有个叫 韦一笑的在这里详细了 c+缺点

    "纯 C 语言的工作有前(钱)景吗?"
    ugpu
        15
    ugpu  
       2024-03-27 11:44:53 +08:00
    @slideclick 不应该拉扯某某人评论了 发表了.

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

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

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

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

    这是技术的必然.

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

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

    真够复杂了,劝退了楼主么
    jxie
        23
    jxie  
       304 天前
    @ugpu rust 基本就没工作啊. c++好歹各大厂还不少.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5738 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 02:49 PVG 10:49 LAX 19:49 JFK 22:49
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86