2015年之前,在中美互联网行业高速发展期时,求职过程中找到内推资源就等于拿到了面试机会。3年之后,互联网发展趋于成熟,行业格局稳定,创新贫乏,人才供求关系整体回归理性。在这样的大背景下,“内推”已不再是拿到面试机会的保障,而一封优质的简历却成为“万马奔腾,孰领风骚”的一纸答案。2018年9月,根据Google HR部门的粗略统计,大概只有10%左右的求职申请者可以通过简历关而顺利进入到面试关。近90%的求职申请者在简历投递后,被直接拒之门外。那么,如何写好一封个人简历呢?HR究竟期望看到一封什么样的简历呢?
原来,无论是HR也好还是Engineer面试官也好,都期望看到一封具有处理工业问题能力的简历。比起在校园项目中完成单一模块或功能的homework,从业者更希望看到具有长期实习经历,前沿项目经验和系统级别开发经验的实战派工程师。因此,总的来说,内容成为了简历的魂,而实习与项目经验则成为内容中的魂中魂。
简历字数
一封合格的简历字数大概在350词 – 450词之间,少于350词的简历显得空空荡荡,述无可述,容易使人觉得项目经历不足。多于450词的简历,对于单页标准化简历来说,又显得太过密集,容易使阅读者喘不过气来。过多的内容可能会让阅读者忽略关键内容,从而拒绝了求职者的申请。
简历框架
通常情况下,简历由四部分组成,分别是Education, Work Experience, Project Experience以及Skillset。其中,Education需写明本科,硕士以及博士(如果有)的专业,院校,毕业时间以及主要所学课程内容。而所学课程内容尽量能够反应出你的专业方向或期望求职的方向。Work Experience则写明与求职方向相关的实习或全职经历。Project Experience则说明个人或团队的项目开发经历。Skillset则列举出求职者个人所掌握的与求职方向基本匹配的关键技术栈。
项目描述
正如前文所说,项目描述是一封简历的“魂中魂”,无论是实习项目,个人项目还是课程团队项目,只要达到“类工业”级别的标准,就非常有可能吸引HR和面试官的眼球。那么,什么样的项目才能被称为“类工业”级别的项目呢?
其实,项目搭建的过程与盖房子的过程相比,可谓如出一辙。盖房子前,我们会有总工程师设计好的图纸作为参考,相比之下,则是代表了项目的总揽方向,也就是我们常说的“项目目标”或“项目应用场景”。在写项目题目时,应该高度总结所开发项目的应用是什么,题目最好控制在五个词之内,让面试官能够快速理解项目意义。比如,当利用一些机器学习的技巧开发了一套股票价值预测的网站时,不要将题目写成“machine learning project”或者“coursework website”,更不能写成“personal website”。根据项目应用来看,应该将题目写成“stock value prediction website”或“stock value prediction system”。题目同行,应该清楚的标记出项目开发的时间长度。一般情况下,一个学期的开发时间长度较为合理。时间太短,自然而然项目深度达不到预期,距离“类工业”级别的标准有所差距;时间过长,则项目深度需要进一步提高,很难达到面试官对于项目开发结果以及项目开发者对于项目理解深度的预期。
项目内容描述方面,为了让HR和面试官快速的理解该项目,
第一个bullet主要涵盖三个方面内容:use case, features以及impact。其中,“use case”与项目题目类似,以简短的语言重复说清项目的应用场景。“features”则是项目本身所具备的具体功能。而“impact”则是说明该项目的社会影响,包括用户数,销售额,是否作为某知名科技公司引用的API等一切可以展现该项目积极意义的方面。对于这三个方面的内容覆盖,比如,如果是APP开发的话,以“Uber”为例,其应用场景(use case)为“打车软件”,主要功能(features)涵盖“汽车追踪,地图导航功能,最短路径计算功能,计算价格功能”等等。而最直接的社会影响(impact)则是帮助全球数以亿计的人们解决了打车难的问题。因此,第一个小bullet可以这样描述:“Developed a “call taxi” android/ios application that has available taxi online searching, taxi tracking, mapping, navigation as well as price computation features. The application is being used by 200 millions of people”;
第二个bullet正式开启了“房子”的框架搭建。相比于高校中的课程项目开发,“类工业”级别的复杂项目更需要系统层面(system level)的考量。因此,系统架构(system architecture),框架(framework),包括设计模式(design patterns)都变得尤为重要。而没有架构,框架和设计模式的系统,就像一个缺少地基与主框架的大楼,有可能因为一点风吹草动,就全部坍塌。因此,什么样的项目需要什么样的架构支持,各个框架具备什么优势及特点,设计模式在该架构下能发挥什么作用都成为了摆在开发者面前的实际问题。这些系统级别问题的解决,当然会大大的丰富项目本身,使简历中的项目看起来与众不同。
第三个bullet用来覆盖一切在该项目中使用到的技术栈,比如是否使用了某种数据结构?项目的开发语言是什么?是否使用了某种算法?其中,尽可能的详细描述你的技术栈,并将技术栈与项目功能联系起来进行描述,帮助HR和面试官理解你做了什么,而不是只言片语,欲言又止,让别人联想翩翩。如果使用了较多的不同种的技术栈,可以添加新的bullet进行具体描述。
第四个bullet主要描述整个项目开发过程中使用到的第三方库,比如图像与计算机视觉的项目可能会用到OpenCV,游戏项目可能会用到OpenGL,机器学习项目可能会用到TensorFlow或者Pytorch等等。适当的第三方库的集成不仅可以加速开发进程,快速拓展所需要的功能,更有可能匹配工业界的需求。根据统计,工业界90%以上的项目研发与开发都多多少少的使用到了第三方库,因此,在清楚的理解背后理论知识后,根据项目需求对第三方库进行合理优化成为了众多踩在巨人肩膀上的项目的成功秘诀。
第五个bullet则是关于专业开发工具的使用描述。“类工业”级别的项目自然而然要用专业的工具辅助整个软件开发和实现过程。比如,从业者通常用github或者bitbucket进行软件的源代码迭代管理,也会使用比如Teamforge或者Jira进行开发流程管理等等。当面试官发现你们在使用某种相同的开发工具时,自然会刻入“专业”的评价印象。如果简历中有4-5个项目的描述,只需要在其中2个添加关于开发工具的描述就可以了。
细节提升
1. 量化结果:
目前,大部分世界500强公司的HR仍然按照STAR的标准去评估简历。STAR代表Situation,Task,Action以及Result。而在计算机行业,任何项目结果(Result)都应该尽可能地去做量化(Quantify)而不是使用“很好”,“不错”,“可观”等形容词去描述最终的结果。比如,在做机器学习“预测类”的项目时,最后告诉面试官“预测的准确率”以及其计算标准就显得尤为重要。同样的,当在项目中提到“优化(Optimization)”的字眼时,更要说清楚是性能(Performance)优化,内存(Memory)优化还是质量(Quality)优化。而针对每一种优化,提升的百分比是多少?计算标准是什么?数字才是最易懂最有说服力的结果展示。
2. 加黑加粗关键词:
根据对Google,Facebook,Amazon,Microsoft,Apple等一线科技公司HR的采访,多数HR大概只花费不到10秒钟的时间对简历进行初筛。更有甚者,会将这个过程缩短至3秒以内。那么,如何能够在单页具备丰富内容的简历中,高效地吸引到HR的眼球就显得尤为重要。在一篇350词-450词的简历中,真正的关键技术栈词汇所占比例其实并不多,而其余大部分内容则是帮助面试官理解面试者的项目。因此,加黑加粗关键的技术栈可以让HR快速地发现申请者的技术优势。如果技术栈比较前沿,并且能够适当匹配岗位需求,那基本上就可以确定申请者可以成功获取该岗位的面试机会了。
3. 技术引导词汇:
当求职者在简历中写入一系列宽泛的技术栈的时候,面试官会理所应当地认为求职者对于该技术栈的理解已经成熟。如果面试官恰巧又对该技术栈的使用非常熟练时,那么被问及问题的深度和复杂度则会达到一种不受控的状态。比如:当求职者在Skillset一栏中,罗列出自己的首选编程语言为C++,而面试官或许已经在平日的工作中使用C++ 17版本,那么什么是fold expressions,什么是structured binding这样的问题有可能考的求职者措手不及,求职者可能连这个问题要问什么都不清楚,因此在面试中容易造成紧张或恐慌情绪。而如果在简历中明确写出只熟悉C++ 11,那么面试官则不会把以上问题放入讨论或者考核的清单,而求职者则可以成功的有限控制面试问题范围。
4. Github或其他技术相关的个人Blog链接:
当HR已经完成初筛,相对比较认可简历内容时,适当的符合coding style的代码展示可能会让HR对求职者刮目相看。专业而规范的代码甚至有可能将求职者直接送进onsite面试。而分享的源代码链接则要求规范而具有规模,代码条理清晰,程序架构清晰。
5. 删除无关内容:
计算机行业的求职简历必须尽可能地展现个人的专业技术,而不是其他。很多求职者在简历中大篇幅地描述自己的领导力,沟通力,这种做法是非常不正确的。尽管领导力,沟通力等软实力也很重要,但是考量的过程往往在面试对话中就已经完成了。一个有经验的面试官可以在短短的45分钟之内,通过面试考核与沟通快速地判断出求职者的综合素质。而能进入面试的前提,是技术符合公司岗位所需,绝不是领导力或者沟通能力有多么优秀。
以上就是写好一封简历所需要把握的各个方面。“巧妇难为无米之炊”,面对现在竞争激烈的求职环境,项目实践与技术实战的经验积累是写好一封简历的大前提,而一封完美的简历绝不是短时间内可以打造的。作为求职过程中非常重要的一环,先发制人才不会受制于人,早做准备永远不会错!