专栏名称: 开发者全社区
分享和推送Java/Android方向的技术和文章,让你成为这方面的大牛,让你每天都成长一点。同时,我们也会邀请BAT的大牛分享原创!
目录
相关文章推荐
鸿洋  ·  鸿蒙中是如何实现UI自动刷新的? ·  4 天前  
stormzhang  ·  游戏的玩法,已经变了 ·  4 天前  
stormzhang  ·  不让人们存钱了? ·  5 天前  
鸿洋  ·  深入探索 APKTool:Android ... ·  6 天前  
51好读  ›  专栏  ›  开发者全社区

年后想看机会的:程序员这样优化简历,一投制胜

开发者全社区  · 公众号  · android  · 2017-02-16 15:43

正文

相关阅读:

吊炸天!74款APP完整源码!

绝对干货-国内值得关注的官方API集合,很全很强大(必须收藏)

[干货]2017已来,最全面试总结——这些Android面试题你一定需要

特别说明:本文写于 2015 年 11 月,当时作者在找工作,据此优化简历,每投必中。文章特长,特考验耐性,特冲击三观,特消耗时间和精力,特容易造成心理压力,请先深呼吸三次再往下看。


作者简介



前言


《花千骨》一剧,白子画为什么收花千骨为徒?

《琅琊榜》中,梅长苏为什么选靖王而弃太子、誉王?

《泰坦尼克号》里,杰克和露丝为什么会一见钟情?

王子基特为什么会选择灰姑娘辛德瑞拉?

这些问题乍一看似乎和程序员找工作没什么关系,但其实,内在的道理都是相通的,搞明白这些问题,就能清楚下面的问题:

为什么你投十份简历,只有一两家公司约你?

又或者为什么你每投一份简历都能获得面试机会?

最根本的原因,就是一方在汲汲渴求,而恰恰另一方呈现出的关键点让其怦然心动。求者心中有所想,而应者恰恰展现了求者所想的那一面。这就是个中奥妙。

程序员在找工作时,在一开始有三件事情会对能否获得面试机会至关重要:

  1. 知识、技能、经历梳理

  2. 确立求职目标

  3. 简历优化

友情提示:假如你不想看万字长文,可以:跳到第 3 部分,看简历优化实操;跳到第 4 部分,看如何提高简历投递成功率。


01 知识、技能、经历梳理


知识、技能、经历,这都是一个人能体现出来的商业价值。一家企业招募某个人,一定是因为这个人可以帮助企业在某方面实现价值。而且,正常情况下,个人的贡献一定要大于企业为这个人负担的各种成本(薪水、社保、公积金、个税等),否则,要你毛用啊。

所以,作为程序员,我们一定要清楚自己的价值在哪里。个人的商业价值,可以通过下面五大要素分析出来:

  • 知识

  • 技能

  • 经历

  • 天赋

  • 人脉

我们在招聘网站上填写简历时,内容最多的就是前三个要素,都是差不多的模板,填下来千人一面。

在最开始的时候,不建议直接到招聘网站上填写简历。强烈建议先用 word 或 MarkdownPad 来整理记录你认为你具备的所有有价值的知识、技能、经历,不论大小,统统记录下来。这是我们后续优化简历的基础,也是确立求职目标的基础。


1.1 知识与技能


有必要说一下知识和技能的区别,这是很多人常常混淆的。

知识可以通过语言文字、语音、视频等进行传授,比如像 C++、Java、数学、物理、Qt、Android、设计模式、网络协议等都是知识。

技能是指按照某种规则应用知识和经验完成某种任务的能力。比如使用 Qt 开发桌面客户端软件就是一种技能,使用 Java 和 Android 界面类库开发 App 也是一种技能。

我的知识大概有这些:

知识会淡忘,一段时间不用就扔掉了,所以在你的知识图谱里,一定有一些是你经常使用的,比如我最熟悉的就是 C、C++ 和 Qt。

我们需要把自己最熟悉的三种知识标注出来,后面会派上用场。

技能就是对知识的运用,所以一般来讲你有什么知识,就能找到一组技能。比如我可能有下列技能:

  • 使用 Qt 开发客户端软件

  • 使用 Qt 开发服务器软件

  • 使用 Java 开发 Android App

  • 管理项目,制定项目计划,跟踪计划,控制项目进度

  • 团队管理与激励

  • 博客、公众号等自媒体运营

  • ……

好啦,现在我们应该可以进行知识和技能的梳理工作了。

需要特别注意的是,每个人都有很多知识和技能,一定要找出你擅长的 2~3 种知识,2~3 种技能,这将是你求职时的重要参考。人只有使用最擅长的技能去做事情,才能达到最好的效果。


1.2 经历


知识和技能可以帮助我们创造商业价值,而知识和技能的积累过程本身也是有价值的。积累知识和技能的过程,就是经历。

著名电影《贫民窟的百万富翁》讲述了这样一个故事:在孟买贫民窟长大的少年贾马尔参加一个名叫 “谁想成为百万富翁” 的节目,过五关斩六将,最终赢得了 2000 万卢布的大奖和他心爱的姑娘。

这个故事的神奇之处就在于贾马尔回答对了诸如 “《darshan do ghanshyam》的词作者”、“1973 年的动作电影《囚禁》的主演是谁”、“哪一位板球运动员是本世纪历史得分最多的”、“谁发明了左轮手枪”、“百元美钞上是哪一位美国总统的肖像” 之类的问题,而这些问题连博士专家都没把握全中!这与他的身份完全不符,引起了节目主持人的质疑,认定他作弊,趁节目暂停录映,通知了警方以欺诈的罪名逮捕了贫民小子。

为什么贾马尔可以做到?随着问答节目的推进,我们发现,原来,这些问题相关的知识,贾马尔根本没有学习过,而是他独特的贫民窟生活刚好遭遇了这些问题。这就是经历的价值。

程序员的(学习、工作、项目)经历同样具有非常独特的价值,在求职过程中往往会发挥非常重要的作用。比如你做过视频项目,那再找类似做视频的公司就很容易脱颖而出;比如你做过图像处理相关的项目,进入美图秀秀之类的公司就相对容易……

在回顾项目经历时,关于你自己的那部分,一定要想明白并记录下来,从下面三点来挖掘你的亮点:

  • 你负责的工作内容

  • 用到的知识、技能

  • 你对整个项目的贡献(最好可以量化)

我的一个项目经历:

我没有列出前面所说三点对应的所有内容,个人亮点也没完全写出来,但你的心里一定要清楚,你发挥了什么关键作用,如果有攻克技术难点的经历和明显可以量化的业绩,一定要总结出来,面试时经常会被问到哦。

天赋和人脉其实也是个人非常重要的商业价值。但在程序员的简历中较难体现出来,在面谈中倒是有较多机会展现。


02 确立求职目标


不管是从大学走向社会的初次求职,还是在职场摸爬滚打了 N 年的老鸟,找工作时都要忌讳一点:茫无目的,漫天撒网。

求职时,明确目标行业、企业、职位,有针对性的做准备,事半功倍。


2.1 职业延续性


跳一次槽换一个行业,跳一次槽换一条技术栈,这样极其不利于程序员的商业价值积累(知识、技能、业务等)。假如你不是第一次求职,就有必要考虑职业延续性。

假如你现在在金融行业,那换工作时,最好还在里面。这样你的行业相关的经验就可以积累下来,慢慢形成优势。假如你现在做 iOS 开发,最好换工作时还找 iOS 相关的,这样你的 Objective-C 啊,Swift 啊、Cocoa 啊才能持续精进……

有一种情况另当别论:你发现你不喜欢现在的行业和所用的技术。此时跳槽,就要找到新的方向(后面方法可以帮到你)。一旦你找到新的方向,转换过去之后,同样要考虑以后的延续性。每次都说自己不喜欢现在的,更喜欢另一个,这样捣腾几年之后,你很可能会发现,那些闷生不响持续深耕的小伙伴们居然一夜之间都牛逼闪闪起来了……


2.2 成就事件挖掘职业兴趣


在我们总结整理自己的工作、项目经历时,要特别留意那些让你特别有成就感的事件,它里面隐藏你的职业兴趣,可以挖掘出你今后乐意从事的职业方向。

我们可以遵循 STAR 原则来回顾成就事件:

  • S(Situation),背景情况,包括面临的障碍、限制或困难

  • T(Task),任务,目标,想完成的事情

  • A(Action),行动计划与步骤,如何克服障碍、达成目标

  • R(Result),对结果的描述,重点关注你取得了什么成就

成就事件列出来后,可以按照下面两点来深入挖掘:

  • 哪一个具体的点让你特别有成就感,比如 “达成结果受到领导表彰”、“独立克服某个技术难题”、“用自己的 XXX 帮到了某某某”、“成功组织大家齐心协力达到目标”……

  • 用到了什么知识、技能

通过这样的分析,你就可能找到自己的最佳技能和工作中最在意的点在哪里,就可以根据他们来确立新的职业目标。


2.3 聚焦行业、企业、职业


聚焦的目的是缩小目标范围,节省时间和精力,深入研究分析,有针对性的对自己的商业价值进行优化组合,提高简历的吸引力,最后提升获取面试机会的概率。

程序员运用编程语言、技术框架、设计模式、算法等开发针对某个领域问题的软件,软件必然和目标需求和业务密不可分,所以,程序员左手技术,右手业务,假如你对业务内容完全不感兴趣,很难想象你可以把软件做好。因此,当你有了目标产业,目标公司,还要去了解这家公司做什么产品,是产品导向的公司,还是项目导向,还是外包为主,选择那家你对它的业务范围感兴趣的公司,不感兴趣的就果断筛掉。

基于延续性的考量,以往工作过的行业领域都需要认真对待,但不一定非要继续在之前的方向上做,换一换也可以。但有一个基本的原则,离夕阳产业和走下坡路的企业远点儿。

以我为例来分析一下。

技术方面最擅长的语言是 C++,最擅长的框架是 Qt(出过《Qt on Android 核心编程》和《Qt Quick 核心编程》两本书),最擅长的是客户端软件开发。然后对 Android 开发有了解也有兴趣。新的职位最好和这两方面相关。

我锁定的第一个目标是高级软件开发工程师,语言是 C++。行业领域的话,互联网、智慧城市、企业服务等都可以。

还有,我之前都在小公司摸爬滚打,现在希望到比较大一点的公司里体验一下不同的工作氛围。

在锁定职位的过程中,还要考虑自己当前的劣势,以便在简历和面试过程中妥善应对。以我为例,如果找软件开发工作,就有两个不好的点:

  • 最近一年没做什么开发工作,会被人质疑廉颇老矣尚能饭否

  • 最近几年都在做技术管理工作,别人可能会奇怪你为什么倒回去做开发这两点也会影响到目标职位的选择和匹配度,比如有的高级开发工程师职位要求有一定团队管理经验,那和我的匹配度就高一些。

好啦,我的聚焦过程已经完成了,接下来咱们进入简历优化的实操过程。


03 简历优化实操


知道了自己有什么商业价值、弄清了想到什么样的行业什么样的企业里什么样的岗位上工作,接下来就该优化简历了。

简历优化有这么几个要点:

  • 分析招聘信息,提取知识、技能、职责当中的关键词

  • 根据招聘信息里的关键词,筛选个人知识、技能、经历

  • 将匹配到的知识、技能、经历重新组织、呈现

程序员的简历,一般包含下列内容:

  • 基本资料(姓名、性别、年龄、婚否、电话、当前在职状态)

  • 求职意向(职位、工作地点)

  • 知识、技能

  • 自我评价

  • 教育经历

  • 工作经历

  • 项目经验

  • 附加信息(比如兴趣爱好、荣誉、博客、开源项目等)

根据实际情况,有的简历可能没有自我评价、附加信息,有的可能没有可写的教育经历(比如高中生),有的可能没有工作经历和项目经验(如大学生等初次求职者)。

特别提一下程序员的一些个人品牌相关的附加信息(具体参看这 8 种武器点亮程序员的个人品牌),比如技术博客、github 主页、参与的开源项目、自己做的 App、公众号等,都是能非常好展现程序员知识、技能的东西,能为你的简历加分,也能弥补面试时间短信息交流补充分的问题。要知道,决定你能否通过简历关的,通常是另外一个程序员,而对聪慧内敛的程序员致敬的最好方式,就是 “Show me the code”。


3.1 简历模板


很多程序员都使用招聘网站提供的简历模板,要在不同招聘网站上发布简历的话,可能要重复填写 5、6 次简历,非常耗时。我一般会有一份基础的 word 格式的简历,根据它在不同的招聘网站创建不同的简历。

接下来介绍我的简历,非常简单,顺次包括下列五部分内容:

  • 个人信息

  • 求职意向

  • 技能与评价

  • 工作经历

  • 项目经验

我简历的前三部分简单如下:

我工作年限长,挑最近的几段看下:

好了,我简历的主体框架就是这样子了。接下来,我会根据我的目标职位——高级软件开发工程师——来找几条招聘信息,通过分析招聘信息来优化简历的技能与评价、项目经历两个部分。这两部分也是我们优化简历时的重点。


3.2 简历优化


大多数招聘需求是由我们的同行提供的,假如能从招聘信息里反推出拟定招聘需求的那个软件工程师或经理心中的关键词,那你的简历优化就有针对性了。

下图是一个 C++ 高级开发工程师的招聘需求:

红线标注出来的,是一些关键的基本要求,C++、Qt、Windows 桌面客户端,这些是硬性要求,要应聘该岗位必须要满足。

绿线标注出来的,是软性要求,不太容易直接量化和衡量,但面试官可能会在面试中通过交谈来考察。比如软件设计能力、技术传播能力、沟通能力、沟通与团队协作等,通常都是在面试中体现,而编码能力,则可能会通过笔试或者面试中不断的询问技术细节来检验。

蓝线标注出来的,是优选条件,在有多个候选人的情形下,你具备了这些要素,就会被优先考虑。

一般的企业处理软件开发工程师的简历,是 HR 先挑,然后是技术人员(程序员或经理)再次筛选,通过技术人员的筛选后,就会通知笔试或者面试。

HR 拿到招聘需求,会和技术人员沟通要关注的关键点,然后根据这些关键点挑选合适的简历。通常在 HR 眼里,关键点就是关键词,所以,我们修改简历时,尽可能使用招聘信息里出现的字眼,便于 HR 识别。HR 看一份简历,多则一分钟,少则 20、30 秒。

技术人员筛选简历,通常比 HR 要细一些,大致分两步,先筛关键词,然后是看项目经验里是否体现出了他们发布的岗位需要的技能和软实力。关键词匹配不上,PASS,30 秒不到;能匹配上,继续看项目经验,整个过程可能会持续几分钟。

在看项目经验时,一方面看应聘者在项目中是否用到了将来需要的相关技能,另一方面看具体项目内容,做行业、产品、业务相关性比对,如果应聘者做的产品与招聘方要做的相关性高,就会被优先考虑。

通过对简历筛选流程的了解,可以知道关键词的重要性了。那接下来我们就要依据从招聘信息中提取的关键点来修改简历了。

在修改简历时,我的做法是尽可能多的在简历中体现企业要求的技能及软实力。一般可以在下面两处反复琢磨:

  1. 技能与评价

  2. 项目经历

结合我的简历,先看技能与评价部分怎么修改。

因为目标职位是高级软件开发工程师,招聘信息也没有特别体现对管理能力和经验的要求,所以我的管理经验可以淡化或拿掉。然后是突出 C++、Qt、软件设计、技术传播等内容。新的版本如下:

新版本兼顾了硬性要求、软性要求和优选条件,与初始版本有明显不同。接下来,我们就要重新组织、呈现项目经历,让它更多地体现企业 HR、面试官所关注的关键点。下面是我的一个具体的项目经验:

这个招聘需求,和我的匹配点主要在技能(C++、Qt),接下来这个,责主要匹配的是业务(行业)经验。

红线标注出了基本要求:C/C++、Linux。

绿线标注的软性要求,一部分是不太容易量化的技能,比如精通多线程、独立设计经验等,一部分是产品业务相关的,比如音视频编解码、封装、流媒体、网络协议、视频业务系统等。

这则招聘信息中有两个优选条件,不过和我的知识、技能都不匹配。

一个程序员的知识、技能、经历,横看成岭侧成峰,角度很重要。

来看看新修改的技能与评价:

和面向上一个招聘信息的内容又有了较大差异,是不是?

这次我改两个之前展示过的项目经历,方便比较不同。第一个:

这次我将重点放在了多媒体、设计等方面,与前面那份有了很大不同。

再来看文章最前面提到过的一个互联网视频卡顿的项目经验,新版本如下:

和原来大不一样了。

需要特别提醒的是,简历优化是针对程序员知识、技能、经历进行的穿衣打扮,是从不同的视角呈现不同的侧面,可以用心琢磨,但万万不可造假。


3.3 检验优化效果


提供一个检验你简历优化水平的方法:

  • 将你钟意的企业和职位分为 A、B、C 三类,A 是最符合你目标的,B 与你最核心的诉求匹配,C 类呢可能抵触了你的某些核心价值观。

  • 针对 C 类公司的职位,测试你的简历优化技能,找三五家来练手,投递简历,简历过了就去面试,攒面试经验。

  • C 类之后进行 B 类,最后是 A 类。

这样的过程,能保证你先练简历和面试技术,然后以最好的状态走向你最心仪的公司最钟意的职位。


04 如何提高简历投递成功率


根据前面的分析,要想提高简历投递的成功概率,遵循下面的流程将非常有帮助:

梳理知识、技能、经历并记录在案,形成基础简历

  1. 确立求职目标

  2. 筛选招聘信息

  3. 选择匹配自己目标的公司和职位

  4. 针对每个招聘信息进行分析,提取关键词

  5. 根据关键词,结合基础简历,优化技能描述和项目经验,生成一份有针对性的简历

根据我自己的经验,一天可能只能完成 3 份左右的简历投递。因为,针对每一个职位生成一份有针对性的简历,可能会花费 1 到 2 个小时时间,有时甚至更长。不过,花再多的时间都是值得的,因为这种优化将大大提高你简历通过的概率。


Java和Android大牛频道

欢迎关注我们,一起讨论技术,扫描和长按下方的二维码可快速关注我们。搜索微信公众号:JANiubility。

公众号:JANiubility