V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ShioWSX
V2EX  ›  程序员

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    当然了,可能有人认为单片机开发者属于电工,,不属于程序员,,这个也有一定道理。。
    zzz22333
        33
    zzz22333  
       40 天前
    @zhouyin #29 啥开发都是农民工。
    lpe234
        34
    lpe234  
       40 天前
    @ShioWSX #4 对你而言,学习 Python 还不是分分钟的事情。
    bfdh
        35
    bfdh  
       40 天前
    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  
       40 天前
    @zhouyin 华为阿里搞前后端开发的大头兵不也是这个价?
    zhouyin
        37
    zhouyin  
       40 天前
    @bibiisme
    所以才说内核开发 技术难 工资低 也是农名工
    zhouyin
        38
    zhouyin  
       40 天前
    @bfdh
    这么多这么难的技术 达到要求了 能提供多少钱一个月
    bibiisme
        39
    bibiisme  
       40 天前
    @zhouyin 那除了搞算法的全是农民工
    me1onsoda
        40
    me1onsoda  
       39 天前
    @bibiisme 算法也有民工啊。。
    bfdh
        41
    bfdh  
       39 天前
    @zhouyin #38 很多内容只是要求会用,能理解,并不是要完全掌握细节。
    tomychen
        42
    tomychen  
       39 天前
    所以纯 C 的程序员,真的蛮不好找的

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

    35 楼列的这些,如果都能答上来,大部分我感觉都可以直接入职了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2468 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:15 · PVG 12:15 · LAX 21:15 · JFK 00:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.