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

c++从入门到程序开发时间

  •  1
     
  •   zhangchongjie ·
    778280151 · 2021-06-17 11:43:59 +08:00 · 6301 次点击
    这是一个创建于 1289 天前的主题,其中的信息可能已经有所发展或是发生改变。
    从是 java4 年,现在想学习 c 艹,大概需要多久差不多能开发啊,以前接触过 c,但是都忘了
    52 条回复    2021-08-23 11:38:11 +08:00
    sunny352787
        1
    sunny352787  
       2021-06-17 11:48:32 +08:00
    是多想不开要跳这个坑...语言难职位又少
    paoqi2048
        2
    paoqi2048  
       2021-06-17 11:53:34 +08:00
    只写 C with Class 的话三个月肯定够了,不过现在 C++的坑位数量恐怕连 Java 的 1/3 都不到……LZ 想清楚了吗?
    653513754
        3
    653513754  
       2021-06-17 11:54:38 +08:00
    @sunny352787 语言难职位少也代表难以被替换,没有门槛的东西怎么跟应届生拼.
    libook
        4
    libook  
       2021-06-17 12:26:32 +08:00
    还是要看做什么领域吧,做系统开发、服务开发、游戏开发等各个领域差别都不小。

    现在比较蛋疼的一个问题是,除非是应届生,否则 C/C++开发岗位招聘大多要求有几年的 C/C++开发经验,相当于是卡住了很多想转技术栈的人。

    服务开发可以看看 Go,系统开发可以看看 Rust 。
    TuneG
        5
    TuneG  
       2021-06-17 12:44:23 +08:00 via iPhone
    c 艹想学习 Java,能提供一些方案吗
    zhangchongjie
        6
    zhangchongjie  
    OP
       2021-06-17 12:57:57 +08:00
    @TuneG 哈哈,经验互换呗,加个 qq 聊哈嘛 778280151 答案:wyr
    zhangchongjie
        7
    zhangchongjie  
    OP
       2021-06-17 12:59:07 +08:00
    @paoqi2048 哈哈,了解的,主业打算还是以 java 为主,c 艹副业想学了写点其他的
    MarkLeeyun
        8
    MarkLeeyun  
       2021-06-17 12:59:40 +08:00
    还不如学 rust.
    zhangchongjie
        9
    zhangchongjie  
    OP
       2021-06-17 13:00:31 +08:00
    @653513754 唉,其实现在不管啥行业,卷的都厉害,其他的不清楚,现在 java 也是各种,从 17 年那会就已经多得不行,现在更是,只能是往深了走了
    zhangchongjie
        10
    zhangchongjie  
    OP
       2021-06-17 13:03:00 +08:00
    @libook 嗯嗯,我这还好,现在 java 这边工作稳定,相当于是想学来提升自己,c/c 艹的很多设计我很想学习,而且强迫症晚期,看那 jvm 跳来跳去很烦。积累经验可以慢慢来,现在不清楚掌握 java 的情况下,看 c 艹难度大不大,现在我基本的语法没有看完,貌似 c/c 艹的语法小技巧还是蛮多的
    Smash
        11
    Smash  
       2021-06-17 13:15:59 +08:00
    C++就是老太太的裹脚布,如果不是以职业为主的学习,为什么不学习其他的语言?

    游戏开发:c#、lua
    GUI:c#、java 、kotlin 、swift 、pyside
    Web:typescript 、javascript 、css/html
    服务器:golang 、java 、kotlin

    如果你就是要搞底层开发,那学习 c/c++谁也阻挡不了你。。
    araaaa
        12
    araaaa  
       2021-06-17 13:53:21 +08:00
    先学 rust 被折磨后在学 c++
    jones2000
        13
    jones2000  
       2021-06-17 14:28:27 +08:00
    把你这 4 年内的写的 java 项目, 全部移植到 c++上。 基本就算会了。
    Akiya
        14
    Akiya  
       2021-06-17 15:32:44 +08:00 via iPhone
    C++难度太大别想了
    转 C#可以闭着眼睛转,转 go 用 1 周,个人建议
    newmlp
        15
    newmlp  
       2021-06-17 17:34:46 +08:00
    个人兴趣学学可以,别拿来找工作
    sryanyuan
        16
    sryanyuan  
       2021-06-17 19:20:37 +08:00
    用 c++11 和之后的新特性 难度会小很多
    nicevar
        17
    nicevar  
       2021-06-17 19:41:19 +08:00
    @Smash 并不是所有的人都能留在一二线城市的,你罗列的语言一大堆学了之后如果回到三四线城市基本上没什么用,别说薪水有多高,能找几个职位就不错了,c/c++不一样了,很多小城市都能找到顶薪的工作,甚至能达到一线城市的收入。
    irytu
        18
    irytu  
       2021-06-17 19:41:58 +08:00 via iPhone
    学 RUST
    Skyfeng
        19
    Skyfeng  
       2021-06-17 20:02:53 +08:00
    C++ 的岗位没有 java 的多,C++的学习曲线确实比较陡峭,但 C++也不是无用武之地,不少地方还是要 C++的;但真心觉得其他的语音不必 C++差啊
    pp3182429
        20
    pp3182429  
       2021-06-17 20:26:30 +08:00
    看一本 c++ primer 的时间[狗头]
    shayuvpn0001
        21
    shayuvpn0001  
       2021-06-17 20:44:53 +08:00
    从入门到入坟
    aneureka
        22
    aneureka  
       2021-06-17 21:29:44 +08:00
    哈哈哈 可能需要两个月吧 反正我学 cpp 还不到一个月 下个月就要入职了

    PS. 最近在看 C++ Primer (英文版),进度较慢,才开始第五章..

    自己稍微整理的 C++ 学习材料,楼主可以参考参考

    ====== 书籍 ======
    《 C++ Primer 》
    《 STL 源码剖析》:比较老的书,有些东西过时了
    《深度探索 C++ 对象模型》:Optional
    《 Effective C++》
    《 APUE 》《 UNP 》
    《深入理解 Linux 内核》《 Linux 内核设计与实现》
    《 Linux 多线程服务器端编程》
    《 C++ Templates 》

    ====== 源码 ======
    https://github.com/google/leveldb
    https://github.com/brechtsanders/xlsxio
    openmm
        23
    openmm  
       2021-06-17 23:08:44 +08:00
    c/c++一般都是学生学比较多 毕业后纷纷转其他方面 从其他语言转 c++还是很少见的哈
    Caturra
        24
    Caturra  
       2021-06-18 01:25:55 +08:00 via Android
    你连 jvm 那些表面套路都不愿意看,怎么学的下 c++,远不是同一个难度,只要求 c with class 当我没说
    fpure
        25
    fpure  
       2021-06-18 08:55:10 +08:00
    写 Java 和写 c++的直觉不一样,Java 转 c++真的一不留神就掉坑里
    chinuno
        26
    chinuno  
       2021-06-18 09:10:29 +08:00 via Android
    c 艹要是到能用的程度倒是不难学,很多人都是当 c 用的,个人觉得 60%的 c 艹特性很多人工作上都不会用,或者根本就不知道。有 Java 基础可能熟悉 1 个月就能用了。
    但是 c 艹的问题在于坑很多,只有积累了相当多的经验才能解决一大堆 Java 上不会遇到的奇奇怪怪的问题。所以没有经验积累的人可能按照直觉做出来的东西怎么运行结果都不对,然后查了半天查不出问题抓耳挠腮的浑身不舒服浪费了好多时间。
    你说 jvm 跳来跳去很烦,那 c 艹调试可能要狗带了。整个程序编译过程、操作系统运行过程、汇编也要能懂,调试起来可真没有 Java 那么方便。
    c 艹的小技巧就不要想着一下子全部学会了,都是平时工作积累出来的经验自己悟出来的。
    楼上有人说 c 艹工资高的我就比较?。除了游戏行业外 c 艹的工资怎么跟其他的比?看看多少嵌入式工程师工资能拿到 Java 的一半?
    zhangchongjie
        27
    zhangchongjie  
    OP
       2021-06-18 09:22:34 +08:00
    @nicevar 老哥说得对,其他比较新的语言二线城市以下确实不好找,使用场景不是那么多,就算是有,也是包给一线城市的公司去做了。而且现在国内硬件这一块被卡脖子,我感觉以后这种相对低级的语言,还会焕然新生
    zhangchongjie
        28
    zhangchongjie  
    OP
       2021-06-18 09:23:26 +08:00
    @pp3182429 哈哈,我也有,看完以后不知道怎么弄,没有学习的思路
    zhangchongjie
        29
    zhangchongjie  
    OP
       2021-06-18 09:24:16 +08:00
    @sryanyuan 嗯嗯,基本的 c 艹语法学习完以后,如果向游戏方向,该学那些呢? qt 吗
    zhangchongjie
        30
    zhangchongjie  
    OP
       2021-06-18 09:25:22 +08:00
    @aneureka 哈哈,好的,你走的是哪方面呀?系统设计吗?如果游戏方向,把 c 艹的基本语法看完以后该看那些呢
    zhangchongjie
        31
    zhangchongjie  
    OP
       2021-06-18 09:26:13 +08:00
    @araaaa 看你们都再说 rust,回头看看
    killeder
        32
    killeder  
       2021-06-18 10:27:48 +08:00
    语言只是个工具而已,重要的是逻辑思维能力;如果你能用中文把你要做的事,以及怎么做都像详细描述出来,用哪种语言都是小意思,只是学个工具罢了
    pcslide
        33
    pcslide  
       2021-06-18 10:47:04 +08:00
    @killeder 说语言只是工具的应该好好想想自己是怎么思考问题和推理的。事实是,只要有抽象思考,就离不开语言,说语言影响思考方式一点也不为过。
    slack
        34
    slack  
       2021-06-18 10:49:48 +08:00
    自己学着玩没问题,用来找工作是个大坑别跳。
    aneureka
        35
    aneureka  
       2021-06-18 11:39:42 +08:00 via iPhone
    @zhangchongjie #30 我… 后台开发,去的深圳南山某公司,必须得学😭 不过我自己对底层开发也挺感兴趣,之前都是写 Java
    soo2
        36
    soo2  
       2021-06-18 12:27:27 +08:00 via Android
    推荐网站:learncpp.com
    killeder
        37
    killeder  
       2021-06-18 12:45:34 +08:00
    @pcslide 思考和推理是逻辑思维能力,主要是数学功底;与编程语言没有直接关系
    missdeer
        38
    missdeer  
       2021-06-18 14:07:22 +08:00
    如果是为了跳槽,不如背面试题
    zhangchongjie
        39
    zhangchongjie  
    OP
       2021-06-18 15:25:41 +08:00
    @aneureka 老哥牛啊,开发游戏了吗
    aneureka
        40
    aneureka  
       2021-06-18 20:08:24 +08:00 via iPhone
    @zhangchongjie #39 没呀 后面要做的也是业务后台
    pcslide
        41
    pcslide  
       2021-06-19 01:46:06 +08:00
    @killeder 你所谓的逻辑推理,需要用到逻辑语言(符号系统),推微积分的时候脑子里是微积分符号,推量子力学的时候脑子里肯定蹦出来的是量子力学的符号,很难想象谁推量子力学的时候脑子里面是一堆汉字。

    逻辑推理(还有数学推导),其实质,就是按照符号规则,对符号进行转化。没有符号系统(语言),根本就无法完成。

    你当然可以写伪码,然后再改写成程序语言(大多数程序语言是 turing complete 的),但因为程序语言设计上的区别,某些改写靠人工可能非常繁复,复杂到你需要写一个程序来做翻译工作(编译器)。

    就像你说英语的时候,老师会建议你用英语思考,而不是先想中文怎么说,再翻成英语说出来。写程序也是一样,你思考的时候用目标程序的语言,效率就高。
    MarkLeeyun
        42
    MarkLeeyun  
       2021-06-19 18:32:01 +08:00
    建议 rust....不过语言其实不是难点吧。。配套的知识才重要吧。比如网络以及操作系统的基础知识等等。妄想精通一门语言,,,现代编程语言,,都有一定难度吧。。就算 java 也是吧,,入门难,精通估计也是很难很难吧,比如 jvm 调优部分。。哈哈哈。个人观点。
    zhangchongjie
        43
    zhangchongjie  
    OP
       2021-06-21 17:00:08 +08:00
    @MarkLeeyun 哈哈,是的,即使是 js 这种脚本语言,往深了也是很多东西。个人观点,我是主要做 java web 方面的,这两年 java 后端技术的发展不是那么迅猛,jvm 这个东西,不是 bat 这些公司的人,玩的很溜的不多,而且 java 基本都靠框架,我个人觉得有点累,玩来玩去就那些啦,现在 c++的 cs 架构更吸引我一点
    zhangchongjie
        44
    zhangchongjie  
    OP
       2021-06-21 17:01:19 +08:00
    @soo2 感谢
    yhzwy
        45
    yhzwy  
       2021-07-12 22:03:20 +08:00
    我还以为做 android 本来都写 java 现在必须往下要会 c++。。。
    levelworm
        46
    levelworm  
       2021-07-14 23:23:02 +08:00
    @zhangchongjie 不如找个项目去做。C/C++比较适合系统编程,可以试试看写个解释器啊,芯片模拟器啊神马的。
    levelworm
        47
    levelworm  
       2021-07-14 23:23:44 +08:00
    @zhangchongjie 自己写引擎吗?猜测应该挺好玩的。。。
    aneostart173
        48
    aneostart173  
       2021-07-15 10:42:16 +08:00
    先学 c 吧,底层基本还是 c 。c++目前看来只有几个领域。
    zhangchongjie
        49
    zhangchongjie  
    OP
       2021-07-15 11:13:43 +08:00
    @levelworm 嗯嗯,现在想拿来吃饭的有三个想法,做游戏,弄硬件,还有一个是好像谷歌下一代的移动系统开发有 c++,不知道行不行,打算先把语法学会再说,看网上也有实现引擎或者是 web 模板的,感觉这个还是 java 来做比较好,哈哈
    zhangchongjie
        50
    zhangchongjie  
    OP
       2021-07-15 11:14:19 +08:00
    @aneostart173 对 c 语言的认知不太够,感觉就是整硬件和做系统?
    linuxsteam
        51
    linuxsteam  
       2021-08-23 11:22:32 +08:00
    我也有这个想法,
    听过 C++领域谈论的东西。
    发现小公司做 JAVAWEB 可能 一直都不会接触稍微深一些的东西(强大驱动能力的除外)
    我这种小菜比 只能靠实践来加深记忆了。
    之前背八股文真是背一次忘一次啊
    zhangchongjie
        52
    zhangchongjie  
    OP
       2021-08-23 11:38:11 +08:00
    @linuxsteam 一起来学 c++啊,感觉发展趋势以后可能会向硬件这些方相发展,javaee 现在感觉已经放缓脚步了,java 感觉注定是向业务方相发展,如果会 c++是向底层,个人观点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5557 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 06:45 · PVG 14:45 · LAX 22:45 · JFK 01:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.