黑马程序员技术交流社区
标题: 如何做好JAVA 职位 [打印本页]
作者: renhua 时间: 2018-5-28 11:46
标题: 如何做好JAVA 职位
如何做好JAVA 职位
知其然,必先知其所以然。
目前互联网,电商等个领域的飞速发展,促生了IT技术进入到了一个新的发展阶段和高度。之前很多热门行业的人员,例如电信,通讯等行业人员也纷纷转向IT技术行业。
而整个IT互联网行业中需求量最大的是JAVA职位,很多大型互联网公司常年招聘年薪30-50万的JAVA工程师,需求缺口非常大。
1、JAVA到底是一门什么样的技术?
JAVA是由Sun Microsystems公司于1995年5月推出的JAVA程序设计语言和Java平台的总称。
JAVA语言是一种可以撰写跨平台应用软件的面向对象的程序设计语言,JAVA伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
JAVA本身只是一种语言,但是基于JAVA平台, 即jvm(JAVA虚拟机),已经形成了属于自己的生态圈,在互联网上大有作为,就是只要遵循JAVA虚拟机规范的其他语言也可以运行在jvm上,比如scala(做大数据的spark, 高并发的akka,消息机制的kafka)都是基于scala开发重量级开源项目,而且这些都能直接运行在JAVA平台上。
2、JAVA开发工程师和架构工程师的区分以及层级是怎么样的?
一是继续成就技术之路:
1)初级工程师:做基层代码判断逻辑等等(可以只懂基础知识)
2)中级工程师:一般就是开发组长,协助其他工程师完成项目(新老技术必须得懂点)
3)高级工程师:这时候起码5-8年工作经验。
4)架构师,给公司整体项目做搭建框架。
二是成为管理人员:
例如产品研发经理,技术经理,技术总监,CTO等。
3、怎么来判断一个JAVA候选人是否优秀?
不同企业在不同阶段对于JAVA工程师的要求是不一样的。
硬性要求方面,需要通过Java工程师的职能要求来判断。
例如:
JAVA前端主要工作:顾名思义,前端开发工程师,主要职责是利用 (X)HTML/CSS/JavaScript/Flash等各种Web技术进行客户端产品的开发,完成客户端程序(也就是浏览器端)的开发,开发JAVAScript以及Flash模块,同时结合后台开发技术模拟整体效果,进行丰富互联网的Web开发,致力于通过技术改善用户体验。
JAVA做前端主要就是掌握servlet的技术 jsp ,spring,mvc ,struts等全端框架之类的技术,同时也需要了解html css javascript类的知识。
JAVA后端工程师:需要了解业务逻辑,会写JAVA编程,会写SQL语句,能做的数据库设计,会Spring和iBatis,懂设计模式等。主要做的就是网站应用架构或者软件,手机app后台的交互和互动,以及数据库体系;让其展现在前台。
因为每个公司对于技术的深度和专业度不一样,需要专业的技术人员来判断,但是作为猎头,建议可以从候选人曾经参与过哪些项目,项目的规模大小,用过哪些技术,在项目中担任哪些角色,开发了哪些核心功能等方面来判断候选人的技术参与程度。
例如:一个JAVA工程师一直从事的1-2个月的短周期开发项目,每个项目人员也就1-2个人,这种项目一般比较简单,功能也不复杂,对于技术人员的技术水平要求也不高。
这种候选人一般很难胜任一些大型电商或者互联网公司的高端职位要求。
如果一个候选人从事过大型的网站开发项目,有些大项目周期长达1-2年,项目团队超过30人及以上,对于功能,稳定性,以及各种技术要求比较高。
如果参与过这种大型项目开发并担任核心角色的技术工程师,技术方面相对来说会比较扎实。
软性方面要求:
1)自觉的规范意识和团队精神。随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,所以很多企业需要的是能够配合团队的工程师,而不是独行侠。
2)较强的英语阅读能力和写作能力。程序世界的主导语言是英文,编写程序开发文档、开发工具帮助文件、了解业界的最新动向、阅读技术文章、与编程高手交流、发布帮助请求等都离不开英文。
3)求知欲和进取心。软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。
4、JAVA候选人在选择offer的时候的倾向性?
JAVA工程师在不同的阶段考虑的关注点有很大差异,根据工作年限大概可以分3个阶段:
第一阶段:1-3年的工作经验,这些人群比较关注的是公司背景、薪资和好平台来不断提升及磨练自己。
第二阶段:3-5年工作经验,这个阶段的人群更关注薪水以及从事的技术方向,在不断技术更新的情况下,这部分人是希望学习最先进的技术,同时也不断提升自己的薪水,改善更好的生活等各种问题。
第三阶段:8年及以上,这部分人更关注的是自己的职位和发展前景。
一般有两种情况:一种挑战性,就是转入到创业公司,担任技术合伙人或者CTO角色,实现自己人生的转折。另外一种稳定性,就是转入到大型互联网工作担任技术架构师或者技术管理层。
5、传统JAVA和互联网JAVA候选人的区别和共同之处?
互联网技术有三大显著特点是传统JAVA行业不具备的:
高并发性,这点很容易可以理解,比如抢购,京东发起的促销活动618,淘宝发起的 双11等大型抢购活动,同一时间访问量的井喷式增长,这就是互联网的高并发特点。
大型分布式系统,传统的开发是由一些机器,一些jvm的环境下的开发,但是大型互联网都是几百上千台的集群,要可以动态扩展的,所以对于JAVA技术人员需要更多的了解分布式开发技术。
高可用性,互联网系统都是7X24小时服务不能中断的,修改一个程序或者问题,增加一个功能就是面临很大风险的,犹如给给飞行中的飞机换引擎一样,对于技术人员的要求,综合素质都非常严格的要求。
除以上之外,互联网技术与传统JAVA行业对于工程师个人素质要求方面也有差异:
互联网的JAVA工程师需要能够适应高强度,快节奏的工作方式。
传统企业级领域的JAVA开发工程师工作强度相对缓慢,开发周期长。
互联网应用系统更新迭代是非常频繁的,可能朝生夕死,变动多,大部分业务逻辑几乎没有可复用性,所以需要开发人员能迅速的响应需求变化,快速迭代。 所以对与工程师要求是能够适应快节奏,高强度的工作方式。
传统企业级领域的JAVA开发工程师的工作内容相对比较固定,变动相对较少,所以可以用较长的时间进行开发,组件的可复用性利用率比较高,工作强度相对不是很大,很多工程师在工作一段时间之后容易进入舒适区,但是对于技术本身来说,还是需要很扎实基础。
互联网的JAVA工程师需要很强的学习能力和新技术求知能力。
传统行业的JAVA更偏重于技术本身,需要对于专业知识领域有很深研究和功底。对于新技术的要求紧急度弱一些。
互联网对于新技术要求比较高,因为互联网各个应用比较独立,个体应用体量比较轻,系统运行的环境更新相对来说会比较快,可以及时的用上一些新技术(这对能够快速迭代开发也是有利的)。
所以需要工程师能够具有较强的学习能力和适应能力,能够抓住热门技术并自我学习。
而传统企业中对软件系统能够快速更新则没那么看重,但对软件系统整体运行的稳定程度是比较看重的,各个模块间没那么独立,牵一发而动全身,所以因为历史包袱运行环境以及技术上一般跟进的比较缓慢。看过JAVAEE的同学就知道它为了能够兼顾企业中可能面对的各种情况,JAVAEE体系那么重不是没理由的。
互联网行业的JAVA工程师需要具有互联网思维和互联网视角去考虑产品的功能和开发。
传统的JAVA工程师更多的只是关注自己开发产品本身,较少从用户角度去关注产品的体验。
所以传统行业出身的JAVA候选人转到互联网领域是否合适需要深思熟虑。
其实从技术本身来说,传统行业的JAVA候选人和互联网行业的JAVA候选人是有一定的相通性的,对于技术本身来说是没有差别的。但是互联网行业与传统行业的工作环境,思维方式,工作强度还是有很大的差异,对于技术方面要求更高,对分布式系统,高并发,jvm底层知识理解的需要更加深入。所以很多情况下传统行业的候选人不一定能够适应互联网的工作节奏和环境,更重要的互联网JAVA工程师的业务逻辑和传统行业业务逻辑的差异性也比较大。
但是就目前的行业人才流动情况来看,很多传统行业的A类技术公司出来的候选人,例如微软,IBM,惠普,EMC还是很受A类互联网公司(例如阿里,京东,今日头条,大众点评等)的欢迎,他们的能力还是非常强的,互联网公司的JAVA开发人员往传统行业转换的可能性就会低很多。
6、和JAVA候选人交流的时候应该注意什么?遭受拒绝和鄙视的时候,应该怎么处理?
JAVA技术人员有着自身群体的特质以及工作环境,要求我们猎头顾问需要有一种不同的沟通方式与技术人员建立互动和信任。
足够的耐心和强大的内心!
随着近几年互联网高速发展,阿里巴巴、京东、腾讯一个个奇迹的出现,使得很多人都有着一个互联网的梦想,加上安卓、IOS平台的出现,使得创业和发展互联网事业的门槛大大降低。 导致中国IT界互联网人才奇缺,基本上每个公司都在招这样的人才,使得JAVA技术人员的身价倍增,倍增的不仅是他们的身价,更是他们的心态,对于这些工程师来说,绝对不缺工作机会,所以我们猎头朋友在沟通中,耐心非常重要。
互联网的大热,使得IT人员基本上每天都有猎头和他们接触,这样他就会感觉一点都不缺工作机会,你们打的都是骚扰电话,所以当听到你是猎头的时候,他可能会以很高的姿态直接拒绝你。如果被拒绝了之后,你直接就放弃了,那恭喜你,你可以换行业了,你就很难在做下去了。他拒绝你,并不代表他会拒绝这个机会,有可能他根本就没怎么听这个机会。
所以我们顾问要不断的寻找合适的机会,不同的方式保持足够的耐性和他接触,只要他完全了解了这个机会,才能说他到底是否愿意接触。
选择合适的沟通时间和沟通方式。
很多开发人员都是项目导向型的,为了项目进程,熬两三个通宵是常事。为了一个安静的工作环境和灵感,他们常常将自己的作息时间表给颠倒,白天睡觉晚上上班,也是他们的一大特色,所以和他们沟通的时间是很不确定的。
IT人员在做每个项目的时候都会采取紧密合作的形式,所以他们的办公司通常是开放式拥挤的办公室,很少有比较隐秘的空间,基本上都是人挨着人的,工作环境很狭小。所以身为猎头的我们要尽量的安排合适的时间点,这些时间点是正常人类都必不可少的如:吃饭的时候,午休的时候,下班半小时之内,早上八点半左右。这些时间点是他们比较方便接电话的时候,能和你多说两句话的时候。工作环境的狭小导致他们很难在工作的时候和你侃侃而谈工作机会,而他们经常利用一些社交工具来和外界联系,特别是微信,QQ,这基本上市IT男必备的沟通工具,所以我们要摒弃我们经常使用的电话沟通,通过QQ、微信、论坛、邮件等私密性社交工具来沟通。
寻找共同话题,或者兴趣点。
因为工作的需要和环境的影响,导致IT人员在于人沟通上有两种表达形式,一种是不善于沟通,另外一种是不屑于和你沟通。大量的IT 编程和程序的改错以及理科的背景,使得很多的IT人员都不是很善于和人沟通,因为他们更多打交道的是程序。而另外一种是太忙了,整天和程序做斗争,觉得不会和你浪费时间,耽误他的正事,会有点不屑于和你沟通。
不善于沟通,并不代表他不会沟通,也并不代表他会和你沟通的不好。你只是在他和你之间缺乏一个共同点,一个能交叉的共同话题。只要触动了他们的兴趣点,有可能他们会和你侃侃而谈,谈这些兴趣,并会在很短的时间内和你的感情急剧升温,成为无话不说的朋友,因为只要打开了他们的门,他们就会热情的接纳你,并把你当做他们的真心朋友。
7、JAVA候选人一般平时生活状态如何?到哪里可以找到他们?
从事工程师的人员生活一般比较宅,圈子也比较小,但是一旦你和某个工程师建立稳定依赖的关系,就可以获取很多高价值的信息,特别是转介绍其他候选人,行业发展趋势,以及行业知识都可以很好的掌握。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |