• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ShioWSX
V2EX  ›  程序员

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

  •  
  •   ShioWSX · Feb 10, 2025 · 6553 views
    This topic created in 630 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    35 楼列的这些,如果都能答上来,大部分我感觉都可以直接入职了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5288 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 192ms · UTC 01:29 · PVG 09:29 · LAX 17:29 · JFK 20:29
    ♥ Do have faith in what you're doing.