V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
VERT1GO
V2EX  ›  职场话题

编译器开发相关的工作值得入坑吗?

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

    各位大佬,lz 硕士毕业工作不到 2 年,目前在做 Java 后端。个人感觉业务前景一般,也没什么技成长,基本在 CRUD 。lz 希望职业寿命可以长一点,但是现在这个工作感觉就是那种典型的 35 岁失业的工种。。

    现在有机会可以尝试一下其它方向,目前在考虑编译器开发或调试器等工具链开发。请问这个方向未来前景怎么样,能不能更有把握度过中年失业危机,以及会不会太小众很难找工作呢?

    麻烦大佬们帮忙指点一二。

    51 条回复    2024-12-02 00:29:26 +08:00
    levelworm
        1
    levelworm  
       118 天前 via Android   ❤️ 2
    我擦不给钱我都做。。。
    VERT1GO
        2
    VERT1GO  
    OP
       118 天前 via Android
    @levelworm 老哥过分了,要吃饭的哈哈
    ZGame
        3
    ZGame  
       118 天前
    我觉得很好阿,后续很多信创需求估计每个大厂都会有自己的想法
    ZGame
        4
    ZGame  
       118 天前
    而且懂编译器开发,后续可能会和 ai 集成新的流水线 ,或者新的 ide 那种
    VERT1GO
        5
    VERT1GO  
    OP
       118 天前 via Android
    @ZGame 比较担心的就是,大部分公司可能用不到这个岗位,担心之后机会太少。Java 虽然卷毕竟池子还在这里,哎。
    Configuration
        6
    Configuration  
       118 天前
    编译器开发和 CRUD 完全是不同领域,看样子 lz 知识面挺广啊
    ZGame
        7
    ZGame  
       118 天前   ❤️ 1
    @VERT1GO #5 我觉得不用担心这个吧... 如果你真能学通了,回头分析一波 java 的编译器调试器是如何开发测试的,照样是通的。。。回头再分析分析 kotlin 和 java 的不同点啥的我感觉优势也很大。java 的话感觉要尽量往业务走。 这样路才能通,单纯技术没啥前景
    VERT1GO
        8
    VERT1GO  
    OP
       118 天前 via Android
    @Configuration 一点也不广老哥,基本相当于从零开始。
    VERT1GO
        9
    VERT1GO  
    OP
       118 天前 via Android
    @ZGame 如果能做到顶尖,融会贯通,自然是不必愁了哈哈,但是感觉自己就是个普通人,不管做什么也都是个普通的工程师。不知道这个池子能不能给一个普通人容身之所。
    a4page
        10
    a4page  
       118 天前
    编译器比较小众的方向,总的需求量应该是比较少的
    sagaxu
        11
    sagaxu  
       118 天前   ❤️ 1
    编译器坑极少,知名项目从业者人均清北博士,站稳脚可能比跨过 35 岁更难。
    diivL
        12
    diivL  
       118 天前
    你可以搞编译器,但不要去全职搞编译器.
    levelworm
        13
    levelworm  
       118 天前 via Android
    @VERT1GO 真不是,一般人拿不到这种机会的。
    levelworm
        14
    levelworm  
       118 天前 via Android
    @VERT1GO 那大佬怎么拿到机会的。。。
    VERT1GO
        15
    VERT1GO  
    OP
       118 天前 via Android
    @levelworm 真不是大佬,公司开放内转,恰好有这个方向
    VERT1GO
        16
    VERT1GO  
    OP
       118 天前 via Android
    @sagaxu 学历尚可,但确实比清北低一些,也没有博士学位。想请教一下大佬,如果不做编译器,而是做一些语言框架工具链、中间件相关的工作,会更有立足的机会吗
    levelworm
        17
    levelworm  
       118 天前
    @VERT1GO 的确是厉害。。。
    coderluan
        18
    coderluan  
       118 天前
    编译器开发肯定值得的,但是楼主那份机会值不值得就是另一回事了,一般来说,大部分没啥门槛的机会都不太靠谱。
    VERT1GO
        19
    VERT1GO  
    OP
       118 天前 via Android
    @coderluan 菊花内转,应该还算国内比较大的团队。大佬帮忙参考一下值得从零开始不
    coderluan
        20
    coderluan  
       118 天前
    @VERT1GO #19 值,但是会很累。我有个同事本来在公司做编译器项目,然后去菊花了,几年前的事了,现在的他学历可能根本不够,据说挣的非常多。
    pisc
        21
    pisc  
       118 天前 via Android   ❤️ 1
    编译器开发是我知道的,重复劳动最高的开发了,比 CRUD 还无聊(虽然 PL 理论方面和实现算法都很有趣),不知道你是基于什么原因想做这块,只能说提供一些
    pisc
        22
    pisc  
       118 天前 via Android
    接上,提供一些个人的体验了,(利益相关:做过一些编译器、解释器、静态分析、定理证明相关的东西)
    ZZ74
        23
    ZZ74  
       118 天前
    从 OP 的描述看,学历应该不至于拉跨。可以去搏一搏。比 java 有前途。后期退了再做其他的甚至转 java 也都行。
    VERT1GO
        24
    VERT1GO  
    OP
       118 天前 via Android
    @pisc 大佬你好,我的主要考虑就是现在 crud 很难有什么技术积累可言,可能年龄大一点就容易失业,换这个方向会不会职业生涯能更长久一些。
    pisc
        25
    pisc  
       118 天前
    @VERT1GO 未来的事情谁也说不清楚啊。。。而且编译器开发也分不同的方向的,普遍门槛是有的,所以 CRUD 大军也不太能进来卷这些东西,然后学历这块,主要是因为这个领域不少都是做 Research 相关的过来的,普遍学历可能确实是比较高的,但这是现象,不是必要条件,所以能力够的话,我不觉得是太大的问题,我已经不做这块的开发了(纯纯只是觉得太无聊了),这几年也没太过关注这块,所以不太好给你太多建议。
    tool2dx
        26
    tool2dx  
       118 天前
    wasm 编译器和 java crud ,肯定选前者了。毕竟后者会的人太多,随时被替换下场。
    chesha1
        27
    chesha1  
       118 天前
    真正做这个人都是本科研究生就开始研究的,根本不会问要不要入坑这种问题

    而且这些偏鸡架的岗位坑都很少,远比业务开发少得多,如果你没有相关经验,社招转型就更难了

    如果你想在技术方面发展一下,在 java 生态里是不是更好点?比如研究一下大数据相关的内容(虽然也可能退化成 sql boy ),或者看看 apache 下面有什么和你业务比较相关的开源组件,多参与参与争取混个 contributor
    ztty
        28
    ztty  
       118 天前
    编译器开发大体可分为两个方向:

    1. 传统编译器: 主要是基于 GCC 或 LLVM 做一些编译优化的工作,一般是芯片厂商才有这类岗位,比如 CPU 厂商、或者现在大火的 GPGPU 厂商,这些厂商希望编译器开发工程师能根据自己芯片的体系结构来优化编译器,使得编出来的代码在自己的 CPU/GPU 上跑的更快。针对 CPU 的编译优化主要针对的是编译器的中端和后端,需要深入到编译器的源码了解编译器的机制,并且熟悉一些常见的优化算法。做 GPU 编译器大多都需要增强自己的编译器能力以支持编译 CUDA 程序。

    2. AI 编译器:跟传统编译器方向区别很大,不是很了解所以不多说。

    楼主在华为还是很值得转的,因为华为编译器团队是国内很强的团队,里面高手应该挺多,有高手带成长的也会比较快,跳槽出来还是很受欢迎的。
    Ritter
        29
    Ritter  
       118 天前
    幕了 天天 curd 写麻了
    feather12315
        30
    feather12315  
       118 天前
    不建议。

    任何技术类岗位在国内都没有前景。
    8355
        31
    8355  
       118 天前
    @VERT1GO #16 比如说 kong 有在上海招人,做 k8s 网关相关的,你可以看看你能适配吗,纯 curd 转都会比较困难,你需要在能接触到的环境下先转做出一些成绩才好通过职业性质的转变到新的岗位,起码你需要简历有东西吧,就像 curd 也分高中低端,高并发 curd 也需要很复杂的方案和代码健壮度才能保证完善也没那么简单。
    xiuy
        32
    xiuy  
       118 天前 via iPhone
    是 HDC 刚发布的语言那个团队吗
    kamilic
        33
    kamilic  
       118 天前
    有机会当然去做,往鄙视链上爬一层 233
    456789
        34
    456789  
       118 天前
    搞清楚编译器的含义,有一些 ppt 大师也拿编译器这三字忽悠人
    imkerberos
        35
    imkerberos  
       118 天前
    坑位巨少
    diagnostics
        36
    diagnostics  
       118 天前
    @chesha1 apache 混到 PMC ,该找不到工作还是找不到工作
    anthow
        37
    anthow  
       118 天前
    @VERT1GO 楼主想来做数据库么?
    anthow
        38
    anthow  
       118 天前
    @VERT1GO 我们这边也有很多是从零开始搞数据库内核的,不用担心不适应,也是技术为导向,部门一堆十几年的内核老鸟。
    zhouquanbest
        39
    zhouquanbest  
       118 天前
    我是搞移动端这个方向的,但也大差不差了
    u1s1 其实很小众,只有大厂养得起,但现在大厂需求也不多,唯一适合的就是往效能方向走,但留下来能吃的红利很少了。
    如果是小厂 or 创业搞,这个阶段更难。
    spidah
        40
    spidah  
       118 天前
    一看就是 2012 底下的
    mistygg
        41
    mistygg  
       117 天前
    无脑去啊,这还用想。越难的事情做的人越少,价值越大
    echoechoin
        42
    echoechoin  
       117 天前
    编译器开发应该可以做代码动态扫描,coverity 就是做这个的
    Austaras
        43
    Austaras  
       117 天前
    总之就是很少人抢更少的岗位,而且要读大量书和论文,lz 看着办吧
    dododada
        44
    dododada  
       116 天前
    不懂,觉得比较高深。就像以前有个腾讯大哥拉我去写数据库一样,我说不会 C ,大哥说慢慢学嘛,我问不要产出么?大哥说学起来很快的。。。

    但是华为的鲲鹏+昇腾,还是有东西的,真的有东西
    Charlie17Li
        45
    Charlie17Li  
       116 天前 via iPhone
    好像缺人?我之前室友面华子,非编译器方向,结果最后问他愿不愿意转编译器方向
    pippoflow
        46
    pippoflow  
       115 天前
    有这样的机会当然去。何止编译器。其它很多东西都比写业务代码有意思吧?问题的本质其实是:面试过不过得了?
    ecnelises
        47
    ecnelises  
       95 天前   ❤️ 1
    我就是做编译器的,现在还在找工作中,可能比前面的 V 友相对更有发言权一点…这个领域上限当然是高,国内中科院有专门的实验室,看到认识的学弟飞去国外参加各种顶会。但不代表就业门槛真的就那么高,因为任何行当都有搬砖的不是?

    就业角度,编译器好的地方在于,它能和很多领域沾边,所以就算传统编译器已经成熟了,也总能有几个关联方向火。比如前端方面,一是静态分析工具,二是国内外大厂到一定规模都会搞自己的语言(有的并不对外公开),三是搞 AI 加速芯片需要开发自己类似 CUDA 的 DSL ,这几个都对编译器前端技能有要求。

    中端方面,很多 AI 的 workload 需要高层次的算子优化(也就是传说中的 AI 编译器),有些代码库非常大的公司也有针对性调优的需求,另外传统编译器里也有做中端优化的空间。

    后端方面,面向经典 CPU 的传统编译器是最多的场景,每个指令集的 vendor 都会养一帮人维护后端(比如 intel 、arm ,像华为高通也有给开源编译器 arm 后端贡献代码),然后是各种 GPU 或者 NPU 后端,现在还有需求就是基于 RISCV 的各种魔改芯片也需要后端开发的人力。还有就是高级语言虚拟机,比如 JS 、Python 引擎这类,这种岗位国内很少,JVM 多一些。

    差不多 2017 年以前,国内做编译器的团队很少,能找到的工作都是外企。后面贸易战,国内大笔投资芯片,RISCV 逐渐成熟,又有 AI 这波热度,Golang 、Rust 这些新语言流行也让大厂的基础设施团队发现了新 KPI 来源,总之现在编译器相关的岗其实比原来多了很多。18 年校招的时候面试腾讯,面试官说你想做什么我们腾讯什么都有,我说编译器,他尴尬地说这个真没有😅结果现在腾讯也有编译器岗了。

    小不小众,肯定是不如 Web 或者云就业范围广的,但反过来也意味着不卷,总之各种 HR 都抱怨编译的人不好招。菊花的话,可能是家大业大,内部有非常多个团队(可能我能想到的就有 3-4 个)都在做编译器,所以有人才缺口。认识的行业内 35 岁以上的…也不少了,但大环境在这里,年龄总归对再就业有影响。等下个月把工作搞定打算再开个帖子讲讲。
    FIllerFooo
        48
    FIllerFooo  
       37 天前
    @ecnelises 大佬我还等着你讲编译器呢
    ecnelises
        49
    ecnelises  
       30 天前
    @FIllerFooo

    怕尴尬,就不开新贴了。

    最近聊了一圈,其实编译后端机会比较多,这块也比较贴近传统概念里编译器的概念,半导体创业公司或者巨头新部门几乎都是基于 RISC-V ,所以如果懂点 LLVM 后端又了解一点 RISC-V 指令集,找个机会不难。麻烦的是大部分团队面上都不喜欢应届生(或许学校里搞过开源项目也可以去聊聊试试)。

    半导体未来几年是国内热点,连带着编译器也有前景的。每家公司都想往里塞私货( RV 本来也支持扩展),所以都需要人。企业主要有:各种芯片创业企业、寒武纪、地平线、华为、阿里巴巴、中兴,外企也有人但现在都在收缩几乎不招人。

    互联网公司也会招做编译器的人,但除了那种真有搞芯片或者基础研究部门的企业外,很大部分其实是挂羊头卖狗肉,是希望能帮助编译器的高级技术和优化落地。面试的时候还发现有意思的现象:有些面试官自己并没有做中端优化的经验,工作岗位也不涉及中端优化,但就是喜欢拿这点来纠缠面试者。原因大概是前端在他们眼中逼格不高,后端不懂的话又完全没办法聊,只能附庸风雅这样子。

    另一部分是 AI 编译器,最近发现互联网大厂和车厂都缺这块人材。但这种岗位相当于要求候选人又要懂编译、又要懂 ISA 、又要懂 AI 算法,所以不好招,热点在这里,待遇肯定顶。

    有很多团队有自研语言的计划,所以可能也招编译器,做的事可能有意思,但大部分在公司里都属于中层领导硬搞 KPI 的项目,盈利不好说砍就砍,慎重。

    还有一个点,就是编译出身的人可能有两类截然不同的背景,一类是传统芯片公司,一类是外企,相当于卷度两端,找工作注意甄别(
    FIllerFooo
        50
    FIllerFooo  
       29 天前 via Android
    @ecnelises 感谢大佬回复,讲了很多方向!感觉这个技术路线还是挺不通用的( ai 编译器和传统编译器应该是两个不一样的东西)。还有就是,感觉这个方面,对新手不友好啊,缺少友好的资料(可能我孤陋寡闻),公司也不太喜欢找应届生(新人),而且如果进不到你上面讲的那些公司是不是就没有退而求其次的选择了?(不像搞 web 那么通用)。
    ecnelises
        51
    ecnelises  
       29 天前
    @FIllerFooo
    AI 编译器和传统编译器确实很不一样,但总归有点相似之处,有传统编译背景的人要上手会更快。只是看起来这些企业招人希望能马上干活,预期级别又偏高,所以留给转行的人机会偏少。你可以看看知乎上一个叫「蓝色」的人,他在 AI 编译这块专业一些。

    资料这块,我不是 AI 编译从业者所以不算特别了解,资料少在我看来是因为变化太快,各种新框架新技术层出不穷,有点之前前端圈子那味道,TensorFlow 是个较好的切入点,因为更成熟,学习材料也更多。传统编译器资料就非常完善了,前端无非是语言标准+Parse 算法+ANTLR 这样的生成器,后端就是查各种指令集微架构还有代码里的奇技淫巧 (常见的 x86/arm/riscv 三个),中端各种 Pass 都是无数篇论文的成熟算法。这些都找得到对应的书或者博客,LLVM 代码模块化做得很好,国内国外都有讲 LLVM 的书了。

    编译这个方向不通用很正常,毕竟往大了看都是小众技术,但其实除开 Web 其他很多方向也未必多热门。比如前几年短视频火热,招音视频开发的就多,待遇也水涨船高,现在也下来了。大厂搞 Web 的岗位竞争过于激烈了不如换条赛道,小厂按我理解只要能干活其实背景要求没那么多,即使是 Web ,非 Java 和 Go 的语言也许还有捡漏机会 (大环境是对创业不友好,但企业还有一些的)。总之就是应届生多个技能就是多条出路,越主流的也就越卷
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1232 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 17:52 · PVG 01:52 · LAX 09:52 · JFK 12:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.