市面上大部分 c++程序员都在 c++98 水平吧? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
slideclick
V2EX    C++

市面上大部分 c++程序员都在 c++98 水平吧?

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

    不是来踢馆的,我老 c++程序员,在学习 c++20

    这话题贴别的论坛没人看

    大部分人宣称会 c++,其实都是 C

    c++98 是什么水平? 就是需要一大片 n 个对象的内存,使用 vector 而不是 new[n] 可是我猜很多面试官的提问都是 delete[]而不是 delete 才能和 new[]配对

    这面试官自己都没有达到 98 水平

    这烂问题就不该问了

    45 条回复
    slideclick
        1
    slideclick  
    OP
       219 天前
    好冷清。。。
    InkStone
        2
    InkStone  
       219 天前
    没觉得。就我看到的项目里,更后面的用得不多,但 C++11 的特性已经用得比较普遍了。

    new 这个关键字极少出现在现在的代码里。
    slideclick
        3
    slideclick  
    OP
       219 天前
    @InkStone 谢谢分享!
    iaiuse
        4
    iaiuse  
       219 天前 via iPhone
    弱弱问下,一般啥系统用它比较多呢
    slideclick
        5
    slideclick  
    OP
       219 天前
    @iaiuse 2 楼权威啊
    Zarhani
        6
    Zarhani  
       219 天前 via Android
    至少也得掌握到 C++17 ,我觉得 C++11 还是缺胳膊少腿,到 C++17 才相对完美
    Zarhani
        7
    Zarhani  
       219 天前 via Android
    至于那种 C++98 或 C 风格的旧式用法,就应该直接禁掉
    slideclick
        8
    slideclick  
    OP
       219 天前
    @Zarhani 我是看远程工作有个招 c++的 20k 上限,底下有个说你这数顶多找个 c++11.

    底下一堆人说 20k 太低了,然后题主找到了人了很快。

    我是有感而发。我在那个帖子发了更多言,点我可以看到
    chashao
        9
    chashao  
       219 天前
    你说的这种应该叫 C with STL 吧,哈哈
    slideclick
        10
    slideclick  
    OP
       219 天前
    @chashao 对呀,达到我说的用法,还没有到 11 呢
    Youkexin
        11
    Youkexin  
       219 天前
    也不至于感觉, 智能指针, lambda 表达式总归都要用的, promise 这种也常用, 这些特性起码 11, 14 起步, 17 应该是比较主流的现在.

    然后 C++不至于才 20k 吧, 资深一点 50k 应该有的吧, 当然也看行业细分领域, 可能游戏行业芯片行业现在起步薪资高一点? 感觉是
    slideclick
        12
    slideclick  
    OP
       219 天前
    @Youkexin 远程工作版,有个招量化的,已经招齐了,要求会英语,5 年经验,c++ ,会 linux 自己去看应该还在帖子 底下一堆人感慨卷 我分析了低工资的原因 15k-20k
    akakcolin
        13
    akakcolin  
       219 天前
    我觉得自己就是 c++98 水平,实际更偏爱纯 C ,反正也不靠 c++找工作
    kandaakihito
        14
    kandaakihito  
       219 天前
    不懂 C++,我只会写 Java 。但是按照我的经验来看,98 不是比 20 要大吗,难道不应该数字越大越牛逼吗?
    所以楼主的意思是,会用 C++98 的比 C++20 的要牛逼?
    slideclick
        15
    slideclick  
    OP
       219 天前
    @akakcolin 在找工作,有个日本的远程,每周要去日本,要求日语牛逼,上限 25k rmb 年轻人不要学 c++
    fcten
        16
    fcten  
       219 天前
    c++ 的项目大都太老了,老项目要升级到 c++ 20 是很困难的。
    更惨的是,为了支持那些老项目,系统环境和编译工具也没法升级,导致新项目也用不上 c++ 20……
    yosoroAida
        17
    yosoroAida  
       219 天前   1
    @kandaakihito c++ 98 是 C++ 98 年的标准,20 则是 C++ 20 年的标准。。。
    slideclick
        18
    slideclick  
    OP
       219 天前   1
    @kandaakihito 你是对的,java 是 95 年发明的,大部分市面程序员对 c++的理解在上个世纪,这不是程序员的错,这 c++的失败,以至于发明人自己写初学者书,为了劝说 13 楼的 v 友, 你看 java python ruby c#的发明人谁亲自写书
    kandaakihito
        19
    kandaakihito  
       219 天前
    @yosoroAida #17 感谢。。。虽然但是,我只是在玩抽象。。。不过なんとなく还是ありがたく了
    slideclick
        20
    slideclick  
    OP
       219 天前
    @fcten 是,现在还活着的项目,有的连 stl 都没有用
    penguinWWY
        21
    penguinWWY  
       219 天前
    前两年建项目都是 set(CMAKE_CXX_STANDARD 14)
    这两年已经 set(CMAKE_CXX_STANDARD 17)
    不过今年纯 C 写的多
    Jerry23333
        22
    Jerry23333  
       219 天前
    领导说啥我用啥,面试官问啥我学啥,哈哈
    zwy100e72
        23
    zwy100e72  
       219 天前
    我自己应该是 c++17 水平,但模板部分我是不及格的。

    公司里的项目的话还是要看立项的年代,如果是比较早的项目很难有整体重构的机会,时间、人力等都不允许。

    我见过因为看不懂 c++ mangled name 然后把 c++ 重构成 c 的项目...
    OBJECTION
        24
    OBJECTION  
       219 天前
    c++其实有点技术无用论, 因为项目都用到 c++了 说明都比较有历史了。。。 稳定压倒一切。

    老板基本上也只看会不会出问题,顶多都是一些技术方案的改进等
    linzyjx
        25
    linzyjx  
       219 天前 via Android
    我们在用 17
    但高级特性用得不多
    cnbatch
        26
    cnbatch  
       219 天前
    我工作内容基本不靠 C++,只有少数例外。而我的个人项目主要是 C++,版本在 C++14 以上。
    即使是那极少数会用到 C++的工作项目,也是尽量弄到起码 C++17 。

    反正我是拒绝 C++98 的,当初就是嫌弃 C++98 而放弃过一段时间,直到 C++11 出现后才重学重用 C++。
    cnbatch
        27
    cnbatch  
       219 天前
    关于「发明人自己写初学者书」,Python 发明者还真的出过相关的教学书籍,而且不少哦:
    https://www.amazon.com/Books-Guido-van-Rossum/s?rh=n%3A283155%2Cp_27%3AGuido%2Bvan%2BRossum

    C 语言发明人也做过同样的事,出版的书一直到现在还能买得到。
    vituralfuture
        28
    vituralfuture  
       219 天前 via Android
    我实习去的大厂已经升级到 C++20 了
    z1nke
        29
    z1nke  
       218 天前
    我们是 C++17 ,从 C++14 升上来的
    slideclick
        30
    slideclick  
    OP
       217 天前
    @Jerry23333 @cnbatch 你看看人家 26 楼,财(语)务(言)自由。我在找工作,11 的一万就行,98 的我得三万,98 跳 bug 太辛苦
    Jerry23333
        31
    Jerry23333  
       216 天前
    @slideclick #30 是的,老屎山真的不敢碰,所有语言都是。之前在阿里时候那 java8 python2 都是百万行的,根本没法调,根本不敢动
    Jerry23333
        32
    Jerry23333  
       216 天前
    @vituralfuture #28 新的项目一般会用的比较新,老项目基本不敢动。
    hwdq0012
        33
    hwdq0012  
       216 天前   1
    我的 c++入门是用 c++11 写了一个 json 库, 基于我自己写的 c++静态反射框架, 0 经验 28k offer
    slideclick
        34
    slideclick  
    OP
       215 天前
    @cnbatch 好奇大佬自己啥项目类型用 cpp
    以前有个武大毕业谷歌的,出来创业,
    说离开谷歌原因是大公司弄 c++是因为它机器多,压榨性能可以省很多钱比如电费,
    但是是牺牲了个人。他出来创业用 clojure
    slideclick
        35
    slideclick  
    OP
       215 天前
    @slideclick 他说他在谷歌受不了编译速度,浪费青春。

    其实贝尔的几个人(图灵奖)在朗讯衰落后不喜欢 c++的去了谷歌,也受不了编译,发明了 golang.年轻人,去 golang 吧
    cnbatch
        36
    cnbatch  
       215 天前
    @slideclick 网络 Proxy 类的工具( 2022 年开始做的),需要在 Windows 使用,还需要照顾 BSD 系列,这种情况下 C++是最优解

    尤其是 BSD ,全部自带 C/C++编译器,用 C++就不需要额外安装其他编译器工具链,哪怕为了在某些 BSD (例如 NetBSD )使用 C++新版本引入了高版本编译器,也就改改编译参数的事
    slideclick
        37
    slideclick  
    OP
       211 天前
    @akakcolin 做个笔记回应你的更喜欢 c:

    "1.2024 年了,连个正常的官方包管理器都没有。
    2.没有统一的编译器。


    这些东西除了 C++其他主流现代语言都有了吧。
    本质问题是 C++不是中心化的。


    3.还要兼容 C 。
    会 C++的人还得看得懂 C 代码,还要明白哪些 C 风格代码是不能用在 C++里面的。纯纯的增加负担。用 C 的人看不上 C++,用 C++的人还得自己搞懂 C "
    slideclick
        38
    slideclick  
    OP
       211 天前
    @vituralfuture 不夸张的说,中国互联网使用 c++的只有一家成功的,就是百度,它的行业单一,门槛极高。

    腾讯是做 pc 上的软件起家的,如果它不是碰巧运气好抓住了张小龙当产品经理搞出来 wechat,腾讯今天就会像网易一样偏于一隅于游戏,而已

    如果当年阿里 java 京东 c#有一个选择了 c++,那么 c++那个早就死多少回了
    slideclick
        39
    slideclick  
    OP
       204 天前
    c++将会是最后一个被 ai 代替的岗位
    因为大量 c++98/c-style 污染了训练数据

    其实 js 本来也有这个地位,但是有了 ts 现在
    deetincelle
        40
    deetincelle  
       194 天前
    @slideclick 看看 cursor 吧, js/ts 已经成第一个亡魂了
    ChainLock
        41
    ChainLock  
       188 天前
    楼主用 c++做什么项目
    ChainLock
        42
    ChainLock  
       187 天前
    @hwdq0012 老哥太猛了
    slideclick
        43
    slideclick  
    OP
       186 天前
    @ChainLock 用户态开发。比较难找。很多嵌入式的 jd 写 C++,其实会 C 的工科生就可以干。很多 linux kernel 级别的包括存储基本是 C.

    真正的 c++比如游戏,量化,门槛比较高。
    游戏我没有经验,我也不想干游戏。
    用户态也就剩下音视频,编译器了。后者门槛也高。
    所以我劝年轻人别学 c++
    ChainLock
        44
    ChainLock  
       186 天前
    @slideclick #43 我在学 c++,qt
    wanmyome
        45
    wanmyome  
       185 天前   1
    c++98 是标准不是水平,c++98 完全掌握的码畜水平不低
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2435 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 01:11 PVG 09:11 LAX 18:11 JFK 21:11
    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