Java程序员面试经验总结

目录

    • 一、企业是如何筛选简历的
      • 1.简历筛选流程
      • 2.HR如何筛选简历
      • 3.部门负责人筛选简历
      • 4.总结-简历筛选规则
    • 二、简历注意事项
      • 1.简历整体结构
      • 2.职业技能
      • 3.项目经历
      • 4.总结
    • 三、应届毕业生改如何找到合适的练手项目
      • 1.项目来源
      • 2.如何深入学习项目
      • 3.应该学习哪些模块
      • 4.模块该如何吃透
      • 5.总结
    • 四、Java程序员的面试过程
      • 1.面试形式
      • 2.Java程序员的面试过程
      • 3.如何准备面试

一、企业是如何筛选简历的

1.简历筛选流程

一般的简历筛选流程是:

  • 首先由HR筛选简历;
  • HR筛选后的简历交由部门负责人或开发负责人进一步筛选;
  • 二次筛选后的这批简历就获得了复试的机会,由HR进行预约面试。

Java程序员面试经验总结_第1张图片

2.HR如何筛选简历

  • Boss直聘(招聘方-后台简历搜索)

Java程序员面试经验总结_第2张图片

这里需要注意,平台可以直接根据跳槽频率进行筛选,所以为了尽可能让我们的简历出现在筛选条件中,应该减少跳槽的频率。

Java程序员面试经验总结_第3张图片

  • 智联招聘(招聘方-后台简历搜索)

Java程序员面试经验总结_第4张图片

Java程序员面试经验总结_第5张图片

3.部门负责人筛选简历

由于各个部门中不同岗位的招聘要求不同,HR筛选简历之后,就会通知具体的部门招聘负责人,进一步审核简历。

部门招聘负责人会根据简历中的技能描述来初步判断:是否具有招聘岗位所要求的技能?Java程序员面试经验总结_第6张图片

部门招聘负责人还会查看简历中的项目经历,判断是否有进行过类似业务场景的开发,是否有相关业务的知识和经验。

Java程序员面试经验总结_第7张图片

不同公司和岗位所接触的行业不同,对于招聘的要求也不一样,有的公司可能就会要求必须具备相关行业的经验。

Java程序员面试经验总结_第8张图片

4.总结-简历筛选规则

1)HR如何筛选简历

  • 学历、院校、经验、年龄、跳槽频率……

2)部门负责人筛选

  • 符合当前项目的技术栈
  • 符合业务条件(银行、电商、物流)
  • 额外加分项:
    • 有高可用高并发经验优先
    • 熟悉基于公有云的开发经验
    • 有团队管理经验
    • ……

二、简历注意事项

1.简历整体结构

一份完整的简历应该包含哪几个部分:

1)基本信息
2)教育背景
3)求职意向
4)工作经历
5)职业技能
6)项目经验
7)个人优势
8)个人荣誉

1)~ 4)要在真实的前提下,可以适当的美化

7)~ 8)不要过于夸张,关键在于难点、亮点,例如:

1. 2019 年参与了北京马拉松比赛,成绩为 3 小时 20 分钟
2. 2021 年以 5A 成绩获得了 PMP 项目管理认证
3. 2022 年获得了计算机技术与软件专业资格证书-高级软件设计师

2.职业技能

  • 放到简历的黄金位置(HR筛选简历的重要参考)

  • 基本准则:写在简历上的必须能聊,不然就别写

  • 参考公式:职业技能 = 必要技术 + 其他技术,例如:

    1-2年:
    必要技术:springboot + ssm + redis + 数据库
    其他技术:(至少要包含2-3项)微服务、ES、MQ、源码、高并发、jvm、技术选型、设计能力……
    3-5年:
    必要技术:springboot + ssm + redis + 数据库
    其他技术:(至少要包含3-4项)微服务、ES、MQ、源码、高并发、jvm、技术选型、设计能力……
    5年以上:
    必要技术:springboot + sms + redis + 数据库
    其他技术:(至少要包含5项以上)微服务、ES、MQ、源码、高并发、jvm、技术选型、设计能力……
    
  • 针对性地引导面试官(在职业技能描述时写一些详细的技术点,这样可以让他问一些你想让他问的),例如:

Java程序员面试经验总结_第9张图片

可能有人会觉得我写的这么详细,万一面试官就调没有写的问怎么办?

其实不用担心,就算面试官问了你答不上来,他也是可以接受的,就怕你写了还打不上来,就会觉得你不行。下面还有两个例子

Java程序员面试经验总结_第10张图片

3.项目经历

  • 项目个数以自己的工作经历为准,时间比较久的可以只写标题或不写(面试官一般也不问)
  • 项目要体现业务深度或技术深度
  • 有没有主导设计过xx模块开发(0-1个或1-2个)
  • 尽可能展示指标数据(如:达到了多少QPS、达到了多少的数据量)

例如:

Java程序员面试经验总结_第11张图片

4.总结

1)简历的结构

  • 基本信息、教育背景、求职意向、工作经历、职业技能、项目经历、个人优势荣誉

2)职业技能

  • 放到简历的黄金位置(HR筛选简历的重要参考)
  • 职业技能 = 必要技术 + 其他技术
  • 要有针对性的准备,引导面试官针对性地提问
  • 基本准则:写在简历上的必须能聊,不然就别写

3)项目描述

  • 项目个数以自己的工作经验为准,时间比较久的可以只写标题或不写
  • 项目要体现业务深度或技术深度
  • 有没有主导设计过xx模块开发(0-1个或1-2个)
  • 尽可能展示指标数据(如:达到了多少QPS、达到了多少的数据量)

三、应届毕业生改如何找到合适的练手项目

1.项目来源

通常情况下,我们都会去开源网站找一些比较优秀的项目:GiteeGithub 等。

Gitee 为例,我们可以搜索比较感兴趣的技术点或业务点,按照stars进行排序,星级多的项目肯定是经过了大量的验证的,是比较靠谱的项目。

比如:我们根据技术点进行搜索。

Java程序员面试经验总结_第12张图片

比如:我们根据业务点进行搜索

Java程序员面试经验总结_第13张图片

2.如何深入学习项目

  • 想尽一切办法在本地运行起来。

    一般比较优秀的项目中都有比较完善的部署文档

  • 找到自己比较感兴趣的模块,debug跟踪代码的逻辑。

    一开始的时候可找一些简单的业务,比如CRUD。

  • 检查梳理完业务之后,自己能否独立完成。

    建议把代码删除之后自己实现一便,中间肯定会出现很多问题,不过没关系,这些问题可都是成长的经验,是我们的楷模。

如果只能完成一些简单的CRUD,这个只能算是初级,或者叫做入门级。但是现在的招聘门槛还是比较高的,哪怕是应届毕业生,也需要具备一些比较高的技术水平。那怎么办呢?

  • 找到一两个业务点深度挖掘,并且要做到多方位参考。

比如:登录功能。不光要知道当前项目是怎么做的,还需要知道开源网站中其他项目是怎么做的?那么我们怎么找到其他具有相同业务点的项目呢?

  • Gitee、Github 其他相关项目
  • 黑马程序员 B 站项目课程
  • B 站搜索其他项目
  • 博客文章

这样做,我们能够更深刻地理解这个业务点,以及这个业务点多元的技术解决方案。如果我们能掌握这个业务的全方位需求和不同的技术解决方案,这时才算是一个中高级的程序员。

那么我们需要找到哪些功能点来深度学习呢?

3.应该学习哪些模块

目标: 增加简历的项目模块业务深度、技术含金量、同时也就具备了真实度。

以下是相对比较通用的模块:

Java程序员面试经验总结_第14张图片

上面我们知道了要选择模块进行深度学习,那么深入到什么程度呢?

4.模块该如何吃透

下面我们以 权限认证 模块为例进行说明。

1)功能实现

  • 业务功能实现:用户名密码登录、二维码登录、手机短信登录、用户、角色、权限管理和分配。
  • 技术方案支撑:RBAC模型、Spring Security 或 Apache Shiro。

表达清楚以上两点就可以说明你有能力开发这个模块了,但是还不够细。

2)常见的问题

  • token刷新问题,如何控制多点登录;
  • 加密/解密,采用哪种加密算法,怎么保证不会被破解呢;
  • 如何预防XSS防跨站攻击。

表达清楚常见的问题就可以表现你工作经历的真实性和技术的含金量了,但是依然还不够,我们要想成为中高级的程序员,必须要有设计的能力才行

3)权限系统设计

  • 可扩展性、高可用性、通用性。

例如:如果每个系统都需要权限认证的功能,那么我们每个系统都要重新开发一遍权限认证吗?当然不是,这样会比较浪费资源。所以我们需要将权限认证的功能从项目中抽取出来,做成一个单独的模块,可以让每个项目直接使用。

如果我们把这个设计的思路也给面试官表现出来,这个就是非常强的加分项。

可能面试官只是简单的问一句,那么通过上述三点极具含金量的回答,就会惊艳到面试官,可能直接就决定了你的去留,这样的真实例子有很多。

5.总结

1)如何找到合适的练手项目

  • Gitee 或 Github 搜索开源项目,B 站黑马程序员项目课程。

2)如何深入学习项目

  • 技术选型

    通用模块,可以嵌入到大部分项目中

  • 学习方式

    多方位参考深入挖掘业务和技术

  • 学习程度

    三个问题(功能实现、常见问题、系统设计)

四、Java程序员的面试过程

1.面试形式

企业在招聘的时候,不同的公司面试的轮次不太一样

  • 单轮面试:只有技术面试。中小企业、创业型公司、外包

  • 多轮面试:

    • 两轮:第一、二轮技术面。大部分公司

      例如只有一个岗位,一般第一轮是筛选多个,第二轮是从多个中选择最好的一个。

    • 三轮、N轮:一、二轮技术面、HR终面。上市公司、大厂

面试官角色:

  • 自身开发人员(技术经理):技术最好,多数参与首轮面试

    一般问一些技术点和复杂场景的处理。

  • 业务部门经理:技术一般,多数参与终面,可以决定你的薪资(思考能力、抗压能力)

    一般问一些业务场景的技术实现方案和选型。

  • HR:辅助业务部门考察候选人(性格、沟通能力、合作能力、学习能力)

2.Java程序员的面试过程

整体讲解结构: 总分结构表达

Java程序员面试经验总结_第15张图片

不同面试官的节奏不一样,有的面试官会听你介绍完,有的面试官就会打断你的自我发挥进行主动出击,根据简历中的某一条描述展开询问。

Java程序员面试经验总结_第16张图片

补充提问:

  • 使用 Redis 和 RabbitMQ 实现延时有什么区别?

  • redis是单线程的,为什么这么快呢?

如果我们想在面试过程中不断成长,成为面试杀手,那么有两步必须要做:准备+复盘

3.如何准备面试

找工作的心态找出自己的不足,针对性的补强。

推荐《孙子兵法》中有一段话送给大家:

求其上,得其中;求其中,得其下;求其下,必败。

如果你想冲进中厂,就要做进大厂的准备。
如果你想找到月薪1W+的工作,就需要做月薪1W5+的准备。
如果你的目标就是找到工作,起码要做冲击小厂的准备。
如果你的目标就是找个小公司混日子,大概率找不到工作。

整理完毕,完结撒花~





参考地址:

1.新版Java面试专题视频教程,java八股文面试全套真题+深度详解(含大厂高频面试真题),https://www.bilibili.com/video/BV1yT411H7YK

你可能感兴趣的:(面试,java,面试,开发语言)