今天聊点不一样的,百万年薪需要具备的能力

达到百万年薪的技术人通常需要成为技术专家或架构师。技术专家需精通某一领域,如JVM、MySQL;架构师则需掌握大型复杂架构和管理。底层知识对于两者都很关键,尤其是对于高级架构师。学习路径包括C语言、汇编、Linux应用层和内核层等。即使半路出家,深入学习底层技术也能提供竞争优势。创业前的充分准备和技术积累也是成功的关键。
摘要由CSDN通过智能技术生成

哈喽,大家好,我是江湖人送外号[道格牙]的子牙老师。

昨天看到小伙伴们在群里疯狂讨论:百万年薪需要具备的能力,半路出家、没学历有没有机会进大厂手拿百万年薪……从疯狂程度来看,这个问题应该是很多小伙伴感兴趣的,分享篇文章谈谈我的见解吧,顺便谈下我目前在做的手写JVM与这个目标之间的关系。

感觉道理大家都懂,有几位小伙伴的答案我觉得还不错,贴一下
在这里插入图片描述
在这里插入图片描述

我的见解

技术人想达到百万年薪,我觉得有这么三条路:

  1. 技术专家,即聚集某一个方向。比如你就玩JVM、MySQL…玩得贼溜,比如R大、丁奇…之前看老罗的演讲,听他说国内玩安卓底层玩得深的,能做定制的,就那么几个人,如瑰宝般,百万年薪都请不动。这就是聚焦的力量。
  2. 架构师,即能cover大型复杂架构。比如淘宝的整体架构、订单业务线、商品业务线…这个肯定不是一个人能做到的,所以你就得技术OK,架构OK,管理OK。除此之外,还得有大局观、总体观。任何一个环节出问题,都要背责任,压力还是非常大的。目前做了大量的容灾措施,故障自动恢复最快能到秒级,相对来说能多睡几个安稳觉。
  3. 创业。这条路后面单独写吧。因为创业在我看来,其实只是一个节点,技术人在创业之前最好做了充足的准备,不要开始创业了才开始试错。技术人的试错成本是很高的。那要做哪些准备呢,如何做准备呢…小佬们,扶我起来,我还能写!

所以说,在职场上,达到百万年薪不是一件容易的事情。目前国内能给到百年年薪的公司,屈指可数。而在能给到的公司里,百万年薪的技术人也是屈指可数。比如阿里,P8及以上才能百万年薪。按照阿里技术人总数来算,千里挑一吧。于技术人来说,年薪50-70,是最舒服的区间,自己的努力加天赋加一点机遇就可以达到,而且这个收入在国内,就算是一线城市,也可以过得比较舒服。但是谁愿意一辈子没有出头之日呢?

展开讲讲

拿Java架构师来说,那要学的东西实在太多了:spring、spring boot、mybatis…微服务技术栈…各种层出不穷的新技术…能干活,这些都是基础的技术能力。你想做出结结实实的架构方案,需要你对这些技术栈的底层原理有足够的了解,还有中间件的底层原理如:JVM、MySQL、Redis…还有操作系统机制:多线程、网络、IO…总是看到有小伙伴抱怨进去就是CRUD,面试啥都问,现在懂了吧。

我个人觉得,这条路是最容易入门的,也是市场需求最大的,但是也是投入产出比最低的。能学到自闭,CRUD代码写到麻木。很多小伙伴的技术人生已经开始或已经走到中途,只能继续前行了。下一代如果还走技术这条路,搞基础研究吧。更有趣,更聚焦,更有前途。

接触的很多小伙伴是Java程序员,未来可能的方向是架构师,所以总是问我:学底层有什么用啊、学底层能做什么工作啊…架构师路线与技术专家路线,对于底层,区别就是:低级别的架构师,懂就够了。高级别的架构师,其实跟走技术专家路线是一样的,不仅要懂,还得有动手能力。这也就是为什么同样是架构师,薪资差距那么大的原因。因为懂与动手能力之间,又是一条长长的鸿沟。
在这里插入图片描述

如果你抱着走架构师路线的希望前行,一点底层都不学,运气好走上去了倒还好,运气不好没遇到好机会,就没得选择了,可能一辈子就那样了。但是如果你选的是技术专家路线,未来转向架构师方向,其实还是容易的。补深度比补广度,难度可不是一个数量级的。
在这里插入图片描述

不是因为我做底层课程我说这样的话,事实就是如此。不信的话可以问问你的老大,你能接触到的技术大佬。我自己就是靠卷底层改变命运的最好证明。

如果你半路出家,大家同样是Java,你觉得你能在哪方面胜出让面试官选择你。如果你说你聪明努力学习能力强,那我可以告诉你,这一点优势都没有,只是你接触的厉害的人可能还少,你跟他们比可能在这些方面略胜一筹。但现实是大家都很强。除非你去做难的事情,做别人不愿意做的事情,而这个事情又是必须的,这就是弯道超车之道。

学底层还有一个好处,就是你创业的时候。因为底层它确实难,如果你从很早期就开始沉淀,能力成形了,技术就是你的商业壁垒。大家可以看整个市场,Java圈,教底层的极少,结合Hotspot源码教底层的,目前就我一个。

怎么学

我们经常说学底层,那底层到底指哪些呢?我个人的观点:汇编、C语言、C++、Linux应用层、Linux内核层、数据结构、基础算法。

那要怎么学呢:

  1. 先学C语言,然后学汇编,然后结合汇编学习C语言以达到精通的目的,然后去学习C++,这样就把汇编、C语言、C++都学会了
  2. 有了语言层面的底子,就可以去学习OS应用层了。比如Linux的多线程机制、网络机制、IO机制、进程间通信、线程间通信…
  3. 有了语言底子,又对OS应用层有一定的了解了,就可以去攻克操作系统内核了。至此,计算机底子就打完了,天高任鸟飞。

当然,每个阶段都要写点东西加深理解。写什么?写基础算法,比如JVM的内存池、垃圾收集算法、JMM、线程池、NIO…我基本都写过。操作系统内核级别的也写过很多:自建应用态切内核态框架、重写调试API过游戏监测、过企鹅内核级游戏保护驱动TenProtect…
在这里插入图片描述
我平时会分享一些技术文章,感兴趣的小伙伴可以关注一波。我的公众号:硬核子牙

结语

其实技术这个行业真的不难,如果有人带,打底子1-2年,沉淀2-3年,足矣。我自己一步步探索,走得还算顺利,大概花了七年时间。

给大家看看我之前写的一些项目,证明下我不是在吹牛。我不喜欢吹牛,我也不喜欢水课水文章,内心接受不了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值