纯 C 的开发岗位,面试也要刷题吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ShioWSX
V2EX    程序员

纯 C 的开发岗位,面试也要刷题吗?

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

    1 、各个大中厂内核网络开发,纯 C 语言开发岗位也要做 leecode 题目吗?

    2 、日常用的都是纯 C ,要是做 leecode ,没有 C++的 STL ,应该很难做吧?

    3 、有没有面过的指导下?大中厂的纯 C 开发也做题吗?内核网络方向的

    42 条回复    2025-02-11 14:52:48 +08:00
    zjsxwc
        1
    zjsxwc  
       288 天前
    linux glib ( GNU C Library )不就是类似 stl 的东西吗,里面各种容器。
    ShioWSX
        2
    ShioWSX  
    OP
       288 天前
    这个我没咋用过,用的都是内部一些老员工手搓的各种数据结构
    kingcanfish
        3
    kingcanfish  
       288 天前
    啊? 做题用 python 不行吗
    ShioWSX
        4
    ShioWSX  
    OP
       288 天前
    @kingcanfish 主要是平常就用纯 C 和 shell ,其他的语言没用过,而且 python 一些数据结构和接口也不大熟悉
    chingyat
        5
    chingyat  
       288 天前
    @zjsxwc #1 glib 和 glibc ( GNU C Library ) 可不是一回事啊
    PTLin
        6
    PTLin  
       288 天前
    @zjsxwc 你说的是 gtk 的 glib 吧,这玩意没什么刷题网站支持
    nanrenlei
        7
    nanrenlei  
    &nbs;  288 天前
    这种底层的更应该问算法了,要不都没什么可问的了,c 语言感觉就是数据结构、算法、通讯协议这些了
    zhouyin
        8
    zhouyin  
       288 天前
    感觉开发纯 c 真的很痛苦 属于石器时代

    领域无非:协议栈 内核 嵌入式 驱动

    待遇咋样?
    iOCZS
        9
    iOCZS  
       288 天前
    缺少一些数据结构和算法,从头开始撸有点麻烦
    SageXiong
        10
    SageXiong  
       288 天前
    C 比较重数据结构与算法的东西,我觉得更要掌握好
    csfreshman
        11
    csfreshman  
       288 天前
    刷题可以用 c++ stl ,亲测有效,哈哈哈哈
    sir283
        12
    sir283  
       288 天前
    现在没有绝对的纯 C 岗位了,嵌入式都必须要会 C++了,手搓链表、通讯协议、串口协议、网络协议这些,太影响效率了,有这个时间,公司换个 Java 项目,都做完好几个了。

    c/c++的岗位,第一考数据结构,
    需要你现场手撕红黑树、哈希表,现场背各种协议栈(根据公司做的产品性质决定,如果是工控机,就是串口跟网络协议居多),
    第二就是问你用过哪些库,会不会自己封装库,能不能自己写库之类的(根据公司做的产品深度绑定,都是公司内部库的制作跟打包发布),
    第三就是问你的过往项目经验,比如在上一家公司做过哪些类型的项目,你用的什么技术栈,用了哪些库、哪些技术、克服了哪些问题、提升了多少效率、为什么要这样搞,
    第四就是问你编程语言的熟悉程度,比如 C/C++、汇编、Python ,以及 Linux 、DOS 命令熟悉程度,shell 、bat 脚本也是必须的,部分还会要求你熟悉 Linux 内核驱动定制、构建、裁剪,这部分就偏技术了,基本就那么些,但是 C/C++/LINUX/PYTHON/SHELL 这几个是必问的,所以必须要熟悉。
    xy90321
        13
    xy90321  
       288 天前 via iPhone
    C 不卷算法我也不知道还能卷啥?
    neoblackcap
        14
    neoblackcap  
       288 天前
    leetcode 的的 C 环境只有标准库外加 uthash ,跟 STL 比起来的确简陋了一点
    AFOX
        15
    AFOX  
       288 天前
    楼上手撕红黑树是认真的吗?
    zhouyin
        16
    zhouyin  
       288 天前
    @sir283
    这么高的要求 待遇多少啊?
    wangpugod2003
        17
    wangpugod2003  
       288 天前
    @zhouyin 8K/月,不能再多了!
    HunterX
        18
    HunterX  
       287 天前
    @wangpugod2003 #17 纯 C 路过,只能说远不止这个数
    wnpllrzodiac
        19
    wnpllrzodiac  
       287 天前 via Android
    招个 5000 的岗位必须匹配 5 万的能力,才有面试资格,这就是现状
    linyinma
        20
    linyinma  
       287 天前
    C 岗位面如果有笔试环节会考一些语言、算法相关的东西; 面试考的主要还是操作系统相关(进程通信、用户空间、内核空间)、网络相关、 具体行业的一些...
    zhouyin
        21
    zhouyin  
       287 天前
    @HunterX
    4 万有吗?
    直聘上一堆一万多 c/c++
    bibiisme
        22
    bibiisme  
       287 天前
    @sir283 bsp 的纯 c 岗位不少啊,linux kernel 哪怕后面用 rust 了也不可能上 c++的
    zzz22333
        23
    zzz22333  
       287 天前
    @sir283 完了,我司的同事都会 C ,不会 C++,咋整呢。
    zzz22333
        24
    zzz22333  
       287 天前
    @zhouyin #21 你看看互联网大厂里面的 Linux kernel 开发和优化的工资。
    zzz22333
        25
    zzz22333  
       287 天前
    @xy90321 #13 跟硬件打交道啊,操作系统之类的,稳定性和优化,BSP 。
    besto
        26
    besto  
       287 天前
    @sir283 当然有,嵌入式可不是只有 ARM / Linux 还有更裸的,甚至 romcode 最终要进芯片内部的。
    zhouyin
        27
    zhouyin  
       287 天前
    @zzz22333

    kernel 级别的坑位太少 那还有芯片级别的 比 kernel 高级多了

    如果学历低 死命钻 都进不去

    直聘上不是一堆 c/c++一万多
    InkStone
        28
    InkStone  
       287 天前
    不是你们这个方向,不过也做过纯 C 开发。当时面试的时候,除非是面什么都不懂的应届生,不然基本不考算法题,都是问业务问题
    zhouyin
        29
    zhouyin  
       287 天前
    @zzz22333

    蚂蚁 华为啊 内核开发也才 2 万到 4 万 薪资比起技术难度其实是偏低的

    随便看了就 vivo 的内核开发专家 6 万到 9 万 15 薪

    结论:内核开发也是农民工
    di94sh
        30
    di94sh  
       287 天前
    学个 python 看半天语法就可以刷了,刷几十道就熟练了。
    ShioWSX
        31
    ShioWSX  
    OP
       287 天前
    @InkStone 主要是担心是不是大厂不管什么岗位只要开发都要做题,考虑到纯 C 没有轮子,很难做,除非那种翻转链表啥的,看了一下现在大概放心了,纯 C 这边对操作系统和网络关注关注较多,刷题好像不大关注
    XIVN1987
        32
    XIVN1987  
       287 天前
    单片机不都是纯 C 吗??

    当然了,可能有人认为单片机开发者属于电工,,不属于程序员,,这个也有一定道理。。
    zzz22333
        33
    zzz22333  
       287 天前
    @zhouyin #29 啥开发都是农民工。
    lpe234
        34
    lpe234  
       287 天前
    @ShioWSX #4 对你而言,学习 Python 还不是分分钟的事情。
    bfdh
        35
    bfdh  
       287 天前
    1. C 语言基础/库:指针、多级指针、void 指针、函数指针、一/二维数组、指针数组、各种类型之前的强制转换、位操作等;手搓个双向循环链表、二分查找、哈希表之类的不过分吧(红黑树就算了吧,毕竟我也不会); str(n)cpy 、str(n)cat 、s(n)printf 等到底有没有结束符、最多写多少字节;什么是内存泄漏,什么是内存空洞,什么是 double-free ,怎么排查;各种数据类型在特定 CPU 架构下占多少字节,结构体内存对其。

    2. 网络基础:大致就是《 tcp-ip 详解》那本书,udp/tcp 异同、应用场景,网段划分,广播/单播/组播,七层/四层模型;常见报文( ip/tcp/udp/arp/icmp/dhcp/dns/http/https 等)不需要知道每个细节,但是大体作用是什么,报文里面包含了哪些信息,基本交互流程应该要知道。

    3. linux 基础:系统启动流程,大提有哪些阶段,每个阶段一般处理哪些事情;进程/线程区别;进程/线程间通信;网络通信;常用对称/非对称加密方案、密钥协商、摘要算法;内核/应用层通信;文件系统。

    4. linux 网络子系统,报文如何从驱动传递到网络子系统,子系统收到报文是立即处理还是放队列(如果放队列,又什么时候再处理),如何确定由哪个 cpu 处理,具体如何处理(如何确定接收还是转发,各种虚接口如何接收到报文,如何查找路由表,如何送到 socket ,bridge 如何处理报文,vlan 报文处理等); netfilter 框架( iptables/ipset/ebtables )、链接跟踪、nat 如何处理;性能如何调优;

    5. 调试手段:内核崩溃、应用层崩溃、死锁、栈溢出等,主要调试工具的使用,汇编语言。

    6. 其他 1:I2C 、SPI 、UART 、USB 等协议;其他编程语言;学习能力;模电/数电基础常识; wifi 基础知识等

    7. 其他 2:面试者在面试过程中的表现,比如表达是否流畅,思路是否清晰,逻辑是否通顺。
    bibiisme
        36
    bibiisme  
       287 天前
    @zhouyin 华为阿里搞前后端开发的大头兵不也是这个价?
    zhouyin
        37
    zhouyin  
       287 天前
    @bibiisme
    所以才说内核开发 技术难 工资低 也是农名工
    zhouyin
        38
    zhouyin  
       287 天前
    @bfdh
    这么多这么难的技术 达到要求了 能提供多少钱一个月
    bibiisme
        39
    bibiisme  
       287 天前
    @zhouyin 那除了搞算法的全是农民工
    me1onsoda
        40
    me1onsoda  
       287 天前
    @bibiisme 算法也有民工啊。。
    bfdh
        41
    bfdh  
       287 天前
    @zhouyin #38 很多内容只是要求会用,能理解,并不是要完全掌握细节。
    tomychen
        42
    tomychen  
       287 天前
    所以纯 C 的程序员,真的蛮不好找的

    特别是熟悉 libc 还有网络及操作系统的(例如系统调用)

    35 楼列的这些,如果都能答上来,大部分我感觉都可以直接入职了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3904 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 00:56 PVG 08:56 LAX 16:56 JFK 19:56
    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