做Java架构师(P7)岗位有三年时间了,期间也从事了很多招聘定级工作,来说说我见解吧。
既然楼主提到年薪40w,那我们看看什么公司,什么级别可以给到,再看看要求。
阿里是Java大厂,所以可以参考阿里的标准,阿里一般是16薪水,所以就是税前2.5w,在阿里应该是P6就可以达到,而对P6的要求是什么呢,我们内部有个简单的概述,那就是可以独立完成部门内部的项目,而面试过程中,也会有相应的考察。
如何定义一个人可否完成部门内部项目
代码能力
代码能力是基本功,Java语言本身,包括语言的各个方面包括对并发的理解,对内存使用对理解,对Java运维的理解等等。语言本身外,社区里常用的框架是否可以十分清晰的了解,包括spring,包括他实现的ioc,aop,orm,web机制是否有清楚的认识,有丰富的经验等等。
对常用中间件的理解
毕竟在一个大系统中,各种中间件是是否常见的,缓存中间件,消息中间件,例如 redis、memcache、rmq这些。要理解常用中间件使用场景,使用姿势(例如redis的常用命令),甚至包括他的一些运维。一旦出了问题,除了专门的运维人员,也需要你参与问题的排查,因为有时候这些中间件出现问题,是不当的使用姿势引起的。
架构、业务落地能力
前面提到了语言本身,各种中间件。如果你有很好的业务抽象能力和架构思维,就可以把一款部门内部产品很好的设计并实施了。这点蛮难的。想必都有过接手现有项目的经历吧,有时候真恨不得把之前的设计者拿出来批斗。作为一个设计者,你能否做到当下一个接手它的人会说一句,这个系统设计的真好,稳定又可拓展,理解起来也很容易。
这需要很多能力,除了对现有系统的理解,还包括对未来可能发生变化的理解
沟通协作
毕竟一个部门内部产品,是不可能由一个人完成的,所以需要沟通协作,把设计好的方案,要和2-3个小伙伴一起实施,包括同样身份的后端人员,前端人员,产品等角色。这个级别的人可能会参与带2-3个人,例如应届毕业等,所以你自己对知识的把握,分享精神,leadership都是很好的加分项。
总的来说呢,到这个阶段,代码真的只是你技能桶中的一个最长的,或者最长的之一。而其他软技能,会显得越来越重要。
对于年薪40万的程序员,不只是技术过硬,还有一个原因是他们所在的公司福利高,或者会直接持股。在BAT中就是一个很好的案例,例如阿里巴巴P7、P8级别的员工不仅是年薪30到80万不等,还有更多股票持有。
当然现在很多互联网公司,只有在盈利的条件下才有资格谈这些年薪几十万。一个小公司,或者一个私企,刚开始起步的公司是不能做到这个地步的。举个例子,一线城市,早一个小的企业中,工资就是8K——1.5K的范围,有工作经验,加上自己的技术。也许会做到一个经理的位置,到时候可能年薪20万,或者30万不等。
1. 工作年限长,经验丰富
这类程序员是 Topcoder 的主力军,他们的共同特点是:10 年以上的工作经验,在大公司当过螺丝钉,也在创业公司做过技术 leader,有过一两段不算成功的创业经历。这样的程序员无论是去 BAT 还是去创业公司,都能拿到 60万年薪以上的 offer。
2. 硅谷回国派
从硅谷回大陆的程序员同学,轻松达成60万年薪。
3. 真正的技术高人
虽然前面说技术水平不是决定薪水的唯一因素,但如果技术牛到一定程度,高薪 offer 也是探囊取物
举一个例子:传说网络安全大神道哥在面试阿里的时候,面试官提出这样一个问题:你怎么证明自己的技术水平?
然后道哥接过电脑,当着面试官的面关掉了阿里的内网。据说当时运维人员都傻了眼,内部引起一阵骚动。面试官赶紧把道哥签了才把问题解决了。如果技术水平牛到这种境界,没有理由会不成为 Topcoder 啊。
欢迎工作一到五年的Java工程师朋友们加入Java高级架构师 : 680075317
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!!!
再来说说假如年薪超过60万,公司养人差不多是1.5到1.7系数的成本,好歹公司不能白养你,总的赚点,综合说你得为公司创造每年100万以上的效益。作为以编写软件为生的人,你的主要贡献是代码在产品上能发挥什么作用。概况点,三个作用,别人做不到的你做得到;别人做得到的,你能做的成本更低;别人做的到成本也低,你做的更好。这就是温州商业经验“人无我有,人有我廉,人廉我优,人优我转”。第一个作用参考各种安全类厂商;第二个作用参考各嵌入式厂商;第三个作用参考巨头软企。由于你的作用,公司能够规避各种安全风险避免损失超过100万以上每年;由于你的作用,公司能在程控芯片上有更大的灵活度,每年成本节省100万以上;由于你的作用,公司每年比竞争对手多卖100万以上,你都能拿到年薪60万以上。
对于代码而言,任何代码背后的努力比代码本身更多。有的人曾经花两年时间编写了一个软件,代码不过8000行左右,公司在他身上花费超过40万。问题是8000行的代码,背后的软件设计方案、算法推演仿真、数据分析的工作量换算成文字打印出来估计能有一人高,如果再加上试验检验,人力物力投入更大。这么多工作量,从8000行代码的工作量拿1万块钱就够了,背后的工作该拿39万。再比如黑客,编写病毒不需要多大工作量,因为病毒代码越短小越好。但知道怎么写需要巨大的工作量,你得知道怎么插入到其他程序中去,怎么加壳,怎么规避安全软件等等。明白我的意思没?任何拿高薪的程序员都是披着程序员外皮的其他职业者。比如黑客是黑客,不能因为他的工作需要编程去实现就归为程序员;设计师是设计师,不能因为他要用编程去实现算法、架构之类的就归为程序员;分析师是分析师,不能因为他要用编程去分析数据就归为程序员。
综上所述,真正意义上的程序员如果公司给不了你年薪60万以上。但是你可以从事披着程序员外皮的其他职业,既满足了兴趣又能拿高薪.
给自己更高的要求,积极的学习,程序员年薪超过60万不在话下。
4.了解学习互联网的最新技术
工程化、高性能及分布式、高性能、性能调优
Spring,MyBatis,Netty源码分析等
所以,Java程序员并不是你像的那么好混的。再者,40,50W年薪以上走,非常的难,
但是如果突破了,又是另一片天地了,比如技术总监,技术合伙人之类的。
再来说说岗位,这些人在公司里面都是能够独当一面,独立负责一块业务,一个模块的设计,开发,搞定某个领域的绝大部分问题的。
在一个毕业生,或者刚开始工作的人,或者非挨踢,非金融,从事其他行业的人
看来Java程序员能有40W年薪很多,其实养家糊口一样的过日子,还要考虑程序员“青春饭”的问题。所以趁年轻合理利用自己每一分每一秒的时间来学习提升自己,给未来的自己一个交代!
欢迎工作一到五年的Java工程师朋友们加入Java高级架构师 : 680075317
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)