最近在整理我学习过的应用层的开发技术,发现大多数技术其实没有什么深度,我们学习的大多数技术其实就是步骤记录,操作指南,也正因为如此,培训班可以将 0 基础的人培养为一个初级程序员,web 开发也会越来越卷,技术也越来越不值钱,同时因为都是应用层的技术,所以一旦语言不流行或者框架不流行,自己就得学新的技术栈,疲于奔命,具体的观点,在我的博客的文章, xiashuo.xyz/posts/others/dev_thought/is_programming_technology/,中详细描述过,也正因为如此,小弟想请教大哥们,有那些偏底层的开发,是有一定门槛,同时在技术的发展过程中比较稳定的,我自己只能想到 Linux 内核相关的开发、中间件开发这样的工作,求各位大哥们教教老弟

博客链接: xiashuo.xyz/posts/others/dev_thought/is_programming_technology/

编译器、音视频、无线传输

链接点进去直接带了后面的内容显示有问题,可以改一下

工业软件图形学

底层要数学,有的还要高数、随机过程这些东西,数学不好的真卷不动,底层优化需要严谨的数学和工程性证明的

不好意思,在地铁上用手机发的帖子,没有编辑格式,等到了公司就 append 一下

写了 10+ 年 java ,刚才还在改 jsp 的表示,这玩意真稳定啊…我觉得楼主要不要逆向思维一下,考虑一下需求和业务呢?

自己实现一个 TCP/IP 协议栈?完全不用别人的库,如果你能实现出来就可以进行下一步了,不然趁早放弃

要不考虑考虑通信协议

应用层缺少深度我认可...但如果你觉得永无出头之日就换底层开发的话,你会失望的哈哈哈.

全栈: 前端,后端,应用层;还不够,就再加个算法层

哎,感觉底层更惨烈,大家永远用最优秀的那一个。

问题是大多数老板看不到底层的价值,能生产直接价值的技术 才是当前老板们需要的

业务层都写不明白还想写底层

可以学习下最近流行的各种使用 web 技术开发桌面 gui 的应用

底层可不是几年就能卷出来的

底层的工作机会更少,也很内卷。

国内技术都没啥出路...

底层要学得东西更多,而且比应用层更难,还高度与硬件绑定,只是生命周期长一点,也不存在绝对的铁饭碗。想想看前面做 PalmOS ,Windows Phone 操作系统级别开发的,还不是惨。

无线传输指的是啥,文件隔空投送这类? 这个国内自己都没起步,手动笑哭.jpg 学啥不是学呢,学吧 前两天看个帖子,还在说 jsp 被淘汰了,手动笑哭.jpg ,需求和业务是个方向,谢谢老哥 通信协议是个方向,谢谢老哥

并不是吧,十分幸运刚毕业就进了某游戏公司做反外挂研究开发,入行 8 年了,中间做了 4 家公司 都是一面就过了,主要是不好招人,外面的培训班相关的二进制安全课程都是二十多年前的技术,现在的游戏公司都不招培训班的,現在游戏安全入行门槛极高,没打过国际性的 CTF, 连面试机会都没

看来还是认知有问题,你做应用层做不下去了,看到一个做底层的人过的很好,所以你理解为做底层比应用层好。。。是吧。。你所理解的底层岗位更少,更需要资历,应用层为什么人最多,因为 99%的公司不需要底层开发。单纯的硬件发展+技术更新已经足够应付业务的发展了,现在做底层开发的大佬都是哪年毕业的你要不要去问一问。。

我的建议是你最好选一个你比较感兴趣的方向。原则是当做起来的时候,哪怕给你一本几百上千页的 spec 读起来也不会觉得痛苦的。兴趣就是核心竞争力,剩下的积累只是时间的问题。另外需要做好一个心里准备是,底层的东西大部分时间都需要和硬件进行绑定的。写一个硬件的驱动程序之类的就不说了,哪怕是那些操作系统、编译器等等看上去光鲜亮丽的方向,实际上大部分人做的也是和底下硬件、指令集适配那一块,比如把一个已经工作的功能移植到一个新平台上,或者修复在某一个硬件平台上的 bug 。一些核心内容经过这么多年发展早已定型,而一些创新内容什么的,基本是要有研究背景的,普通工程师不挨着边。

底层别琢磨了 还不如卷卷业务,转行产品

你这段话意思不就是机会更少,更加内卷吗?除了第一句介绍一下自己多么幸运

内核方向主要都是老人,都在几个大厂,坑很少。网络方向可以关注一下,稍微好一点点:1. 7 层网关:nginx 、envoy 开发等2. 3-4 层网关:如 DPDK 开发,可以参考 dpvs, dperf 项目了解一下 dperf.org/

搞 UVM ,system verilog 吧。 这个底层的现在特别火。

谢谢老哥提供的视角,谢谢

你这 title 就说反了,应用层路才宽,需求多且可持续

老哥的回复最实在,我去了解了解

国内除了考公入编,有啥有出路的

应用层岗位多,人也多;底层岗位少,人也少 :(------------------五、六年前,同学转前端互联网相关,一周 10 个面试,我去底层安全,一周 1 、2 个面试,要求高,薪资也还行 :(------------------底层开发的混子相对少一些,而且比较难混得动,混不动的转岗转行,开发岗位少,竞争其实也大。但主要还是选业务方向,欢迎来卷底层 :)但现在大陆互联网这就业环境,选啥都差不多,无外乎早失业、晚失业、牛马就业 ,能润尽润海外,不能也撑过寒冬吧 :)

业务才值钱,底层工作门槛高机会少

可以试试学习游戏后端主程、搜索推荐广告引擎开发等~ 机器学习相关~

底层开发 只有打工一个 路子 不能创业

要赚钱的话还真是离钱越近的岗位越赚钱,能拉到业务接到单,就是大爹

应用层应该去卷业务而不是前端技术

op 的想法其实挺合理的,像前端框架迭代就快的离谱。底层也不用像前面说的到 compiler 这么底层吧。。大厂做 infra 做 DB 的坑还是不少的

PalmOS 可惜了,当年 palm pre 是真的丝滑。。。

尤其是行业应用,比如 电力、医疗、制造 ,业务才是壁垒而不是技术

底层不也服务业务吗,如果业务不行,照样很难有出头之日,何况目前技术的发展程度,你要卷一个新的底层/老的成熟底层 真的太难了

无线传输现在应该就是通信协议+硬件,其实还可以考虑嵌入式的。

有没有一种可能,并不是技术的问题

等过了 35 再来看这个问题。

这行业做底层开发的,少说也工作 10 年~ 15 年经验了,怎么可能卷的过。大牛之所以成为大牛,并不是因为占了一个好坑位,而是人家智商高,本来就很牛。同样的赛道,我们普通人去竞争,就未必能成为大牛。

浏览器引擎、内核有搞头吗

设备形态怎么变化,无非就是声音、视觉吧。应该可以从这两个方面找相关的产业和方向,底层音视频、图形学什么的

底层更卷。比如类 redis 的东西不知道有多少了,实际上大家用的只有 redis 。池子越大越容易混。

城里的人想出去,城外的人想进来你想想你是城里的人还是城外的人

AI 都在要把 0101 转出自然语言了,一直靠代码编程必然是没出路

要想稳定?小型机+COBOL 最稳定。

有搞头, 你把 linux 或 windows 整个移植到浏览器里面,exe 可以在页面里面执行,一个页面一个独立的沙盒操作系统。 有钱途吗?

曾经我也认为搞底层才是 NB 的。后来懂了,NB 是 NB ,但是确实很难。现在想开了,就搞应用层,但也不一门心思搞代码,多理解业务。

思维发散下,做产品,搞管理

我感觉得看你的语种,比如 C 或 C#你才能接触到偏底层的知识,Golang 你可以接触到区块链和 devops 底层。如果是 web 开发,你是前端的话可以折腾 rust 给自己锦上添花。如果是 php 就可以考虑 C 了。

找个工作中用到的开源项目参与进去,你逐渐也就可以做的很深入

这样看来游戏开发可真是个无底洞, 越深入做的越久越觉得还有好多不会的 从多路复用含有复杂状态的分布式到二进制协议封包自定义, 到 UI 展示几个按钮可以同时一起给 GPU 画, 到多个角色同屏降低 cpu 开销, 到降低 cpu 的 cachemiss, 把逻辑放到 gpu 计算. 再到 gpu 计算,NPR,PBR 效果

脱离业务的底层是最容易被开源项目替代的,很多年前公司还都是自己实现类似 redis 这样的服务哪。而且做底层的因为远离业务很难有升职机会,基本都是做业务的上位,原因当然大家都知道。

底层是科学,上层是技术,你要是没有那么强的科研能力,还是不要惦记为好。

底层的进展比较缓慢,但是坑位也少,像我们团队目前的性能优化方向全职岗位没太多公司有岗位。。

搞好业务才能有发展,没有业务,就没有生存的土壤

而且技术的深浅的重要程度取决于你的目标,如果你的目标是想赚很多很多钱,那可能钻研技术并不是一件好事;而如果你的目标是通过技术赚一些钱,那可能比较适合。先想清楚自己想要什么再考虑要做什么会比较好,越底层的团队感知力越弱,在业务下行的时候越容易成为成本团队。

"大多数技术其实没有什么深度" 人家给你包装好了 ≠ 没有深度 你现在在用的很多方便的东西,架构之精妙推荐你去多钻研一下,包括很多人说学科教育与实际生产相脱节,其实学校里教你的一些脱节内容才是需要你真正去了解的内容。 因为现在生产用到的这套东西多半是构建于这些“脱节”内容之上的。

底层,类似 linux 内核这样的,自学的效果并不好,还是需要实际项目推动,积累经验

如果能做到 7 天快速学习一门语言,这些都不是问题,什么是问题,是你切入到新场景的机会,这是个问题。

协议栈、通信协议 可以看一下这个库 github.com/hankai17/quic-fiber 是用 c11 协程实现的把 quic 的传输控制逻辑抽取出来

研究逆向吧「安全攻防」或「歪门邪道」任你选择

就得卷业务啊,一是与钱最近,二是变化无穷,永远有需求的。底层多少年不变,也不好卷

#4 连机器学习那些一阶线性回归方程啥的,算偏微分的东西都能封装成一句函数,硬件层的东西一样掉包侠

VPN 协议

调包无出头之日,写包才有光明的未来

底层要去大厂,能进去就可以卷一辈子

我也是这么想的,所以最近在学 Linux 内核相关的技术。

不单是几年的问题,不是金字塔尖基本上卷不出来。。。

Framework 层开发吧,比底层要容易点吧,现在车机也挺火的,就业面也广

学完之后发现,更无出头之日,开发只是工具,值钱的是业务、生意

欢迎来 NV 做 GPU 计算体系架构,AI 时代最底层最硬核的工作之一

相对应用来说,底层是枯燥乏味的,可要想清楚了。

做底层先别考虑出不出头,兴许会饿死

信创相关

你这个想法有点像做销售的认为自己无出头之日应该回内勤做客服。我只能说在每个领域都有出头的人和没出头的人。换赛道并不会让人直接出头,只是看你自己更适合哪个赛道。

底层的需求跟应用层比例大概是 1:100 甚至更多底层要求高性能,高稳定性,不是一般人能搞定的搞定以后基本都开始套娃了比如一个汇编开发的驱动,会被 C ,JAVA ,node ,C#,C++等等再套一遍给各自的生态进行调用

应用层我还可以发展下副业,做做自己的小产品或者做做外包,多少算是个盼头。 到了底层,这种机会可就更少了

卷应用层最大出路就是 独立开发者、做项目创业、,然后实现财富自由。

我只能说 国内技术没啥好的出路 可以跳出技术的思维 搞点别的

这条路怕是不比卷底层容易多少吧。。

你要做的是提高眼界 站在巨人的肩膀上,gpt 出来 已经有多少人靠着这个 api 实现了发家致富

compiler :-)

我觉得 OP 想法合理,问题是的确需要手上一把技术,要不就是有贵人提携。

这个问题很简单,你平时用什么搞你自己的应用,你挑个顺眼的多研究研究, 以后就干这个就行。比如你用 Webpack 用的多,那就研究打包工具怎么写好了。你说你懒得研究,或者看不懂,那当我没说…

我们都知道,软件开发技能有时效性,十年前学习的编程知识,十年后几乎肯定不能用于生产。那样的话,软件开发就不能算真正的知识,只是一种实施的细节。我十年前学习的 verilog 、c 、shell 、vanilla js 、python 都在用于生产

多媒体、传输协议、BIOS 开发

可以学习它的代码、架构;就业层面,之前很多搞跨平台渲染,到最后都不如 Native ,所以现实中岗位并不多。

业务才是最值钱的,大部分产品应用层是离业务最近的地方,换个角度看问题,可能会得出不一样的结论

程序员都有个惯性思维,觉得技术越牛逼就越值钱。实际上在市场中,技术只是实现商业目的的手段。当然也有值钱的技术,,但是值钱的技术都是垄断的技术。中国从来都不是一个重视技术的国家。在中国,我们被教育要有奉献精神,以吃苦耐劳作为美德。还有中国知识版权保障也不完善,,你开发了新技术,,别人直接抄就完事。Adobe 全家桶这些软件就挺有技术含量的,但他们都没有诞生在中国。ChatGPT 也是最开始诞生在美国。还有最近我在学习的 Docker 和 k8s ,他们都诞生在美国。你能叫得上名的跨时代的技术,这些技术就值钱,但他们都没有诞生在中国。在中国做技术是没前途的。大多数人只是用技术混个温饱而已。中国整个 IT 产业都没有核心技术,,商业公司也只是做应用层面的创新。所以,对于国内的环境来说,业务盈利比技术牛逼更重要。要想出头,,可以学习雷军,,从技术开始作为起点,转管理。然后成为职业经理人,一级一级晋升,成为公司合伙人或 CEO ,拿到公司的股权,,能够享受分红了,才能说是出头了。在中国,卷技术,就是一条死路。记得之前看过一个新闻,,说是一个工人焊接飞机发动机,全国只有他能做精度这么高的事,但是他的月薪却只有几千元,媒体还歌颂他的无私奉献。

谢谢老哥,你的回答,深入人心

一个人所获得的薪资是跟其所处行业的竞争烈度高度相关