当前位置:网站首页 > Java中级 > 正文

Java面试整理-开篇_java面试开场白

面试,应该都是打工人需要面对的事情。我记得自己以前开始准备Java工程师面试时,都会去看那个《面试宝典》,当时这个“宝典”真的很经典,现在应该还是不少朋友会看这个。我自己经历过了找工作的面试,和企业招聘工作。所以我自己更加想从这两个不同的角度去和大家交流这些事情。

首先我先从企业招聘角度讲讲,企业招人大部分都是一对一的招人,也就是大家常说的,一个萝卜一个坑。企业会先规划招聘需求,例如在我们公司,每个季度,都要更新招聘需求表,主要包含当前季度招聘情况,做好相关分析,例如成功招了多少个人,留住率等等。以及还有就是下一个季度的招聘计划,大概还要招哪些人。当然,如果中途有临时很急的招聘需求,也是可以向公司申请批准,临时加入到当前招聘工作中。

从上面可以看出,企业是会预先对每个招聘岗位做了详细的要求,如岗位职责、技术要求,这些也会发布到相关的招聘网站上。

那对于找工作的朋友来说,就可以结合自己的技术能力以及期望的工作内容评估这些企业招聘的岗位是否适合自己。如果像薪资要求、工作地点、工作内容都符合自己的期望,那就要开始准备面试的事情。

其实对于绝大部分的朋友来说,都会犯一个很严重的错误。就是刷各种面试题目,特别回归到各种框架底层原理,和准备大学期末考试的复习一样。这种复习效率,其实是很低的。你想想,技术面试最多也是半个小时到1个小时。我自己做面试经理的时候,一般一天都安排七八个人过来面试。如果每个人花个两三个小时,那一天能面试多少个?企业招人也是有自己的流程,有自己的要求。例如这个岗位是Java开发工程师,然后根据这个岗位的级别,设定不同的技术要求水平。你不可能要求一个初级开发工程师能做开发能做架构设计,这本来就不符合常理。下面我就根据Java开发工程师的岗位,来分别说明一下初级、中级、高级的要求,大家可以参考一下。

初级Java开发工程师

对于初级的来说,企业一般都是定位于实习生、应届生这些为主,招回来主要培养为主,放到项目组中去,让中级或者高级的开发人员来带初级,做一些简单的开发工作,积累一下经验,把学校学的理论知识,用到实践中。当然,我们也不能小看实习生、应届生,随着IT发展,学校的计算机专业、软件工程专业的课程也是很贴近职场,不像十多年前那样,学来学去都是那些老套的知识。现在很多学校都会引入外部的资源,像和培训机构合作,邀请那些导师过来给大家上实践课,有能力的学校,直接招大厂的大牛回来教书。因此,从学校毕业出来的学生,也是挺厉害的,基本只需要一两个月就可以进入项目组,独立开发。

当然,除了学校里的毕业生,也有外面的培训机构的学员。十多年前,外面的培训机构的学员会相对比学校里出来的要好。但培训机构有个不好的地方,有很多学员都不是计算机或者软件工程专业,这也就是我们常说的非科班生。非科班生的缺点是,没有完整的知识体系,整体技术知识会稍有不足。但培训机构出来的,有个好处是,毕竟自己重新花钱去培训,学习会比较认真投入,这种高强度灌输式教学方式,学习能力和理解能力强的学员,也是会学得很好。

言归正传,站在企业的立场,都希望利益最大化,也就是即使是实习生、应届生,都希望招回来的人厉害一点,最好还是个大牛级别。像这种无上限的想法,就不在我们这次讨论范围内,毕竟“人心不足蛇吞象”,讨论太多也没什么意义。所以我们更偏向于讨论下限。

那对于初级Java开发工程师的下限是什么?我列举了以下几点:

毕竟没什么实战项目经验,就算有,大部分都是学校里实验项目,只是让大家熟悉整个项目的生命周期而已。所以对于实习生、应届生,Java的基础理论知识,肯定要过关,特别是JavaSE这部分,如果也了解一些JavaEE就更好,如现在主流的SpringBoot+MyBatis框架,以及周边的技术框架,如Shiro、Swagger等等。

有了基础知识,就要看看大家熟不熟悉整个项目生命周期,如果不清楚整个项目生命周期,就很难融入项目组,毕竟项目组里有不同岗位的同事,如产品、UI、设计、开发、测试、运维等等。那项目生命周期主要包含了哪些?我结合我一些项目经验,给大家总结一下,仅供参考:调研--》立项--》需求分析--》产品设计--》UI设计--》开发设计--》编码开发--》测试--》部署上线--》日常运维监控。

了解了整个项目生命周期,就涉及到项目组内部合作的问题,对于Java开发工程师来说,和前端开发工程师以及测试工程师,是合作最多的。需要提供接口给前端调用,测试工程师测出来的问题,需要及时修复。在这里,我主要讲讲与前端合作的事情,这也是面试官常问的问题。一般都会这样问你,“如何和前端合作?”,“用了什么技术封装接口?”,“接口文档如何维护?”。

如果对上面的内容都有一定的了解,你已经比很多人厉害了。加分项的话,我建议多学习数据库的知识。对于实习生、应届生,一般都不会让大家乱碰数据库。如果你对数据库很熟悉,很多实操经验,那面试官一定对你刮目相看。像数据库的操作命令,对SQL很熟悉,如果还能搞个读写分离,那就更厉害了。

中级Java开发工程师

中级一般都是指两年开发经验以上,有些大公司要求会更高一些。中级至少是能够独立开发一些重要的功能模块,而且是具有一定开发设计能力,如数据库表设计、业务流程设计、核心代码设计等等。在中小型规模的公司,还会要求中级的去带初级,培养新人,甚至还要你背起初级的开发责任,初级出问题了,“锅”一起背。那在面试中级Java开发工程师的时候,我们一般要注意哪些内容?我结合我自己总结的一些经验,在这里和大家分享一下。

毕竟是中级水平,面试的时候,一般都不会问一些太过于基础的。当然,那些大厂确实会问得很详细,像腾讯、阿里、字节跳动这些,多轮面试,先从基础问起,然后通过了进入下一轮,再问一些更详细的。对于普通企业来说,特别是只有一轮或者两轮面试的,基本不会问得很细。一般都会结合当前项目的技术要求来问。

其实技术要求,是无上限的,前面那里也和大家提过。但必须要满足当前项目的技术要求,大家可以结合企业发布的招聘内容来评估自己。可能一些公司的岗位招聘内容写得很模糊,写了一大堆的技术要求,完全找不到重点。当你无法评估的时候,你可以先投,然后建立联系后,可以问问项目组用到哪些技术?特别是Boss直聘招聘平台,就更方便沟通。如果你自己对这些技术不是很熟悉,而对这个岗位又感兴趣,可以预留多一两天时间来准备面试。特别是“xxxx优先”这些,这些至少是加分项,甚至还是岗位门槛,可能考虑到这个岗位要求有点特殊,或者有点偏,不好招人,就放到“xxxx优先”。

上面都是技术相关,其实中级岗开始,不管是Java还是其它开发岗,工作思维方式也要开始做一些改变的。初级岗,基本只需要做好中级的分内工作,承担的责任也不会太多,所以总体来说,还是自我为主。但中级岗之后,毕竟在职场待了两三年以上,以见识了职场的一部分事情,虽然说不上“尔虞我诈”,但至少见识到项目的各种坑。如果想晋升更快,就必须抛弃以前那种工作思维,太过于“自我为主”的人,企业一般不会重用,除非你的工作能力,是独一无二,无人可以代替,那就没问题。不然企业都会重用愿意为公司付出的人,这里的“付出”并不是指无酬付出,只是角度问题,或者可以理解成双赢的局面。从单赢到双赢的工作思维。其实不管是工作还是其它方面,共赢才是最好的结果。

高级Java开发工程师

高级不仅具有开发能力,还需具备一定的架构能力,不一定需要负责整个项目的架构,但至少能根据项目架构设计来细化到具体的功能模块。对技术选型以及核心代码,特别是工具类的编码工作往往是由高级开发人员负责。在一些小公司或者小项目,高级开发员基本都是全能的,什么任务都要接,像项目架构设计、任务安排、部署上线等等。因此,具备高级技术水平的朋友们,如果不想自己太累,想轻轻松松做项目,那我还是建议你去找一个大平台,大平台的分工会相对比较明确一些。之前我驻点在一个大软件开发公司,一起开发一个项目,团队内部有几个高级开发人员,这些人本来能力就很强,项目经理安排给他们的工作,基本都是相对核心的任务,不会太多,整体来说还是算比较轻松的。那对于高级Java开发工程师的岗位面试,需要注意哪一些,我这里也和大家分享一下,仅供大家参考一下。

编码能力这个,肯定要具备的,特别是一些工具类、核心代码,这些一般都是有高级开发人员负责。那对于这类的编码工作,往往是带有一定的结构设计思想,或者是通用型的东西,不单单是你自己用,其他开发同事也要用,甚至会形成公司的核心类/库。

运维能力也是很重要,很多Java开发工程师都认为运维不属于自己的工作,自己的工作就是编码。如果从事多年Java开发工作之后,都会发现很多时候,一些框架选型的时候,都需要自己提前去验证是否可行。在一些小公司,会让高级开发人员兼顾运维的工作,毕竟并不是所有公司都有专职运维人员。像一些开发环境,都需要具备一定的专业技术储备才能安装好,并不是传统的运维人员就可以完成,小公司又养不起厉害的运维人员。

带人能力,这里的带人一般是指项目组里其他能力稍微差一点的开发人员,需要对他们日常开发工作进行一定的审核,指导他们,甚至还需要对他们的培训。

文档能力,像概要设计文档、详细设计文档,这些文档编写工作,高级开发人员一般都是要参与进来,而且往往是主导者,甚至会协助项目经理写PPT。像这些文档工作,我相信大部分程序员都是挺反感的,都宁愿写代码也不愿意写文档。

汇报能力,这里也可以叫做演讲能力。在项目会议上,除了项目经理主持会议,很多时候还需高级开发人员主持会议,如和项目组开发人员分享一下开发经验,总结一些bug、缺陷的问题,从而提高开发质量。或者讲解一下项目架构设计,需要注意的事项等等。

从上面可以知道,随着自己的工作年限增长,技术也会随着提高,职责也会越来越重。大平台分工会比较明细,如果大家不想做那么多杂事,可以优先考虑大平台。如果自己的履历比较难进大平台,那在小平台的时候,只能去慢慢接受这些“杂事”。等自己积累更多经验之后,就可以有更多的选择。

接下来,我就会把我自己整理的面试题目发出来,有些是来自网络,大家可能也看过。

到此这篇Java面试整理-开篇_java面试开场白的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 快速了解Java各级别的技术栈_快速了解java各级别的技术栈是什么2024-10-30 17:46:53
  • Java程序员证书怎么考?Java程序员含金量怎么样,报考条件是什么_java程序员含金量高的证书2024-10-30 17:46:53
  • 中级java程序员该怎么提升?_中级java程序员该怎么提升技能2024-10-30 17:46:53
  • [中级Java 面试指南],将知识点一网打尽!_中级java面试问题大全及答案大全2024-10-30 17:46:53
  • 2022年最新整理必背的Java面试题大全,背好了Offer在手_2022年最新整理必背的Java面试题大全,背好了Offer在手2024-10-30 17:46:53
  • Java中级工程师面试题_java中级工程师面试题及答案2024-10-30 17:46:53
  • Java中级面试常见题目+答案_java中级面试题及答案整理2024-10-30 17:46:53
  • java中级开发工程师面试题,Javaweb面试问题_中高级java开发面试题2024-10-30 17:46:53
  • java中级面试题_java中级面试题大汇总2024-10-30 17:46:53
  • JAVA 中级面试题 (附答案)_java中级面试题及答案整理2024-10-30 17:46:53
  • 全屏图片