赞
踩
觉得没有目标的时候看一看大家讨论到的技术点,就知道欠缺在哪了。共勉吧!
转载自:https://www.zhihu.com/question/39890405
以前学习的时候,因为资源有限,所以很难找到好的资料,或者牛逼的大神带我之类的。我最大的爱好就是去干嘛呢?对,就是一位答主说的。看看各大公司的JD!
做java的大公司无外乎就那么几个,。我在招聘网站上先找个一般的吧,比较大众那种。
Alibaba(25k-45k):
京东(20l-30k):
美团(20k-40k):
网易(15k-30k):
百度(20k-35k):
排名不分先后,公司太多,就先列举这些
以上,大家自己都能判别出来,在2W左右的程序员一般都在什么水平:
没有总结完全,但是我觉得这些都是非常必须的。:)
你说呢?
有人回答说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿两万的不太可能是码农了,应该已经转管理。还有区域问题,这个不在我的考虑范围内,因为除了北上广深杭,其他地方也很难达到。
还有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者表达能力强,击中面试官痛点都会加分。如果你达到我说的水准,起薪就是2w,有其他优秀的表现还会在这个基础上加分。但纯JAVA方面待遇是比较吻合的。还有SSH真的不是我要黑,2w水平的面试几乎很少问SSH的用法,要问也是问架构和设计原理等。例如mybatis是如何管理session和cache的。spring里面有哪些你熟悉的设计模式,你怎么理解和应用的,如何在应用中透传参数等。
其实互联网相关的知识去互联网公司后很容易接触,并不是什么难点。 我司很多刚来的大学生在半年内都能把一些中间件系统摸的很明白,并不是说有多难,只是接触少,对未知的东西感到害怕疑惑而已。我在这里可以给那些想学习这方面的同学提供几本书,这几本书对互联网的知识能很快入门和了解全景。不是广告。这也是我最后一次更新答案,希望给那些需要这些信息的人帮助。那些质疑我的人去面试一下就明白我说的对不对,不要随便就质疑。我其实不怀疑我说的这些技能树能拿到25K或者30K+的可能,但现在互联网相对来说还是比较泡沫。
首先两万的月薪在BAT实在太普遍了,一般是高级工程师和资深工程师的职位。在阿里是p6左右,在百度是t5左右,腾讯是t2-3左右,京东是t3-1,美团是p6左右,其他的我不了解。这种级别是他们主要码农层级,加班多,能解决大部分问题,但对系统的整体架构能力和深入分析瓶颈的能力还需要培养。
其次掌握的技能树主要有三个方面:
第一个是基础。比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计。比如一般面试都会问ConcurrentHashMap,CopyOnWrite,线程池,CAS,AQS,虚拟机优化等知识点,因为这些对互联网的企业是绝对重要的。而且一般人这关都过不了,还发闹骚说这些没什么用,为什么要面试。举一例子,在使用线程池时,因为使用了无界队列,在远程服务异常情况下导致内层飙升,怎么去解决?你要是连线程池都不清楚,你怎么去玩?再举一例,由于对ThreadLocal理解出错,使用它做线程安全的控制,导致没能实现真的线程安全。还有遇到内存泄露怎么排插问题,怎么优化系统性能。所以作为一个拿两万的JAVA程序员这点基础是要有的。
第二你需要有全面的互联网技术相关知识。从底层说起,你起码得深入了解mysql,redis,nginx,tomcat,rpc,jms等方面的知识。你要问需要了解到什么程度,我可以给你说个大慨。首先对于MySQL,你要知道常见的参数设置,存储引擎怎么去选择,还需要了解常见的索引引擎,知道怎么去选择。知道怎么去设计表,怎么优化sql,怎么根据执行计划去调优。高级的你需要去做分库分表的设计和优化,一般互联网企业的数据库都是读写分离,还会垂直与水平拆分,所以这个也有经验的成分在里面。然后redis几乎是必须的技能,而nginx和tomcat几乎都是JAVA互联网方面必配。至于rpc相关的就多的去,必须各种网络协议,序列化技术,SOA等等,你要有一个深入的理解。现在应用比较广的rpc框架,在国内就是dubbo了,开源的还有spring cloud相关技术栈,可以自行搜索。至于jms相关的起码得了解原理吧,一般情况下不是专门开发中间件系统和支撑系统的不需要了解太多细节,国内企业常用的主要是activeMQ和kafka。你能对我说的都有研究,阿里p7都不是太大问题的。
第三就是编程能力,编程思想,算法能力,架构能力。首先2W程序员对算法的要求我觉得还是比较低,再高级也最多红黑树吧,但是排序和查询的基本算法得会。编程思想是必须的,问你个AOP和IOC你起码的清清楚楚,设计模式不说每种都用过,但也能了解个几种。编程能力这个我觉得不好去评价,但是拿一个2000W用户根据姓名年龄排序这种题目也能信手拈来。最后就是架构能力,这种不是说要你设计个多牛逼多高并发的系统,起码让你做一个秒杀系统,得有一个明确的思路和方向。
这以上就是我说得2w水准,如果你运气好,面试表现好,3w+也有可能哦(ಡωಡ)刷书才是王道,看完以下书籍每本的80%
java nio(讲jdk1.4的)——裴小星译
pro java7 nio2
netty in action
netty 权威指南第二版
java并发实践
http权威指南
java与模式
redis入门指南第二版
从paxos到zookeeper分布式一致性原理与实践
深入java虚拟机 第二版
深入理解java虚拟机——jvm高级特性与最佳实践
深入浅出mysql第二版
算法——第四版 谢陆云
大型网站系统与java中间件实践
spring实战第4版
spring boot 实战
——————我是分割线——————
linux 可以部署安转,查日志,看懂简单的shell脚本 熟练grep ,vi,less, ps等命令
mongo db 查询,删除等常用操作
kafka 原理与使用
nginx,lua脚本 要了解(准备学)
tomcat (暂未系统学)
php 可以看懂简单代码,就是array稍复杂
python (准备看呢)
————————我是分割线————
学而时习之,不亦说乎
都不难,我这一年边工作边看完了,最难不超过初二或初三数学,
说难的是觉得比小学四则混合运算难,都是对技术没有真正兴趣的
————————2017年7月的分割线————————
坐标北京刚刚面试了几家公司拿到两个offer,谈谈体会,建议学习的时候又一个精简的笔记,是概括的过程,复习的过程,心得的过程,学习要循序测进,培养兴趣,一本书看不下去了,就先看别的。
1)thinking in java 4 看完90%,仔细看了其中85%的代码例子,手动运行了30%的代码。 复习的话一周到两周。有些部分如讲回字的四种写法的可以不看,当然这部分小于10%,集合框架,反射,内部类,io,Exception,generic , 这本书做项目的时候很多内容其实是用不到的,对于设计模式的理解,对于框架实现机制的理解,对于io及多线程的理解,这本书起到一个承上启下的作用,如果只是为了面试及做一个初级及中级的开发,不用学习太深入,因为太厚了
2)effective java 这本书很好,看了这本书才能理解为啥需要设计模式,这本书不厚,但内容很深入,大约需要1周左右看完40%,感觉看不懂的先不要看。先学别的,然后再回来学,这本书是需要长时间深入体会的。初级及中级开发不必把时间太多花在这本书上
3)java与模式,这本书需要反复体会,一般达到面试的要求1周左右就可以,类与类的关系;设计模式总的原则;创建,结构,行为,每种会5个模式即可,务求理解,这本书真正的作用需要实践中才能体会。
4)sql 基础,深入浅出mysql, 这部分一周吧,要了解数据库的三个设计范式,四种隔离级别,jdbc的主要操作,mysql的索引等。
5)ssh 部分,spring 结合那个随着安装包的reference看最好,因为版本变动的原因,有些书籍讲的可能落伍了,当然不用全看,因为短时间内也看不完,ioc,bean的作用域,完整的生命周期,beanpostprocessor, aop, spring mvc,web service,jax-ws,spring mvc的各种注解,DispatchServlet,HandlerMapping,ViewResovler,Interceptor,事务
这部分看两到三周,理解原理即可,会注入,会一些简单的配置即可。
6) linux 基础命令 1到两天,最好自己安装个虚拟机,敲一下
7)redis 这个一到两天吧,就string,map,set, list,sorted set 5种,一般问和memecache 有啥区别,问问内存申请,分配啥的,java一般用jedis.
8) hibernate,mybatis 各两到三天吧,结合spring mvc 用或者不用maven自己配一下,自己用mysql 做一个小的demo,如果你能知道性能,缓存,那就nb了,mybatis3学起来快,我看了3天吧每天3个小时,我学得慢
9)深入java虚拟机,建议大概看看,一周吧,了解一下方法区和堆,class文件加载的机制,内存溢出和泄露的情况,快的话几个小时,当然想成为大牛必须深入了解。要有thinking in java中相关的类和接口,内部类,反射的基础再看这本书才好
10)大一点的公司一般用soa,主流是阿里公司的dubbo协议,这个原理可能有点复杂,我也不是很清楚,用起来似乎挺简单的。
11) mq,或者active mq 大概看个两三天,略微了解一下。还有kafka,kestrel队列,zookeeper
12)js ,jquery,json,http协议,这方面了解一些即可,一般面试不问,入职后能参与项目就行。一般是json和java对象的互相转换,用fastjson或者jackson,能用jquery操作dom,js的表单提交校验等。
13)会使用eclispe ,idea,maven,我觉得各一天就行
月薪2万的Java程序员属于中级程序员。
就是技术稍好一点,还做不到架构师级别的。
一般来说。
我给人开2万的薪水主要取决于以下几个方面。
1.能否独立完成项目,以及完成过哪些项目,至少是6+项目。
项目经验多了,对于需求的理解能力也会好很多。
2.对于自己所做项目用的技术框架,是否足够清楚,能否回答出来是如何选型的。
并不要求现在能够去做架构的选型,但是一定要了解自己原有项目的架构体系。
3.是否对行业技术的现状有足够多的了解,是否有主动学习的表现。
这是看一个人的视野开阔程度,15K的程序员我不要求这些。20K的程序员必须要读一些主流的体系,哪怕说出来几个名词都可以。
4.处理过的最大的数据量是多少,有没有超过千万级的流水。处理过的最大的并发数是多少,TPS能到达多少。
5.是否了解分布式和缓存,RPC框架用过哪些,缓存的失效策略怎么处理。
6.是否能够快速的解决线上的故障,是否熟悉Bug和线上Bug的紧急修复流程。
7.是否熟悉项目工具,如Jenkins,Nexus,Confluence,wiki,git,svn等项目中常用的东西。
8.是否对性能调优有了解,GC的算法了解到多少。
其实应该是反过来说,就是候选人值多少钱?
补充一句,并没有说都满足。
而是说至少要有几项是满足的。
一个朋友的同事,本来是被末位淘汰的,结果去了客户的公司月薪30K,一下子超越了那些组内高手。
三年多工作经验,做安卓开发。
朋友分析他能咸鱼翻身的原因在于和客户关系处的好,客户都把他当大神一样的存在。
客户不知道公司组内把他当老幺。然后就是客户那边的开发真的太水,太求贤若渴了。
我想这大概还是和他对自己的营销好有关系,连一个鱼的问题,都号称自己是吃着鳜鱼长大的。
老娘到现在还没吃过鳜鱼,两年前还不知道这品种。那个匿名用户说的明显就是知乎上多了…
先说他说对了的地方,就是各大公司的级别和薪资的关系,基本是对的,15年的市场价。
好,剩下的就吹的没边了。
实际上,我们要承认,由于面试官和面试者的不同性格,习惯,技术背景不同,以及不同的项目组需要的技术储备不同,所以对具体有什么要求是非常不确定的。
这里面又分两种,一种是招来干活的,要求对口程度高,问的都是项目组正在使用的技术。另一种是招来培养的,比如我们组,因为做的东西比较新,一般不太容易在2w的月薪上找到对口的,所以问的更多的是被面试者自己做过的东西。
问的内容主要是对使用技术的理解,是简单用过还是深入了解过,是否阅读过源码当然是比较重要的参考。另外对自己做过的东西是否有思考,有没有考虑过优化,是从具体指标上对不同方案有过比较和考量,还是瞎几把选了个自己熟悉的方案就干了。
总之,不会搞那么大而全的要求,可以说那位答主说的应该是个并集,实际上2万的要求,是从里面选择出部分来考察,具体是哪些部分,参考上面说的两种不同的招人思路。面试官来一句:Java为什么叫Java而不是Vaja或Jaba?
如果你的回答能让面试官满意,月薪1w get。2W很简单吧
匿名了
在魔都某外企技术部门 毕业两年已经到2W了
就写写JAVA和JS,做做support,SQL都很少写
不过学不到东西 已经准备跳了
这家公司敲门砖是C9 基本都是复交浙南的
业务逻辑比较复杂 但是技术可以说一点都不难
主力码农水平,现在一个资深测试都有这个薪水。
互联网谈不上多泡沫,中超转会费都要超过英超的时代,你根本不知道有钱人到底钱多到什么地步。
在北上广深这样的城市,有房子是白领,没房子上了税,交了金,付了房租,泡了妹子,不好好计划可能也要白领。
一个挖掘机司机在三线城市日薪都能达到800,有没有想转行?看了一圈回答,我想想:其实,还有月薪八九千的前台、月薪过万的销售助理呢,有的公司连秘书都有股权……月薪2万的IT精英大概真不算啥。
然而,回到凡人的世界:
普通人就算要拿到1万,都是要看运气的,不是说你具备什么什么硬件就一定行的,人家凭啥每月分你好几万?你是他亲戚?还是他家钱实在太多,多发点好减轻通胀?
除非公司招聘明码标价:
A技能掌握度90%:5000
B技能掌握度80%:10000
C技能掌握度90%:8000
……
这样的情况下,才能明确告诉你“哪个水平拿多少钱”——可有多少公司会这样明码标价呢?没有,基本上都是没有客观标准,都是连“掌握度”都测不出来的。
所以,“工资高低”这种事从来都是取决于“上司和你是否王八对绿豆”、“资本家逐利本性”和“运气”的综合作用——当然,工资跟你的技术水平确有关联,但老实说,关联并不大。
最后,我的回答浓缩成一句话就是:谋事在人,成事在天。非专业人士,目前负责互联网招聘
最近的招聘需求:
某知名国企,高级java开发工程师--base杭州--3-8年经验,8-10级薪资,本科以上学历
8级薪资:本科3-5年经验,16薪年薪基础在15-20w,未包含年终奖及平时福利(年终奖为年薪20%,日常福利多以现金、卡发放,加起来也有4w+),基本不加班,周末双休
所以一般谈薪资,我都喜欢和应聘者谈年薪或者时薪,在BAT美团这些互联网巨头公司,加班是很常见的,当然,薪资也高,但是如果将薪资折合成时薪,到底哪边更高,就见仁见智了;
或许碍于企业背景,学历和之前的就业公司以及所做过的项目大小会很大程度上影响到部门leader给你定的薪资,这个很多时候和能力其实并没有太大的关系,和你之前的就业选择有关;
以下是岗位要求:
1.熟练Java编程,包括Java核心,多线程编程,熟悉MVC等常用设计模式;
2.熟悉Java主流框架(Struct,Spring MVC,Spring,Hibernate/Mybatis);
3.熟悉Socket、REST、WebServices、RMI、Hessian开发;
4.熟悉下述互联网开源技术中的一种或几种以及类似的技术:memcached/mongoDB/redis,RabbitMQ/Kafka/RocketMQ/zeroMQ, Hadoop/Hbas,ZooKeeper, Flume/Scribe/LogStash, Protocol Buffer, Thrift/Dubbo, Twitter Storm;
5.具有大型JavaEE系统开发经验和高并发调优经验优先;
6.具有电信运营商BOSS、PBOSS、计费等系统经验值优先;
加粗部分是区别应聘者是否符合要求的重要条件
所以加分项为:
1.学历背景、公司背景(针对国企央企)
2.高并发、大型项目开发经验
3.项目经理的眼缘...即面试发挥
前两条是硬性的,尤其第二条,第三条是潜在因素,若是想在技术方向发展下去,以架构师为一个目标吧~
最后
.
.
.
.
.
.
Java开发的小伙伴看过来啊,目前职位还在热招中,坐标杭州,有意向私聊哈
作为二线城市的上市公司的技术总监,我可以很负责的告诉你
1. 北京, 基本上就是个SSH水平加组长级别的管理水准。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。