技术岗位如何写简历

这篇文章是我在面试微软、头条并成功拿到Offer的过程中,准备简历时做的一些思考和总结,并提供我使用的简历模板下载。主要针对技术岗位。

明确目标

求职是一个双向选择的过程。投简历面试的过程应该尽可能充分且实事求是的展示个人能力和特点,让HR和面试官在最短的时间里了解你,判断是否适合岗位需要。

  1. 能力问题。简历应该尽力展示自己的能力,但是如果目前能力还不够,抱着侥幸心理刻意夸大个人实力、隐瞒欺骗方式通过面试的做法不可取。即使通过面试了,如果个人能力差太多,工作业绩很不好,一样会被淘汰。

  2. 时机与合适问题。如果对自己的认知不够清晰,不了解自己喜欢和擅长什么,强行拿到并不适合自己的岗位,和自己擅长或者感兴趣的事情差异太大,每天上班都很难受,也没意思。反过来看,面试失败并不一定是因为能力不够,可能是因为目前招人的意愿不强,或者只是因为个人能力和岗位需求不匹配。

双向选择的过程通常都可以拿谈恋爱来类比。

  1. 为了追到对自己并不感兴趣的异性,一直努力迎合对方,从一开始身份就是不公平的,即使追到了也容易会被嫌弃。学习PUA技术欺骗女生的做法也不可取。
  2. 强行改变自己甚至迷失自我的做法也是不好的。被一个女生拒绝并不一定是不够优秀,可能是因为对方目前没心思谈恋爱,或者是因为不合适。例如某个女生就喜欢家庭条件一般能吃苦的人,而你偏偏是个富二代 (●゚ω゚●)

换位思考

多进行换位思考,站在面试官的角度想问题。很多有工作经验的人包括我自己也做过面试官,对面试官的处境有所了解。在短短几个小时的时间里了解一个候选人其实很困难,有时候面试完了也拿不定主意,不确定候选人到底合适不合适。面试官挖掘候选人的能力很重要,候选人自我展示的能力也很重要。

应聘岗位的关注点:

  • 大公司、负责成熟产品的团队,分工更加明确,招聘实际干活的开发人员时,通常比较注重基础知识,关注技术深度,希望求职者在某些领域有较为深入的研究(当然不可能所有领域都很深入),一方面这种技能可以解决团队遇到的该领域的疑难问题,另一方面也体现了候选人的钻研能力。
  • 高职级的岗位,或者是小团队,可能会关心员工有没有创业精神、产品意识、技术广度、领导能力等。
  • 开发人员的通用能力都会比较被重视,例如智商、逻辑思维、学习能力、解决问题能力、团队精神、沟通能力等。

简历内容组成

关于简历具体的形式(应该写多长,写哪些内容),不同的人有不同的看法,这里主要说一下我的看法。

根据文章 CV vs Resume - What are the Differences & Definitions [+ Examples] 的介绍,Resume和CV是两个不同的概念,Resume更加精简,通常只有一页,用于各行各业的求职;而CV更加详细,用于学术相关的招生和招聘。

有很多“江湖传言”说简历只能写一页,理由是HR每天要看很多简历,太长了没时间看,这里的简历指的正是Resume。但是对于开发岗位,最好要用类似CV的东西,从技术专业角度对项目做一些更详细的介绍。

借鉴Resume和CV的概念,针对社招开发岗位,简历可以分为几部分:

一、简历 (Resume),保持精简,最好是一页纸。简历用于HR筛选,以及让面试官快速了解你的基本情况

  1. 基本信息:姓名、年龄、联系方式(电话、邮箱、微信),必要时加上居住地、求职意向。
  2. 教育经历:时间、城市、学校、专业、学历,必要时加上英语成绩。
  3. 工作和项目经验:因为要精简,并且通常会有重复内容,这两者可以压缩到一起。
    • 每段工作经历,基本信息可包括时间、城市、公司、团队、职位。
    • 可以采用总 - 分结构描述。每段工作先用一句话做简单总结(例如公司、团队、项目规模、个人成长等),然后分几点介绍工作内容和成果。每一点又可以先用一句话概括,再详细介绍。
    • 关键项目的介绍,说清楚自己扮演的角色,是独立完成、项目负责人还是参与者,也可以注明大致的贡献占比。使用技术关键字(例如开发语言、工具),但不用写技术细节。成果要有说服力,多使用数据展示(例如开源项目GitHub Star 2k+,性能提升30%等)。重点关键词可加粗,还可以插入相关网址链接(当然电子简历才好用链接,纸质简历就不太方便了)。
    • 如果项目多,又有博客,可以写“更多项目详见个人博客”并插入链接。
    • 做到让HR这样的非技术人员也能大致看到你的实力,并能根据技术关键字判断你的技能和岗位需求是否匹配。
  4. 自我评价:可以列举自己的优点,一定要有实际案例支撑(可直接在括号中简要说明),否则就成了没有说服力的空话了。
  5. 个人技能:最擅长的东西应该在项目经验中已经介绍过了,这里列举你用过的所有编程语言、框架等技术关键字,主要作用是体现技术广度。使用“入门”、“了解”、“熟练”等描述,慎用精通,因为容易翻车。如果写了精通,面试官碰巧有了解这方面,可能会问一些比较难的问题,被问倒了就会让人怀疑你是否诚实了。也可以使用图形例如五角星来描述熟练度。

二、履历 (CV) 或附录,是简历的补充,内容相对详细,长度可以有多页。

  • 内容可以包括重点项目经验的技术实现细节和关键点等。可以借鉴STAR原则说明,即Situation(情景)、Task(任务)、Action(行动)和Result(结果),但也要根据实际进行调整,不能生搬硬套。
  • 面试官如果对你简历中的某个项目感兴趣可以具体看CV;同时在面试聊项目时也起到提纲的效果,如果担心一时想不起来,可以对照CV介绍。
  • 形式上,建议附在简历末尾。也可以考虑写到个人博客中,在简历里贴链接。

三、其他。

  • 个人博客:如果有还不错的个人博客,可以贴到简历里。个人博客如果写的好,远比简历的参考价值要大
  • GitHub:如果GitHub比较活跃,有个人项目,可以贴到简历里。有一定技术含量、Star较多的开源项目,通常是个很大的加分项
  • Demo:对于客户端App、网站之类的项目,必要时可以准备好项目、Demo、截图、网址等,面试官可以自行查看,或者现场给面试官演示,帮助进行说明。

项目经验的整理

有一定工作经验的人通常会有较多项目经验。为了保持简历的简洁,需要挑选最重点的内容来写。写项目经验时可以按照这样的方式进行:

  1. 使用思维导图,将自己过去所有感觉还可以的项目都列出来,想到什么都写上。
  2. 对每个项目的成果如何展示、能反映什么样的能力特点做思考。例如复杂的业务,说明自己业务能力较好;技术项目,说明自己有一定的技术深度;某些小工具项目,说明自己注重工具的使用;个人开源项目,说明自己热爱技术等。
  3. 挑选几个最有代表性的、比较容易说明和展示的项目,做相对详细的分析,根据项目的重要性,介绍的篇幅也需要有控制。
  4. 最后将选定的项目和介绍压缩到简历上。
  5. 其他没有被选中但是也还不错的项目,可以通过博客或附录的形式展示。

内容与排版

  1. 整体结构要清晰,避免逻辑混乱和内容冗余,和写文章类似。例如工作经验和项目经验,常会有很多重复内容,可以合并到一起。
  2. 文字表述要简单明了。如果觉得内容较少,不要刻意凑字数,简历字数和个人经验能力没有直接联系。
  3. 排版要整洁,版面要匀称。例如前面很拥挤,但是后面却有大块空白,就会很不匀称。字数较少可以适当加大字体、增加行间距、增加页面距等。字数太多,首先考虑压缩文字,实在没法压缩再从排版上考虑。
  4. 尽量避免错别字和标点符号问题。这会让人觉得你做事情不认真。

简历编辑工具

简历有多种编辑工具:

  1. Word。不太建议使用,想让简历稍微精致一点,Word不太好实现。
  2. Markdown。我使用的是这种方式,自己修改了CSS调整格式。
  3. LaTeX。LaTeX的排版效果很好,但是环境配置相对复杂,LaTeX语法也需要一点时间掌握。我尝试用了大佬的 LaTeX简历模板,但是编译后的效果不对,可能是兼容性问题,一时不好解决,就放弃了。
  4. PhotoShop等设计工具,可以制作出画面更加精美的简历。比较耗时并且考验审美能力,对于技术开发岗位没太大必要,更适合设计师类岗位。
  5. 在线简历模板。例如 超级简历

简历模板

最后附上我修改的Markdown简历模板:

https://github.com/jzj1993/ResumeTemplate