有程序员完全不会 c 语言的吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zj299792458
V2EX    问与答

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

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

    有程序员完全不会 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/span>
    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
    考试。。。打错了
    syahd
        25
    syahd  
       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 写的东西 了解这些最起码对整个操作系统有那么一丝了解 简单地说就是按了下键盘按钮到底在系统里触发了哪一系列行为
    fengyj
        30
    fengyj  
       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 导致的么
    LaCroqueta12
        51
    LaCroqueta12  
       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     Solana     4124 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 10:09 PVG 18:09 LAX 02:09 JFK 05:09
    Do have faith in what you're doing.
    ubao msn 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