linux内核工程师是青春饭吗?

论坛 期权论坛 期权     
爱的用户   2020-4-25 00:04   8756   5
如题,本人今年28岁,毕业以后一直在私企从事java后端开发,但是随着年龄的增大内心也是惶恐不安,没错就是程序员的中年危机,如果自己在35岁之前熬不到管理岗,那么这辈子是不是就game over了?最近听说linux内核或者驱动工程师是越老越吃香,而且学起来难度较大,所以最近有思考 ,想要学这个方面的内容(虽然28岁,不过还没成家,所以时间还是有的),题主在大学时有c语言和汇编的基础,不过没玩过开发板!!!不知道各位对我这种想法有什么建议,请各位照实明说,本人能够接受各种批评,话说的难听点也无所谓 ,就当是骂醒了我,还请各位不吝赐教!!!
分享到 :
0 人收藏

5 个回复

倒序浏览
2#
热心小回应  16级独孤 | 2020-4-25 00:04:26 发帖IP地址来自
再次强调,不要把linux内核当作程序员的圣杯。那些linux内核大佬可不是仅仅只会开发内核贡献代码,linux周边如硬件驱动,网络协议栈,内存模型,文件系统都是研究很深。
同时,我们还忘记一样非常重要的东西,叫作随项目一起发展,linux是一个时代的产物,同样在这个时代有一批人随他而成长,每个linux路线的提出、变更、争吵、分歧,他们都身在其中,在linux的黄金时代、这个酱缸中耳濡目染,知道来龙去脉(这个太重要了,你不在这个里面浸泡,怎么知道它的精髓内核,况且它本身就叫内核,哈哈)。
所以错过了一个时代,错了一个产品的大发展时期,再去学习它,第一要学习的知识面太多Linux开发不是一个恶补知识就能学会的,需要循序渐进,需要润物细无声,第二,你不能很好的体会它的设计哲学。第三,内核已经非常健全巩固,如果你还想在它上面有新的突破和改进,不是不可能,但难度何其大呢。第四,Linux贡献率呈现出公司化集团化特征,并以海外大的硬件公司占多数,这是一份2017年的统计数据

你能做的,是站在巨人的肩膀上,去学习linux现在更流行的知识,区块链、容器化docker、kubernetes,这些比较火的项目都需要一些golang编程语言,linux网络等知识,这些是不是更可行呢?如果你有深入linux内核的激情和极客精神,我觉得为这些项目贡献源码是不是更具有现实意义呢,比如找工作,面试,写博客,创业等等。
分享点有趣的:
四岁小女孩为linux内核贡献提交
一张内核开发的历史上的分支图


3#
热心小回应  16级独孤 | 2020-4-25 00:04:27 发帖IP地址来自
按照题主的表达方式来回答:技术钻研到比较深入,就是铁饭碗。
以linux内核为例,现在的行情是,国内kernel开发人员奇缺,如果你有在kernel上commit过,华为HR会直接过来甩OFFER。
在计算机的工程领域,之前,中国的互联网主要是依赖美国成熟的技术在应用领域发展,所以看上去年轻的Java架构师/APP开发工程师等是主流,因为应用层面的开发并不需要太深入的系统理解和太丰富的经验,靠学东西快、能加班熬时间就够了;之后,随着中美竞争的加剧,中国的公司会直接进入最基础的技术开发领域,这块国内目前最强的非华为莫属,当然我们看到阿里、腾讯等一些巨头也在加快进入。在更难的、更基础的研发领域,对知识掌握的深入程度、经验的丰富程度就变得非常重要,所以年龄较大但是功底更加扎实的工程师就有了重要的作用。
这就像应付高考,你只需要努力勤奋、记忆力好就行了,而对奥数,必须要考验智商天赋。
综合起来,给你的建议是:如果要想在计算机工程师这条路上一路走下去,就需要把CPU->内核->程序语言->工程架构,这个链条理解打通,真正明白程序是如何运行的、每种编程语言的存在意义、各类架构分别是解决什么问题、CPU和内核如何分工协作等等。做到了这些,你就能做到,遇到任何一种新概念,能够迅速确定它在知识体系中的定位和演化的起源方向;遇到任何一个项目,差不多能估算难度和开发量;遇到任何一个工程师,能够去“量”对方的含金量。
这样,你35岁之后,就可以躺着靠技术吃饭了,管理岗想干就试试,不想干就做技术,反正团队都得供着你。
加油~向着目标前进
4#
热心小回应  16级独孤 | 2020-4-25 00:04:28 发帖IP地址来自
看一个岗位是不是青春饭很简单,就看你的经验有没有用,未来有没有人愿意出钱买这部分经验。
医生为什么越老越值钱,因为人体结构一成不变,得到的经验永远不过时。
IT行业内使用的集群架构想一成不变本来就很难,但可以肯定得是,越往低层(网络、系统)变得可能性越小,上层应用五花八门,更新换代非常快。而且国内现在很多公司做的工作低端偏多,一个/几个有经验的,带一帮年轻没经验的,搞太多有经验的工资开销太大了。
我是做系统运维的,主搞linux,身边养老的同事非常多,40岁左右的不少。目前企业服务器的系统选择基本就是linux和windows,aix系统等小型机系统也属于unix衍生系统,光是搞明白linux的使用和维护,我觉得10年内吃碗饭就没问题的,但是必须配合上主流平台、主流云、主流应用的运维知识。
在国内环境下,我认为搞linux内核开发跟java开发比,还是偏经验饭一些,但是对技术要求还是挺高的,除了C/C++语言开发,了解内核、看内核源代码,分析系统疑难杂症、kvm虚拟化、内核存储、IO、网络栈这些也都要学习,反正不断学习是免不了啦,这些都掌握了估计你会很抢手的。好的内核开发的工作对经验要求都挺高,题主没经验怎么获得经验也是个问题。
openshift结合docker的CICD、devops开发现在都很火爆。ibm收购红帽以后linux势头挺猛的,openshift现在市场占有份额非常大,redhat的课程题主可以都做了解,java开发想在同行业内转行难度还是相对小一些。
5#
热心小回应  16级独孤 | 2020-4-25 00:04:29 发帖IP地址来自
这是个让人哭笑不得的问题,什么叫青春饭?我理解只有运动员,偶像剧演员是青春饭,那是靠体力靠颜值,而靠脑力赚钱的工程师只跟技术积累有关,有人鼓吹所谓“中年危机”更是伪概念,危机跟年龄无关,跟个人有关,你会发现有中年危机的人青年时就不好找工作有危机,到了中年就变成中年危机,到老年时又成了老年危机 ,而那些踏实学习认真努力的人从来没有这些问题,真有技术别说35,就是53也有公司抢的,这种例子多的是。
回到Linux,内核开发门槛是相对较高的,这有坏处也有好处,看你怎么选择了,根据我的经历基本上一个普通大学计算机相关专业本科毕业成为一个合格的内核开发需要5-10年,技术栈比较稳定,你需要掌握
内核入门:计算机体系结构(流水线、缓存、MMU、中断、总线、设备控制器),内存管理,内核同步,进程切换
内核架构:进程管理,文件系统,存储管理,设备驱动,网络协议,其他内核模块(虚拟化、安全等)
其中入门部分全部要懂,架构部分选一个领域就行(搞清楚一个就很厉害了 )。
目前国内互联网大公司、做基础软件的外企、芯片设计公司、服务器或嵌入式设备公司都对内核开发有岗位需求,收入基本在阿里P7水平或往上,不要菜鸟。
6#
热心小回应  16级独孤 | 2020-4-25 00:04:30 发帖IP地址来自
不只不是青春饭,它可能连饭都不是,只有linus那些大佬敢说我靠os kernel恰饭的,他们也做到了,我们通通靠边站,不要拿历史人物给自己打鸡血,甚至80的真香就是90后的臭狗屎。
应该除了ic公司,全世界只是写内核代码的岗位很少,你总要去做别的东西。即使存储公司像emc这样,也很难有个专门是内核的岗位,所以哪里有这个岗位呀,连Gregg也不是纯粹的所谓内核工程师吧。而且驱动真的和内核有关吗?入门选手有关,对于老年人来说没关。
简单点说,内核这么简单的软件不足以让一个职业选手度过漫长的职业生涯,细节是很多,谁关心呢?我很长时间也靠我知道哪个配置,我知道什么功能应该去哪里改代码坑钱,因为系统级的代码嘛,总有傻叉啥也不懂,乖乖送上几十万,但是,你不能总靠这样坑蒙拐骗维持体面的生活的,你漫长的职业生涯,你的脑回路要比内核这么简单的软件要深邃,不要鄙视业务,信奉什么狗屁底层,这种都是幼齿。说白了,大公司招聘很多时候都是找别人培养的人节省自己的时间,但是这样的人,一旦把你用废了,怎么玩你只是时间问题。而内核也并不是民工行业,你试试去华为或者英特尔高通这种公司写内核,也会发现它跟java web也没啥区别,只是知识领域不同,说白了,只是换了一下砖。
能够对抗职业危机的只有聪明,付出,远见和运气,把未来寄希望于一个软件一个框架都是愚蠢的。你可以看看内核老司机离开大厂都在弄啥,他们在培训你们入坑呢。干啥不重要,你得看得住场子有自己主见和预判才行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:342608
帖子:68643
精华:1
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP