V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zj299792458
V2EX  ›  问与答

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

  •  
  •   zj299792458 · 2018-07-29 14:03:06 +08:00 · 8283 次点击
    这是一个创建于 2070 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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


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

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

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

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

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

    数据结构、设计思想什么的就更不一样了,这些是语言无关层面的,代码写到一定程度一定会走这一步,跟你用什么语言没关系。
    nullen
        70
    nullen  
       2018-07-30 13:58:18 +08:00
    有,很多不会的。
    wq7
        71
    wq7  
       2018-07-30 19:23:23 +08:00
    不常使用还是会遗忘...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2753 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:09 · PVG 20:09 · LAX 05:09 · JFK 08:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.