2年了,1.1w+收藏!搞 Java 的年薪 40W 是什么水平?

JavaGuide

共 3631字,需浏览 8分钟

 ·

2021-04-18 20:57

昨天翻看我的知乎,发现了一个我在 2 年前写的回答现在已经有 1.1w+的收藏了。

其实,我当时在写这个回答的时候也才刚毕业,薪资水平也远不及 40w。真不知道是谁给我的勇气去回答这个问题的。不过,内容质量大家放心,当时为了写这篇回答,我询问了很多已经在 Java 领域已经深耕很多年的技术大佬。

今天给大家分享一下这个被 1.1w 多人收藏的回答!

年薪 40w 已经算很高的了,我觉得这个东西其实很难定义。有很多应届生凭借自己丰富的项目经历、不错的学校出生、在一些含金量比较高的比赛获奖的经历拿到了大厂 sp 或者 ssp 的 offer 的薪资就接近这个数了。

还有很多工作了 5 年多的 Java 程序员现在还拿着年薪不到 20w 的薪资。薪资水平并不能衡量一个程序员的技术水平,个人的选择、城市的差别、公司的不同都对自身的薪资会造成很大的影响。

Java 开发应届生的薪资还是要比算法岗工资稍微低一点,不过,算法岗是真心卷的不行,竞争压力太大了!

下面我就这两个纬度来说!

  • 对于工作了几年的开发者来说 : 自己除了要掌握 Java 领域常用的知识(比如并发、常用框架、分布式、微服务、高并发、高可用)之外,还要知道常用框架的底层原理,还要对其他技术有所了解以便技术选型,还要有丰富的开发经验以及优秀的排查问题的能力。另外还要具有独立设计开发一个系统的能力,能够带领一个团队协作开发,合理分工。
  • 对于应届生来说 : 优秀的个人经历加上接近完美的通过面试(了解技术的底层知识!!!算法必须要好!!!数据结构信手拈来!!!Java 后端基础知识要牢牢掌握!)。

不论是校招还是社招,我总结的这份《Java 学习/面试自测指南!200+道 Java 最常见面试题!》[1] ,你们都可以拿来自测一下。

还是用数据说话吧!

先从已经有两年左右开发经验的工程师角度来看: 我们来看一下阿里官网支付宝 Java 高级开发工程师的招聘要求,年薪至少 40w 起步了吧!从下面的招聘信息可以看出,除去 Java 基础/集合/多线程这些,这些能力格外重要:

  1. 底层知识比如 jvm :不只是懂理论更会实操;
  2. 面向对象编程能力 :我理解这个不仅包括“面向对象编程”,还有 SOLID 软件设计原则,相关阅读:《写了这么多年代码,你真的了解 SOLID 吗?》[2](我司大佬的一篇文章)
  3. 框架能力 :不只是使用那么简单,更要搞懂原理和机制!搞懂原理和机制的基础是要学会看源码。
  4. 分布式系统开发能力 :缓存、消息队列等等都要掌握,关键是还要能使用这些技术解决实际问题而不是纸上谈兵。
  5. 不错的 sense :喜欢和尝试新技术、追求编写优雅的代码等等。

再来看一下阿里云云原生微服务产品研发团队的招聘要求,年薪肯定远远超过 40w!

这个的要求其实更高了!这个岗位的后续工作大概率会涉及到底层框架(比如 Apache Dubbo,Spring Cloud Alibaba)的研发。因此,它的要求更侧重于你是否有底层框架的开发经验(会涉及到字节码编程并且你要知道市面上的一些常用框架的底层原理)。

再从应届生的角度来看: 我们还是看阿里巴巴的官网相关应届生 Java 工程师招聘岗位的相关要求。

结合阿里、腾讯等大厂招聘官网对于 Java 后端方向/后端方向的应届实习生的要求下面几点也提升你的个人竞争力:

  1. 参加过竞赛( 含金量超高的是 ACM );
  2. 对数据结构与算法非常熟练;
  3. 参与过实际项目(比如学校网站)
  4. 熟悉 Python、Shell、Perl 其中一门脚本语言;
  5. 熟悉如何优化 Java 代码、有写出质量更高的代码的意识;
  6. 熟悉 SOA 分布式相关的知识尤其是理论知识;
  7. 熟悉自己所用框架的底层知识比如 Spring;
  8. 有高并发开发经验;
  9. 有大数据开发经验等等。

从来到大学之后,我的好多阅历非常深的老师经常就会告诫我们:“ 一定要有一门自己的特长,不管是技术还好还是其他能力 ” 。我觉得这句话真的非常有道理!

刚刚也提到了要有一门特长,所以在这里再强调一点:公司不需要你什么都会,但是在某一方面你一定要有过于常人的优点。换言之就是我们不需要去掌握每一门技术(你也没精力去掌握这么多技术),而是需要去深入研究某一门技术,对于其他技术我们可以简单了解一下。

总结一下对于 Java 后端来说 40w 年薪必备的技术栈吧!

上面思维导图大概涵盖了技术面试可能会设计的技术,但是你不需要把上面的每一个知识点都搞得很熟悉,要分清主次,对于自己不熟悉的技术不要写在简历上,对于自己简单了解的技术不要说自己熟练掌握!

除了自身能力,高学历的的确更有优势

学校歧视很正常,真的太正常了,如果要抱怨的话,你只能抱怨自己没有进入名校。但是,千万不要动不动说自己学校差,动不动拿自己学校当做自己进不了大厂的借口,学历只是筛选简历的很多标准中的一个而已,如果你够优秀,简历够丰富,你也一样可以和名校同学一起同台竞争。

企业 HR 肯定是更喜欢高学历的人,毕竟 985,211 优秀人才比例肯定比普通学校高很多,HR 团队肯定会优先在这些学校里选。这就好比相亲,你是愿意在很多优秀的人中选一个优秀的,还是愿意在很多普通的人中选一个优秀的呢?

双非本科甚至是二本、三本甚至是专科的同学也有很多进入大厂的,不过比率相比于名校的低很多而已。从大厂招聘的结果上看,高学历人才的数量占据大头,那些成功进入 BAT、美团,京东,网易等大厂的双非本科甚至是二本、三本甚至是专科的同学往往是因为具备丰富的项目经历或者在某个含金量比较高的竞赛比如 ACM 中取得了不错的成绩。一部分学历不突出但能力出众的面试者能够进入大厂并不是说明学历不重要,而是学历的软肋能够通过其他的优势来弥补。 所以,如果你的学校不够好而你自己又想去大厂的话,建议你可以从这 3 点来做:

  1. 尽量在面试前最好有一个可以拿的出手的项目;
  2. 有实习条件的话,尽早出去实习,实习经历也会是你的简历的一个亮点(有能力在大厂实习最佳!);
  3. 参加一些含金量比较高的比赛,拿不拿得到名次没关系,重在锻炼。

建议还在学校的学弟学妹们一定要好好学习,操作系统、计算机组成原理、计算机网络真的不是没有实际用处的学科!!!

相关回答:

  • 作为软件工程专业或者计算机科学与技术专业毕业的学生,让你大学四年重头再来,你会如何安排你的大学四年?[3]
  • 计算机学院的学生该怎样提高自己的编程能力?[4]

Leetcode 算法题也要尽快刷起来,面试中的手撕算法环节是必备的。相关阅读:刷 LeetCode 吃力正常吗?[5]

参考资料

[1]

《Java 学习/面试自测指南!200+道 Java 最常见面试题!》: https://www.zhihu.com/question/443280657/answer/1764353783

[2]

《写了这么多年代码,你真的了解 SOLID 吗?》: https://insights.thoughtworks.cn/do-you-really-know-solid/

[3]

作为软件工程专业或者计算机科学与技术专业毕业的学生,让你大学四年重头再来,你会如何安排你的大学四年?: https://www.zhihu.com/question/426053091/answer/1543874706

[4]

计算机学院的学生该怎样提高自己的编程能力?: https://www.zhihu.com/question/423764018

[5]

刷 LeetCode 吃力正常吗?: https://www.zhihu.com/question/31092580/answer/1534887374



欢迎准备面试的朋友加入我的星球,一个纯 Java 面试交流圈子 !Ready!。目前星球已经更新 3 个原创小册:《Java面试进阶指北》《从零开始写一个 RPC 框架》 、《程序员副业赚钱之路》累计帮助 520+ 位球友提供了免费的简历修改服务,回答了 500+ 个问题,产出了 1300+ 个主题。

推荐👍 :1049天,100K!简单复盘!

推荐👍 :Github掘金计划:Github上的一些优质项目搜罗

我是 Guide哥,拥抱开源,喜欢烹饪。Github 接近 10w 点赞的开源项目 JavaGuide 的作者。未来几年,希望持续完善 JavaGuide,争取能够帮助更多学习 Java 的小伙伴!共勉!凎!点击查看我的2020年工作汇报!
原创不易,欢迎点赞分享。咱们下期再会!
浏览 26
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报