面试官到底想看什么样的简历?

面试一直是程序员跳槽时期非常热门的话题,虽然现在已经过了金三银四跳槽的旺季,但正值毕业季,下一轮金九银十也不远了,而当跳槽季的时候你再看这篇文章可能已经晚了,过冬的粮食永远不是冬天准备的,而是秋收的时候。

简历准备

简历是你进入面试的敲门砖,也是留给意向公司的第一印象,所以这个很重要,必须在这上面做足了文章,一份优秀的面试简历是整个面试成败的重中之重,我们会详细分析如何准备简历才能保证简历不被刷掉。

简历通常有这几部分构成:

  1. 基本资料
  2. 专业技能
  3. 工作经历
  4. 项目经历
  5. 教育背景

今天这里重点讲一下专业技能、工作经历跟项目经历。

准备专业技能

对于程序员的专业技能其实就是技术栈,对于自己的技术栈如何描述是个很难的问题,比如什么算是精通?什么算是了解?什么是熟悉?

关于对技术技能的描述有很多种,有五种的也有三种的,而且每个人对词汇的理解都不一样,我结合相关专家的理解和自己的理解来简单阐述下描述词汇的区别,我们这里只讲三种的了解、熟悉、精通。

  • 了解:使用过某一项技术,能在别人指导下完成工作,但不能胜任复杂工作,也不能独立解决问题。
  • 熟悉:大量运用过的某一项技术,能独立完成工作,且能独立完成有一定复杂度的工作,在技术的应用层面不会有太大问题,甚至理解一点原理。
  • 精通:不仅可以运用某一门技术完成复杂项目,而且理解这项技术背后的原理,可以对此技术进行二次开发,甚至本身就是技术源码的贡献者。

我们就以Vue这个框架为例,如果你可以用vue写一些简单的页面,单独完成某几个页面的开发,但是无法脱离公司脚手架工作,也无法独立从0完成一个有一定复杂度的项目,只能称之为了解。

如果你有大量运用vue的经验,有从0独立完成一定复杂度项目的能力,可以完全脱离脚手架进行开发,且对vue的原理有一定的了解,可以称之为熟悉。

如果你用vue完成过复杂度很高的项目,而且非常熟悉vue的原理,是vue源码的主要贡献者,亦或者根据vue源码进行过魔改(比如mpvue),你可以称得上精通。

那么有两个坑是候选人经常犯的,『杂』和『精』,这种两个坑大量集中在应届生和刚毕业每两年的新手身上,其主要特点是『急于表现自我』、『对技术深度与广度出现无知而导致的过度自信』。

首先说说杂,比如你要应聘一个Java后端,老老实实把自己的java技术栈写好就行了,强调一下自己擅长什么即可,最好专精某领域比如『高并发』、『高可用』等等,这个时候一些简历非要给自己加戏,自己会的不会的一股脑往上堆,什么逆向、密码学、图形、驱动、AI都要体现出来,越杂越好,这种简历给人的印象就是个什么都不懂的半吊子。

再说说精,一个刚毕业的应届生,出来简历就各种精通,精通Java、精通Java虚拟机、精通spring全家桶、精通kafka等等,请放心,这种简历是不会没头没脑投过来了,这种在大学里就精通各种的天才早被他的各种学长介绍进了大厂或者外企做某某Star重点培养了,往往看到的这种也是半吊子。

给大家一个技术栈模板:

这样写的后果就在于让面试官一眼就看出你是个吹牛的半吊子,那些各种精通的全才在业界早就出名了,根本不可能还在投简历。

准备工作经历

工作经历本身不用花太多笔墨去写,面试官主要想看的就是每段工作经历的持续时间、在不同公司担任的职责如何、是否有大厂的工作经验等等。

那么什么简历在这里给面试官减分呢?

  • 频繁跳槽:比如三年换了四家公司,每个公司呆的时长不要超过一年
  • 常年初级岗:比如工作五六年之后依然在完成一些简单的项目开发
  • 末流公司经历:在技术招聘届,大厂的优先级最高比如BAT、TMD甚至微软、谷歌等外企,知名度独角兽其次,比如商汤、旷视等等,一般的互联网公司排在第三,就是工作中小型的互联网公司一般大家叫不上名字,排在最后的就是外包和传统企业的经历

所以,如果你有频繁跳槽的经历怎么办?在本公司老老实实等到满一年再跳槽。

如果常年初级岗怎么办?想办法晋升或者参与一些业界知名项目,再或者写一个有一定复杂度的私人项目。

如果有末流公司经历怎么办?如果是很久以前的末流公司经验可以直接不写,也没人在乎你很早之前的工作经历,如果你现在就在末流公司,赶紧想办法跳槽,去不了大厂,去非知名的互联网公司也算是胜利大逃亡了。

不建议任何形式的简历造假,如果去一些大厂,分分钟背调出来,与其简历造假,不如现在就行动起来,比如从现在到年底跳槽季,深度参与一个知名开源项目或者做一个有一定复杂度的私人项目绰绰有余,除非996.

准备项目经历

项目经历不管对于社招还是校招都是重中之重,很多时候成败就在于项目经历这块,一个普通本科可以通过优秀的项目经历逆袭985,一个小厂的员工也可以获得大厂的面试机会。

但是必须要说一下项目经历的编写很讲究,这是为后面面试部分铺路的绝佳机会,也是直接让你的简历扑街的重点沦陷区域。

先说容易让简历扑街的几个坑位。

切忌流水账写法

项目经历流水账写法是绝大多数简历的通病,通篇下来就讲了一件事『我干了啥』。

大部分简历却是这样的:

用Vue、Vuex、Vue-router、axios等技术开发电商网站的前端部分,主要负责首页、店铺详情、商品详情、商品列表、订单详情、订单中心等相关页面的开发工作,与设计师与后端配合,可要高度还原设计稿。

这个描述有什么问题?

其实看似也没啥问题,但是这种流水账写法太多了,完全无法突出自己的优势展现自己的能力。

项目经历是考察重点,面试官想知道候选人在一次项目经历中扮演的角色、负责的模块、碰到的问题、解决的思路、达成的效果以及最后的总结与沉淀。

而上面的描述只显示了『我干了啥』,所以这种项目描述几乎是没意义的,因为对于面试官而言他看不到有效信息,没有有效信息的项目描述基本就没价值了,如果这个时候你还没有大厂经历或者名校背书,基本上也就凉了。

切忌堆积项目

堆积项目这种现象往往出现在没有什么优秀项目经历的简历身上,候选人企图以数量优势掩盖质量的劣势,其实往往适得其反,项目经历的一栏最好放2-3个项目,非常优秀的项目可能放一个就足够了,举个极端例子如果有一天尤雨溪写简历,其实只需要在项目经历那些一行『Vue.js作者』就行了,当然,他并不需要投简历。

有一些项目切忌放上去:

  • demo级项目:很多简历居然还在放一些仿xx官网的demo,这是十足的减分项,有一些则是东拼西凑抄了一些框架的源码搞了个玩具项目,也没有任何价值。
  • 烂大街的项目:这种以vue技术栈的为最,由于视频网站的某门课程流行,导致大量的仿饿了么、仿qq音乐、仿美团、仿去哪儿,同样Java的同学也是仿电商网站、仿大众点评等等,十份简历5份一模一样的项目,你是面试官会怎么想。
  • 低质量的开源项目:一个大原则就是低star的尽量别放(除非是高质量代码的冷门项目),长期弃坑的也不要放,不要为了凑数量把低质量的项目暴露出来,好好藏着。

如果只放两个项目,最好的搭配是一个公司内部挑大梁的项目和一个社区内的开源项目,后者之所以可以占据一席之地,是因为通过你的开源项目,面试官可以通过commit完整看到你的创造过程,比如工程化建设、commit规范、代码规范、协作方式、代码能力、沟通能力等等,这甚至比面试都有用,没有比开源项目更能展示你综合素质的东西了。

切忌放虚假项目

一个项目做没做过只要是有经验的面试官一问便知,如果你真的靠假项目忽悠过了面试,那这个公司八成也有问题,人才把关不过硬,你可以想象你的队友都是什么水平,在这种公司大成长价值也不大。

好,如果你说实在没项目可写了,我只能造假了,那么你应该想一下这多层追问。

比如你说你优化了一个前端项目的首屏性能,降低了白屏时间,那么面试官对这个性能优化问题会进行深挖,来考察候选人的实际水平:

  1. 你的性能优化指标是怎么确定的?平均下来时间减短了多少?
  2. 你的性能是如何测试的?有两种主流的性能测试方法你是怎么选的?
  3. 你是根据哪些指标进行针对性优化的?
  4. 除了你说的这些优化方法还有没有想过通过xx来解决?
  5. 你的这个优化方法在实际操作中碰到过什么问题吗?有没有进一步做过测试?
  6. 我们假设这么一种情况,比如xxxx,你会这么进行优化?

面试官多层追问的逻辑是这样的:

了解背景 -> 了解方案 -> 深挖方案 -> 模拟场景

首先得了解你性能优化的指标如何,接着需要了解你是这么测试的指标、再怎么进行针对性优化的,再接着提出一些其它解决方案考察你对优化场景的知识储备和方案决策能力,最后再模拟一个其它的业务场景,来考察你的技能迁移能力,看看是否是对某块领域有一定的了解,而不是只针对某个项目。

如果要真的在面试现场对答如流,那么一定是在某一块领域有一定知识储备的人,不是随随便便搞个项目就能蒙混过关的。

合格的项目经历如何写

合格的项目经历必须要有以下几点:

  • 项目概述
  • 个人职责
  • 项目难点
  • 工作成果

如果你不怕字太多,还可以选择性加入解决方案、选型思路等等,但是由于篇幅限制和为面试铺垫就不太建议写得太多。

项目概述的目的是让面试官理解项目,不是每个人面试官都做过你的那种项目,所以需一个简述方便面试官理解。

个人职责就是告诉面试官你在本项目中扮演的角色,是领导者?主导者?还是跟随者,你负责了哪些模块,承担了多大的工作量,以此来评估你在团队中的作用。

项目难点的目的在于让面试官看到你碰到的技术难题,方便后续面试对项目进行一系列讨论。

工作成果就很明显了,面试官需要看到你在做了上述工作到底达成了什么成绩,这个时候最好以数据说话,比如访问量、白屏时间等等。

这个时候也切忌展开长篇大论,把技术细节一个个写上去,甚至还写了心路历程的都是大忌,一方面篇幅太大会造成视觉混乱,另一方面面试官想看到的是『简』历,不是技术总结,面试官要面对上百份简历没那么时间来看你长篇大论,长篇大论大可以在面试中展开。

最好的方法就是一行文字简单得说清楚即可,反正项目面的时候一定会问到,到时候好好把你准备的内容讲给面试官,掌握面试的主动权就是从项目经历这一栏中开始。

最后

   还在找工作的小伙伴,莫慌!我这里整理了一套超全的面试资料:1592道大厂Java真题+4份超过万字的面试解析。大致内容包括了:Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等技术栈,现在分享给你们,希望对你们有帮助。

一、Java基础

1、什么是面向对象?

2、JDK JRE JVM

3、==和equals比较

4、hashCode与equals

5、final

6、String、StringBuffer、StringBuilder

7、重载和重写的区别

8、接口和抽象类的区别

9、List和Set的区别

10、ArrayList和LinkedList区别

11、HashMap和HashTable有什么区别?其底层实现是什么?

12、ConcurrentHashMap原理,jdk7和jdk8版本的区别?

13、什么是字节码?采用字节码的好处是什么?

14、Java中的异常体系

15、Java类加载器

16、双亲委托模型

17、GC如何判断对象可以被回收

二、线程、并发相关

1、线程的生命周期?线程有几种状态

2、sleep()、wait()、join()、yield()的区别

3、对线程安全的理解

4、Thread、Runable的区别

5、对守护线程的理解

6、ThreadLocal的原理和使用场景

7、ThreadLocal内存泄露原因,如何避免

8、并发、并行、串行的区别

9、并发的三大特性

10、volatile

11、为什么用线程池?解释下线程池参数?

12、简述线程池处理流程

13、线程池中阻塞队列的作用?为什么是先添加列队而不是先创建最大线程?

14、线程池中线程复用原理

三、spring

1、如何实现一个IOC容器

2、spring是什么?

3、谈谈你对AOP的理解

4、谈谈你对IOC的理解

5、BeanFactory和ApplicationContext有什么区别?

6、描述一下Spring Bean的生命周期?

7、解释下Spring支持的几种bean的作用域。

8、Spring框架中的单例Bean是线程安全的么?

9、Spring 框架中都用到了哪些设计模式?

10、Spring事务的实现方式和原理以及隔离级别?

11、spring事务传播机制

12、spring事务什么时候会失效?

13、什么是bean的自动装配,有哪些方式?

四、springmvc、springBoot、Mybatis

1、Spring Boot、Spring MVC 和 Spring 有什么区别

2、SpringMVC 工作流程

3、Spring MVC的主要组件?

4、Spring Boot 自动配置原理?

5、如何理解 Spring Boot 中的 Starter

6、什么是嵌入式服务器?为什么要使用嵌入式服务器?

7、mybatis的优缺点

8、MyBatis 与Hibernate 有哪些不同?

9、#{}和${}的区别是什么?

10、简述 Mybatis 的插件运行原理,如何编写一个插件。

五、MySQL和Redis

1、索引的基本原理

2、mysql聚簇和非聚簇索引的区别

3、mysql索引的数据结构,各自优劣

4、索引设计的原则?

5、什么是最左前缀原则?什么是最左匹配原则

6、锁的类型有哪些

7、InnoDB存储引擎的锁的算法

8、关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?

9、事务的基本特性和隔离级别

10、ACID靠什么保证的?

11、什么是MVCC

12、分表后非sharding_key的查询怎么处理,分表后的排序?

13、mysql主从同步原理

14、简述MyISAM和InnoDB的区别

15、简述mysql中索引类型及对数据库的性能的影响

16、mysql执行计划怎么看

六、Redis

1、RDB 和 AOF 机制

2、Redis的过期键的删除策略

3、Redis线程模型、单线程快的原因

4、简述Redis事务实现

5、redis集群方案

6、redis 主从复制的核心原理

7、缓存雪崩、缓存穿透、缓存击穿

七、分布式与微服务

1、CAP理论,BASE理论

2、负载均衡算法、类型

3、分布式架构下,Session 共享有什么方案

4、简述你对RPC、RMI的理解

5、分布式id生成方案

6、分布式锁解决方案

7、分布式事务解决方案

8、如何实现接口的幂等性

9、简述ZAB 协议

10、简述zk的命名服务、配置管理、集群管理

11、讲下Zookeeper watch机制

12、zk和eureka的区别

13、Spring Cloud和Dubbo的区别

14、什么是Hystrix?简述实现机制

15、springcloud核心组件及其作用

16、Dubbo 的整体架构设计及分层

八、中间件MQ

1、简述RabbitMQ的架构设计

2、RabbitMQ如何确保消息发送 ?消息接收?

3、RabbitMQ事务消息

4、RabbitMQ死信队列、延时队列

5、RabbitMQ镜像队列机制

6、简述kafka架构设计

7、kafka怎么处理消息顺序、重复发送、重复消费、消息丢失

8、Kafka在什么情况下会出现消息丢失及解决方案?

9、Kafka是pull?push?优劣势分析

10、Kafka中zk的作用

11、简述kafka的rebalance机制

12、Kafka的性能好在什么地方

最后

由于篇幅有限,这里只展示部分内容,所有的资料大家自行扫二维码领取!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值