程序员简历优化实战

程序员简历优化实战

本文来自作者 安晓辉  GitChat 上分享 「程序员简历优化实战」阅读原文查看交流实录。

编辑 | 贝吉塔

在找工作时,有人投递上百份简历才收到一两个要约电话,有人一投一个准。这其中的差异在哪里?

屡投屡败的小伙伴,往往是一份通用简历投 N 家公司,这样的简历看起来和什么岗位都能搭,实际上却没有针对性,无法突出自己的亮点,不能有效匹配目标岗位的需求,最终导致失败。

你正在读的这篇文章,就从针对性、匹配度、突出亮点等方面来介绍如何优化简历,具体内容包括:

  1. 什么是简历优化;

  2. 开发者求职时的三种“相关性”;

  3. 提取招聘信息关键词;

  4. 简历优化之综合(技能)评价;

  5. 运用 STAR 法则描述项目经验。

在开始的开始,我要强调简历优化至关重要的一点:针对每一个职位生成一份独一无二的简历。

很多小伙伴拿一份简历到处乱投,这是大忌,是低级错误!

看完此文后,一定不要再犯!只要你能牢记“一个职位一份简历”这 8 个字,简历优化就成功了 50% !

什么是简历优化

经常有小伙伴往我的订阅号“程序视界”后台发消息,向我抱怨找不到工作,说自己刚刚参加完安卓开发培训,一个面试机会都拿不到,因为几乎所有公司都要求 2 年以上工作经验,问我“能不能优化一下简历,虚构两年工作经验?如果虚构了工作经验会有什么后果?”

我通常直接了当地回复:“虚构两年工作经验”这类无中生有的动作,不是简历优化,是造假。

简历优化是在尊重事实的前提下,有选择、有组织的、有技巧地呈现信息。

举个例子,你会 Java 、PHP 、C 等多种语言,目标职位要求的是 Java ,你在简历中介绍自己时突出“精通 Java ”不提 C,这就是一种优化。

请大家一定不要误解“简历优化”,千万不要把“弄虚作假”美其名曰优化。

顺便说一句,如果你抱着“看了这篇文章就能无中生有制造出通吃天下的简历”的目的,那恐怕你要失望了。

因为这篇文章能带来的帮助,是提供一些重组信息的思路、方法和技巧,让你在有米的前提下做出好饭。

开发者求职时的三种“相关性”

如果你的简历,给人造成“这人的技能、经历和我们的要求毫不相关”的印象,那铁定会被筛掉。所以我们一定要了解,作为开发者,应该在哪些方面营造和目标职位的“相关性”。

相关性有三种:业务、职能、技能。

· 业务相关性

业务,通俗点讲,就是软件所要解决的问题。业务相关性实际上是工作内容相关,即你做过与目标岗位想要实现的业务相似的业务。

比如支付宝和微信支付,解决都是支付问题,做支付宝开发的程序员,和微信支付的岗位,就在“支付”这块存在业务相关性。

再比如你给中国电信做过网上营业厅,那你去应聘中国移动的网上营业厅岗位,就在“网上营业厅”这个业务上存在相关性。

招聘信息中类似下面的要求:

  • 有开发过智能家居云平台或者物联网云平台的开发经验;

  • 负责过推荐系统或者广告系统后端架构开发者优先考虑;

  • 有大型分布式、高并发、高负载、高可用性应用系统的设计开发经验者优先;

  • 3-5年以上电商行业经验优先考虑。

都是在讲业务相关性。

· 职能相关性

所谓职能,指的是某个职位所承担的任务、作用和功能。

比如软件开发工程师和研发经理,就是两种不同的职能(所以开发者升任研发经理,不是职位序列自然发展的结果,而是一种转型)。

对开发者来讲,职能相关性只在以下两种情况才体现出来:

  1. 从开发岗位跳往管理岗位。

  2. 从管理岗位跳往开发岗位。

第 2 中情况比较少见,只有像我这种奇葩才有此经历。所以我们关注第一种情况就好啦。

招聘信息中类似下面的要求:

  • 2年以上10人以上技术团队管理经验;

  • 有电商项目开发管理经验;

  • 至少3年移动互联网行业技术经理(或总监)任职经历,团队管理经验。

都是在强调职能相关性。如果你没做过技术管理工作,又想跳到一个管理岗位上,通常会很困难。

如果你真的想转型做技术管理岗位,可以参考《程序员的成长课》一书,它的第 3 章讲了 4 种走向技术管理的方式,第 4 章讲了技术管理岗位常见的 18 种挑战。

· 技能相关性

这一点是大家最熟悉的啦,招聘信息中也经常看到:

  • 精通 Java 编程,熟悉 SSM 框架;

  • 熟练应用 Swing、 JQuery、Javascript 开发;

  • 熟悉 Hadoop、HBase、Solr、ZooKeeper 等技术者优先;

  • 熟悉 MySql/SqlServer/Oracle 三种数据库架构中任一种的具体操作。

这些全都是在要求技能。

受到这种行业习俗的影响,很多程序员习惯用某种技术指代自己的工作,比如“Java 程序员”、“前端开发”、“iOS 开发”等等称谓,都体现了这点。

但实际上,对开发者来讲,技术只是相关性的一种,业务相关性也很重要。

所以我们在优化简历时,要从多个维度来打造我们和目标职位的相关性,推动浏览简历的人形成“就是他啦”这种印象。

提取招聘信息关键词

我们程序员有个特点:习惯从自己出发,不管对方要什么,把自己的东西一股脑倒出来给对方看。

你有吗?

有的话就要注意啦,需要转换一下思维,以用户为中心来调整自己的呈现。这是简历优化的大前提!

你要想让你的简历在 3~5 秒的时间内抓住目标公司简历筛选人员的眼睛,就必须要细致入微地研究招聘信息。

招聘信息一般是由用人部门拟定,经由人力资源专员(HR)发布。用人部门的负责人在确认招聘需求时,一般是先看到要做什么项目(产品),然后根据这个项目(产品)的需要推导出要招募的人应该具备什么技能、经历。当他拟定招聘信息时,就会把脑海里这些技能、经历作为重点交代给 HR ,HR 筛选简历时就按用人部门划的重点来做简单匹配。

所以我们在撰写简历之前,就要努力了解码招聘信息,还原出用人部门的关键要求。

一般来讲,你可以从以下 6 方面提取招聘信息中的关键词:

  1. 知识/技能

  2. 业务

  3. 项目经历

  4. 软能力

  5. 学历

  6. 工作年限

分析目标职位招聘信息的过程,逻辑上分为两步:

  1. 拆解关键词

  2. 对照自己的价值筛选匹配点

建议我们在做招聘信息分析时,先不管自己的情况,单练如何拆解关键词这一步。

因为如果你在分解招聘信息时脑子里始终在观照自身,比较容易受否定信息的干扰,觉得这个自己没有,那个自己没有,几个没有之后,可能就觉得自己不适合这个岗位,就放弃了。

下图是我对一个大数据研发工程师的招聘信息的分析:

程序员简历优化实战

红色线条划出的是知识、技能类要求。蓝色线条划出的是业务类要求。黑色线条划出的是项目经历方面的要求。绿色线条划出的是软能力方面的要求。

下面是一则针对 Android 开发工程师的招聘信息:

程序员简历优化实战

请大家做一个练习,标注出其中的关键信息。在完成练习之前请不要继续往下阅读。

我的练习结果如下:

程序员简历优化实战

大家可以到各种招聘平台上去找招聘信息,多多练习。

当你能够客观地、熟练地分析招聘信息后,再结合自身情况,和拆解出的关键词作比对,找到你和目标职位匹配的部分,形成匹配点清单,类似下面这样:

  • 3 年 Android 客户端开发经验;

  • 精通 ListView 等 UI 组建;

  • 熟悉多线程开发和各种线程间通信机制;

  • 熟悉 SQLite 数据库。

只要能匹配上一类(技能、业务、职能)关键词,就很有可能通过简历关。

求职简历的一般结构如下:

某某某的简历 | ---| 基本信息 | 技能评价/综合评价 | 工作经历 | 项目经历 | 附加信息 |

本文接下来的部分,会对标前面那个 Android开发工程师 的招聘信息,介绍如何优化技能评价和项目经历这两个简历的重要组成部分。

优化会始终围绕你提炼出的匹配点清单,所以,前面的招聘信息拆解练习,一定要做。

优化技能评价

现在来看我收到的两份简历的技能(综合)评价部分。

第一份简历:

程序员简历优化实战

它里面的自我评价和技术能力合在一起,可以视作综合评价。

自我评价的两段内容,放在大部分求职者身上都能用,多数都是套话,起不到什么好的作用。

技术能力这部分,没有重点,只是简单罗列。

看了上面的图片,你觉得这份简历的主人,和目标职位匹配度高吗?

第二份简历:

程序员简历优化实战

这份简历的专业技能部分,用了一个 16 项的列表来介绍自己掌握的技能,但是你看过之后,闭上眼睛,能记得它讲了什么吗?

反正我眼睛扫来扫去,找得晕晕的。

而实际上,这份长达 16 项的列表中,包含了目标职位要求的各种技能和经验。

先看目标职位:

程序员简历优化实战

它要求的 Android应用开发经验、精通 UI 组件、多线程、XML、网络编程等,实际上我们简历的主人都具备。所以,我们接下来要做的事情,就是去掉不必要的芜杂信息,保留 3 ~ 5 项与目标职位匹配的信息。

优化之后如下:

  • 4 年 Android 客户端开发经验;

  • 熟悉Android平台的 UI 组件,擅用 ListView 、 GridView 和各种 Adapter 实现复杂的动态界面;

  • 熟悉 XML 、JSON 等文本数据格式;

  • 熟悉网络编程,曾在 2 个项目中使用 HTTP 通信和 Socket 通信;

  • 熟悉多线程编程,熟练应用 Android 环境下的四种多线程编程方式;

  • 具备快速学习能力和问题分析能力。

这下简洁多了,也有针对性。

在优化自己的技能评价或综合评价时,要注意以下几点:

  1. 最好把招聘信息中的用词嵌入进去,因为筛选简历的非技术人员往往是快速扫描关键词,有了就通过,没有就拒绝。也可以尝试加粗显示这些关键词,以便 HR 可以瞬间注意到。

  2. 把列表长度控制在 3 ~ 7 这个范围。因为人的大脑,很难在几秒内记住超过 7 个关键词。

  3. 不要过多使用类似极佳、丰富、较强、强烈等形容词,都是废话,还容易引起反感,我们只要简洁、准确地描述事实即可。

用 STAR 法则呈现项目经历

项目经历是展现你与目标职位的业务和技能相关性的重地,怎么郑重对待都不为过。

优化这部分,有两个要点:

  1. 突出与目标职位匹配的经历,无关的可以从略或不写。比如我个人在 2002 ~ 2005 做过技术支持工作,那现在再写针对开发岗位的简历,这 2 年多的经历就可以一笔带过甚至根本就不体现。除非你想要通过某个不相关的经历体现某种特定的软技能或者素养,否则不要让它们占据太大篇幅,以免喧宾夺主。

  2. 用 STAR 法则呈现特定项目经历。

现在我们把重点放在 STAR 法则上,它可以帮助我们更清晰的展现项目经历。该法则是这样的:

  • 情境(Situation),对应到项目描述或项目背景;

  • 任务(Task),对应到项目目标或者你职责内的目标;

  • 行动(Action),对应到你做的事情;

  • 结果如何(Result),对应到项目的结果,尤其是你做的事情所产生的结果。

运用 STAR 法则,可以很好的梳理项目经历:在什么情况下,负责什么样的任务,采取了什么样的行动,取得了什么样的结果。

接下来我们给出两个实例,解释怎么使用 STAR 法则。我们会先给出原始的项目描述,再用 STAR 法则改造它,对比着看效果。

第一个:

程序员简历优化实战

我看了上面的 X 路由项目经历,觉得又乱又不清晰,根本不知道他做了什么工作、用到了什么技术。

现在我们要使用 STAR 法则重写 X 路由项目经历,同时把之前优化后的技能评价嵌入到项目经历的描述中。

之前优化后的技能评价如下:

  • 4 年 Android 客户端开发经验;

  • 熟悉Android平台的 UI 组件,擅用 ListView 、 GridView 和各种 Adapter 实现复杂的动态界面;

  • 熟悉 XML 、JSON 等文本数据格式;

  • 熟悉网络编程,曾在 2 个项目中使用 HTTP 通信和 Socket 通信;

  • 熟悉多线程编程,熟练应用 Android 环境下的四种多线程编程方式;

  • 具备快速学习能力和问题分析能力。

我们改造后的新版本的 X 路由项目经历如下:

项目介绍(S)

这是 X 路由的操控 App ,可以展现 X 路由的状态信息,可以对 X 路由进行设置,还可以和 X 路由之间共享图片、音乐、视频等资料。

我的任务(T)

  • 负责 X 路由状态信息获取与展示;

  • 负责图片、音乐和视频等资料展示、上传和下载。

实现摘要(A)

  • 在 X 路由内采用 NIO 实现 HTTP 服务器;

  • 采用 RESTful + JSON 的方式传递路由状态信息;

  • 使用 ListView 展示多媒体资料;

  • 采用多线程上传、下载文件,使用 Handler 交互任务信息。

结果(R)

  • APP 比预定计划提前一周上线;

  • 多线程上传下载模块,速度是手机浏览器普通下载的 3 倍,被复用到 4 个项目中。

这样是不是比第一个版本要清晰一些?而且,也把多线程、网络编程、UI、JSON 等匹配点展示了出来。

现在我们再来看第二个项目经历:

程序员简历优化实战

这个项目的描述,比第一个稍好一些——这主要体现在格式上——分开了项目介绍和项目描述。

但是它的“项目描述”这个标签下的内容,其实说的是求职者做的事情,所以它不应该被称作“项目描述”,而应该是“职责”或“我的任务”。

同时它的项目介绍中,缺乏功能性描述,整个项目经历中,还缺少个人的任务描述和结果描述。

我们用 STAR 法则来改造一下这个项目经历,结果如下:

项目介绍(S)

“X”致力于打造互联网与实体店线上线下交易的专业文化产业平 台,是一家由*主导的文化产业类的跨境交易电子商务平台。

 X 内容极为丰富,集交流、交易、拍卖、鉴定及学习等功能一体,实现了艺术产品交易、鉴定及知识培训的电子商务化。

我的任务(T)

  • 直播模块开发

  • 自定义控件开发

  • 网络请求库开发

实现摘要(A)

  • 基于 PLVideoTextureView 封装适用于拍卖、培训的直播模块;

  • 自定义积分表盘、闪屏页、艺术家卡片等高级控件;

  • 基于 RxJava + Retrofit + OkHttp + Gson 封装网络请求。

结果(R)

  • 直播模块 3 行代码即可完成适配;

  • 网络请求功能 1 行代码接入;

  • 在团队中推广 Retrofit + OkHttp ,使得整个项目的代码都摒弃了 HttpClient。

请假想你是用人部门负责筛选简历的开发者,结合前面的招聘需求,问问自己,你会喜欢哪个版本。

在应用 STAR 法则撰写项目经历时,脑中一定要牢记以下几点:

  1. 突出你在项目中做了什么,因为公司更想看到这个;

  2. 在职责或实现部分的描述中展示与职位要求匹配的技术和能力,因为它们能提高你简历的通过率;

  3. 在项目介绍部分,对产品(服务)的描述中,体现与目标职位的业务相关性。

这里才是开始

前面我们从简历优化的定义开始,介绍了如何从 JD 中提取关键词,如何在简历中体现匹配性,如何根据 JD 关键词优化技能评价,以及如何用 STAR 法则撰写项目经历,呈现公司关注的关键点。

但是,知道了这些,并不代表你就真的能做好简历优化了。你还需要持续的练习!

你需要做下列事情:

  1. 整理一份基础简历,包括你的所有技能、所有项目经历;

  2. 找 5 个以上你感兴趣的职位 ,分析 JD 关键词;

  3. 根据 JD 关键词,裁剪基础简历,生成一份有针对性的简历;

  4. 优化该简历中的技能评价和项目经历部分;

  5. 把招聘信息和你优化后的简历发给你的朋友们,请他们给出反馈;

  6. 根据反馈,再次优化简历,然后重复第 5 步,直到有反馈说“看了简历就觉得很合适这个职位”。

至少要为每一个职位预留 4 个小时的时间来练习简历优化。等你完成了至少 5 次练习,再来考虑投递简历的事情。

程序员简历优化实战


近期热文

从一个悲催的IT人说起 | 科普一下 DevOps

Openv*n 的穿墙远程连接旅程

前端跨域问题各种解决方案

程序员跳槽时,如何高效地准备面试?

工作之余如何高效学习

GitChat 被恶意攻击引发的技术性思考:拒绝服务攻击

「阅读原文」看交流实录,你想知道的都在这里