zj299792458
V2EX  ›  问与答

有程序员完全不会 c 语言的吗?

  •  
  •   zj299792458 · Jul 29, 2018 · 9473 views
    This topic created in 2872 days ago, the information mentioned may be changed or developed.

    有程序员完全不会 c 的吗?即从来没有学过,接触过?自学或者达内培训班一般不会专门学 c 吧?不会 c 的对职业生涯影响大吗?

    个人感觉,如果你没听说过指针等基础概念,在高级语言里你很难理解基础变量,引用变量,内存地址等信息,“==”号也是面向运气使用……

    web 前端等偏向设计方向的语言不会 c 倒是可以理解。

    71 replies    2018-07-30 19:23:23 +08:00
    PHPJit
        1
    PHPJit  
       Jul 29, 2018 via Android
    不会
    agdhole
        2
    agdhole  
       Jul 29, 2018 via Android
    初中的时候还会一点,搞了几年 PHP 和前端全忘了
    Yourshell
        3
    Yourshell  
       Jul 29, 2018 via iPhone
    什么?还有不动汇编的?
    zj299792458
        4
    zj299792458  
    OP
       Jul 29, 2018 via iPhone
    @agdhole 初中学 c,老司机?


    @Yourshell 完全不懂编译过程中会产生汇编只能当脚本侠吧?
    jayzjj000
        5
    jayzjj000  
       Jul 29, 2018   ❤️ 1
    有多少程序员完全会 C 语言呢?
    zj299792458
        6
    zj299792458  
    OP
       Jul 29, 2018 via iPhone
    @jayzjj000 那几乎没有,现在嵌入式都用 python 了,会写 c 没意义啊老哥。
    wssasd001
        7
    wssasd001  
       Jul 29, 2018
    写上几年前端,c 是什么,早忘光光。。。
    fuxiaohei
        8
    fuxiaohei  
       Jul 29, 2018
    能看不能写,看还看不全
    zj299792458
        9
    zj299792458  
    OP
       Jul 29, 2018 via iPhone
    我只是说 c 需要会让你理解高级语言里的某些规则,不是说 c 语言很常用,我就是 python 入门的😂
    jedihy
        10
    jedihy  
       Jul 29, 2018 via iPhone
    @zj299792458 嵌入式只用 python 那只能当脚本侠。
    zj299792458
        11
    zj299792458  
    OP
       Jul 29, 2018 via iPhone
    @zj299792458 需要->语言
    MOmc
        12
    MOmc  
       Jul 29, 2018 via iPhone
    初中 vb 大学 c,现在忘的贼 jb 干净!前女友印象都比它深!
    but0n
        13
    but0n  
       Jul 29, 2018 via iPhone
    @zj299792458 只有物联网相关的用 python,其它还都是 c
    zj299792458
        14
    zj299792458  
    OP
       Jul 29, 2018 via iPhone
    @jedihy 只用 python 就已经是脚本侠了,和嵌入不嵌入没关系吧?
    zj299792458
        15
    zj299792458  
    OP
       Jul 29, 2018 via iPhone
    @but0n 嗯嗯,路由器网关等基础还是需要 c 大神的
    Felldeadbird
        16
    Felldeadbird  
       Jul 29, 2018 via iPhone   ❤️ 5
    这么说吧,外国人到国内吃饭,不会用筷子会饿死吗?
    会 C 和不会 C,我觉得并不影响一个程序员的能力水平。
    另外,高级语言这个应该是编程语言的泛词了。
    juoyi
        17
    juoyi  
       Jul 29, 2018
    除了大学学过 C 语言基础,之后就再没有接触过了……当然我是很菜的程序猿
    deadEgg
        18
    deadEgg  
       Jul 29, 2018
    我觉着还要有基础,有基础意味着你懂个 7788,当有需要的时候能拿的起来。

    不然在某些领域做深会相对吃力。
    bumz
        19
    bumz  
       Jul 29, 2018
    并不认为 C 的裸指针对理解现代意义下的指针(不允许直接操作内存,GC )有什么必然的帮助。
    不过想配合理解硬件的话可能没有比 C 更适合的语言了。
    innoink
        20
    innoink  
       Jul 29, 2018 via Android
    完全不妨碍学习函数式编程语言,甚至 erlang 这样的
    bucky
        21
    bucky  
       Jul 29, 2018
    编程领域经常讲封装抽象,如果学一个语言需要另一个语言为基础,那这语言纯粹设计失败
    jowuIM
        22
    jowuIM  
       Jul 29, 2018 via Android
    勉强能看懂 C,C 的指针不是很懂。我强行平均水平一下?嵌入式用的比较多吧
    wei672520619
        23
    wei672520619  
       Jul 29, 2018 via Android
    大学老师。。。
    wei672520619
        24
    wei672520619  
       Jul 29, 2018 via Android
    考试。。。打错了
    syahd
        25
    syahd  
       Jul 29, 2018 via Android
    了解一点指针算懂吗
    Wicked
        26
    Wicked  
       Jul 29, 2018 via iPhone
    我那个年代,不懂 gdb attach 上去看反汇编都不好意思说自己懂 C,所以我也不大懂…
    说到 C 就不得不提 C++,学 C++有个好处,那就是如果你能搞懂 C++的语法,你学任何一门脚本语言,都会很轻松…
    easylee
        27
    easylee  
       Jul 29, 2018
    在老司机论坛偶尔问几个 C 语言问题,还有不少人嘲讽:你是要准备给宇宙飞船写操作系统?
    似乎已经成为了一种他们所认为的风趣。

    后来转知乎,知乎的 C/C++大神还是挺多的,解答的也挺好。
    DeweyReed
        28
    DeweyReed  
       Jul 29, 2018
    学操作系统绕不过 C 吧。
    fxxkgw
        29
    fxxkgw  
       Jul 29, 2018 via iPhone
    培训班的基本不会吧?
    我一般面试时候还是喜欢问几句动态 静态链接库 系统调用 中断啥的这些 c 写的东西 了解这些最起码对整个操作系统有那么一丝了解 简单地说就是按了下键盘按钮到底在系统里触发了哪一系列行为
    fengyj
        30
    fengyj  
       Jul 29, 2018 via Android   ❤️ 1
    底层的东西绕不过 c 吧,尤其物联网设备。c 最迷人的地方就是他能够操作内存
    fxxkgw
        31
    fxxkgw  
       Jul 29, 2018 via iPhone
    @huiyifyj 应该是硬件吧。。
    SsuchingYu
        32
    SsuchingYu  
       Jul 29, 2018
    其实大多数人工作之后都少用 C 吧?
    pexcn
        33
    pexcn  
       Jul 29, 2018 via iPhone
    会... 但用得不多
    chiu
        34
    chiu  
       Jul 29, 2018 via iPhone
    如果是学第一门编程语言,我推荐 C
    jianpanxia
        35
    jianpanxia  
       Jul 29, 2018
    C 只是语言,说到底学过 Java 的基本上可以快速入门 C 语言。
    但是 C 难的永远不是语法,而是指针。
    (看个真实的开源 C 优秀源码就知道指针有多浪了,OOP 都能搞)
    darkcode
        36
    darkcode  
       Jul 29, 2018
    前端、JAVA 和 PHP 应该大把不会的
    lekai63
        37
    lekai63  
       Jul 29, 2018 via iPhone
    高一学过 c 学到指针那 忘记当时老师怎么说的了 感觉对后来理解 vb python 等是有作用的
    最后 我不是程序员 。。。水平也没到靠代码吃饭的程度。。。纯自娱自乐型
    ji980925
        38
    ji980925  
       Jul 29, 2018 via Android
    在土澳留学,学校一般都是 Python 必修,c 选修
    but0n
        39
    but0n  
       Jul 29, 2018 via iPhone
    @fxxkgw 更准确的说应该是寄存器
    hundan
        40
    hundan  
       Jul 29, 2018 via Android
    一直觉得 c 这种东西,不应该放在基础课程里教,应该是学完高级语言能做一些东西了,想要精进的人,再去学 c,从学习的奖励反馈的角度来说是这样的,这样能比较容易学下去。
    诚然一开始如果能学好 c,学其他语言更容易理解,但是往往是学不好,学个半成,啥都做不出来,又放弃了,学了别的,最后跟没学差不多。
    mintist
        41
    mintist  
       Jul 29, 2018
    @zj299792458 嵌入式还是 C 语言的天下吧,顶多被 C++ 稍微分点,Python 跑个 “ Hello World ” 还行,产品还是算了吧,,,
    Perry
        42
    Perry  
       Jul 30, 2018 via iPhone
    个人认为只要工作上用不到 C,那么学习 C 只是一个 nice to have 的技能点。
    不过在大学里,应该都有教 C ?
    zj299792458
        43
    zj299792458  
    OP
       Jul 30, 2018 via iPhone
    如果明白变量在内存里的运行逻辑,会不会 c 都无所谓,可是现在高级语言里企图隐藏这些细节,很多人直接学高级语言,比如 java,不明白 new Integer (5)为什么不等于 new Integer (5),都是死记硬背,学完 c 就好理解多了……纯个人见解,我是先 python 入门,后来才自学的 c,好多东西都豁然开朗,但是 posix c 就学不动了,接口函数太难记了

    @hundan
    @jianpanxia
    @Perry
    @bumz
    firebroo
        44
    firebroo  
       Jul 30, 2018 via Android
    🤣🤣🤣蛋疼的指针,写的脑袋疼。。
    flowerains
        45
    flowerains  
       Jul 30, 2018
    会 C,但是平时用不到是个问题。
    大学学的东西,这么多年了居然还有印象
    msg7086
        46
    msg7086  
       Jul 30, 2018
    那你学过 Smalltalk 吗? OOP 著名的启蒙语言。
    q397064399
        47
    q397064399  
       Jul 30, 2018
    @bumz #19 引用计数法 ,, 逃
    jedihy
        48
    jedihy  
       Jul 30, 2018   ❤️ 1
    不会 C,操作系统怎么学。
    oxoxoxox
        49
    oxoxoxox  
       Jul 30, 2018 via Android
    c3824363
        50
    c3824363  
       Jul 30, 2018
    @oxoxoxox 怎么涨了这么多呢,risc-v 导致的么
    LaCroqueta12
        51
    LaCroqueta12  
       Jul 30, 2018
    说起来我还写过三年的 C,现在经常用 matlab、python、vb、tsl,把 C 忘得一干二净了。。写个简单的 C++代码费了半天劲
    5oiR5piv5YK76YC8
        52
    5oiR5piv5YK76YC8  
       Jul 30, 2018
    高中时候学过,后来也就看看,你让我直接上手干项目,肯定是不行的
    xvrzhao
        53
    xvrzhao  
       Jul 30, 2018
    大一必修,不过当时完全为了应付考试,后悔莫及
    PanPancf
        54
    PanPancf  
       Jul 30, 2018
    @zj299792458 APUE 是本好书
    allgy
        55
    allgy  
       Jul 30, 2018
    恶补中
    onionKnight888
        56
    onionKnight888  
       Jul 30, 2018
    大学学过,现在基本只剩下看看的水平
    lzhCoooder
        57
    lzhCoooder  
       Jul 30, 2018
    不会 C 语言的蛮多的,虽然我非常不赞成这样...至少要先认真学习一遍 K&R C 吧 才 180 页
    minininja
        58
    minininja  
       Jul 30, 2018
    正准备学
    qq976739120
        59
    qq976739120  
       Jul 30, 2018
    我同事 c++培训出身,对内存,进程,线程完全没概念,协程根本没听过,你敢信?
    sampeng
        60
    sampeng  
       Jul 30, 2018 via iPhone
    实话…工作十年。没见过除 c 做主语言以外的大佬或程序员。web,php,python,前端,android。这些业务领域都是没几个真正会 c 的。内存模型大学知道不代表工作的时候还记得
    shuizhengqi
        61
    shuizhengqi  
       Jul 30, 2018
    科班出身没有一个没接触过的。连我一个硬件出身的,都会学 c
    TomatoYuyuko
        62
    TomatoYuyuko  
       Jul 30, 2018
    入门 C 专业 java 现在干前端= =
    zpf124
        63
    zpf124  
       Jul 30, 2018
    专科路过,学完 c 的基础语法就去学 java 了,指针相关,内存管理相关的几乎完全不会。
    iiTea
        64
    iiTea  
       Jul 30, 2018
    c 语言由于工作中用得少已经重新捡起来三遍了,最近捡起来是因为想学习下 redis 源码
    tt67wq
        65
    tt67wq  
       Jul 30, 2018
    反复的捡起来 C,然后几天不用又忘了。。。
    Phariel
        66
    Phariel  
       Jul 30, 2018
    看得懂部分 不会写
    irainsoft
        67
    irainsoft  
       Jul 30, 2018
    第一个学的是 JAVA...
    earendil1412
        68
    earendil1412  
       Jul 30, 2018 via Android
    如果对 C 一点概念都没有的话,很多数据结构是理解不了的
    crayygy
        69
    crayygy  
       Jul 30, 2018
    计算机基础跟 C 语言不等价,我最早学的 C++,后来速成了一下 Java,至于 Python/Javascript/Ruby 这些都是自己慢慢看着学的,要说指针什么的有多重要,不写 C/C++ 的不太关注这些自然也就不重视。

    但你要说引用,传参这些,我觉得是基础,不同语言可能不同实现,考虑的场景都不一样的。

    数据结构、设计思想什么的就更不一样了,这些是语言无关层面的,代码写到一定程度一定会走这一步,跟你用什么语言没关系。
    nullen
        70
    nullen  
       Jul 30, 2018
    有,很多不会的。
    wq7
        71
    wq7  
       Jul 30, 2018
    不常使用还是会遗忘...
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   923 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 144ms · UTC 20:36 · PVG 04:36 · LAX 13:36 · JFK 16:36
    ♥ Do have faith in what you're doing.