程序员简历编写指南(超详细)

程序员,简历,编写,指南,详细 · 浏览次数 : 72

小编点评

**个人评价** 个人评价是对自己的解读,一定要用简洁的语言突出自己的特点和优势,避免废话! **项目经历** *基于 Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权,使用 RBAC 权限模型实现动态权限。* *项目经验丰富,在校期间主导过多个企业级项目的开发。* *STAR 法则和 FAB 法则,对于面试,你可以将你写在简历上的东西作为重点,尤其是项目经历上和技能介绍上的。

正文

一定一定一定要重视简历啊!朋友们!正式投递简历之前,至少要花 2~3 天时间来专门完善自己的简历。并且,后续还要持续完善,即使你已经找到了工作。完善简历亦是对自己过往工作的总结,还是非常有必要的。

简历就像是我们的一个门面一样,它直接决定了我们是否能够获得面试机会。简历上的内容很大程度上决定了面试官提问的侧重点。

在不夸大自己能力的情况下,写出一份好的简历也是一项很棒的能力。一般情况下,技术能力和学习能力比较厉害的,写出来的简历也比较棒!

简历模板

简历的样式真的非常非常重要!!!如果你的简历样式丑到没朋友的话,面试官真的没有看下去的欲望。一天处理上百份的简历的痛苦,你不懂!

我这里的话,推荐大家使用 Markdown 语法写简历,然后再将 Markdown 格式转换为 PDF 格式后进行简历投递。如果你对 Markdown 语法不太了解的话,可以花半个小时简单看一下 Markdown 语法说明: http://www.markdown.cn/

下面是我收集的一些还不错的简历模板:

上面这些简历模板大多是只有 1 页内容,很难展现足够的信息量。如果你不是顶级大牛(比如 ACM 大赛获奖)的话,我建议还是尽可能多写一点可以突出你自己能力的内容(校招生 2 页之内,社招生 3 页之内,记得精炼语言,不要过多废话)。

再总结几点 简历排版的注意事项

  • 尽量简洁,不要太花里胡哨。
  • 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些面试官不会介意,但是很多面试官都会在意这个细节的。
  • 中文和数字英文之间加上空格的话看起来会舒服一点。

另外,知识星球里还有真实的简历模板可供参考,地址:https://t.zsxq.com/12ypxGNzU (需加入知识星球获取)。

简历内容

个人信息

  • 最基本的 :姓名(身份证上的那个)、年龄、电话、籍贯、联系方式、邮箱地址
  • 潜在加分项 : Github 地址、博客地址(如果技术博客和 Github 上没有什么内容的话,就不要写了)

示例:

简历要不要放照片呢? 很多人写简历的时候都有这个问题。

其实放不放都行,影响不大,完全不用在意这个问题。除非,你投递的岗位明确要求要放照片。 不过,如果要放的话,不要放生活照,还是应该放正规一些的照片比如证件照。

求职意向

你想要应聘什么岗位,希望在什么城市。另外,你也可以将求职意向放到个人信息这块写。

示例:

教育经历

教育经历也不可或缺。通过教育经历的介绍,你要确保能让面试官就可以知道你的学历、专业、毕业学校以及毕业的日期。

示例:

北京理工大学 硕士,软件工程 2019.09 - 2022.01
湖南大学 学士,应用化学 2015.09 ~ 2019.06

专业技能

先问一下你自己会什么,然后看看你意向的公司需要什么。一般 HR 可能并不太懂技术,所以他在筛选简历的时候可能就盯着你专业技能的关键词来看。对于公司有要求而你不会的技能,你可以花几天时间学习一下,然后在简历上可以写上自己了解这个技能。

下面是一份最新的 Java 后端开发技能清单,你可以根据自身情况以及岗位招聘要求做动态调整,核心思想就是尽可能满足岗位招聘的所有技能要求。

Java 后端技能模板

我这里再单独放一个我看过的某位同学的技能介绍,我们来找找问题。

上图中的技能介绍存在的问题:

  • 技术名词最好规范大小写比较好,比如 java->Java ,spring boot -> Spring Boot 。这个虽然有些面试官不会介意,但是很多面试官都会在意这个细节的。
  • 技能介绍太杂,没有亮点。不需要全才,某个领域做得好就行了!
  • 对 Java 后台开发的部分技能比如 Spring Boot 的熟悉度仅仅为了解,无法满足企业的要求。

实习经历/工作经历(重要)

工作经历针对社招,实习经历针对校招。

工作经历建议采用时间倒序的方式来介绍。实习经历和工作经历都需要简单突出介绍自己在职期间主要做了什么。

示例:

XXX 公司 (201X 年 X 月 ~ 201X 年 X 月 )

  • 职位:Java 后端开发工程师
  • 工作内容:主要负责 XXX

项目经历(重要)

简历上有一两个项目经历很正常,但是真正能把项目经历很好的展示给面试官的非常少。

很多求职者的项目经历介绍都会面临过于啰嗦、过于简单、没突出亮点等问题。

项目经历介绍模板如下:

项目名称(字号要大一些)

2017-05~2018-06 淘宝 Java 后端开发工程师

  • 项目描述 : 简单描述项目是做什么的。
  • 技术栈 :用了什么技术(如 Spring Boot + MySQL + Redis + Mybatis-plus + Spring Security + Oauth2)
  • 工作内容/个人职责 : 简单描述自己做了什么,解决了什么问题,带来了什么实质性的改善。突出自己的能力,不要过于平淡的叙述。
  • 个人收获(可选) : 从这个项目中你学会了那些东西,使用到了那些技术,学会了那些新技术的使用。通常是可以不用写个人收获的,因为你在个人职责介绍中写的东西已经表明了自己的主要收获。
  • 项目成果(可选) :简单描述这个项目取得了什么成绩。

1、项目经历应该突出自己做了什么,简单概括项目基本情况。

项目介绍尽量压缩在两行之内,不需要介绍太多,但也不要随便几个字就介绍完了。

另外,个人收获和项目成果都是可选的,如果选择写的话,也不要花费太多篇幅,记住你的重点是介绍工作内容/个人职责。

2、技术架构直接写技术名词就行,不要再介绍技术是干嘛的了,没意义,属于无效介绍。

3、尽量减少纯业务的个人职责介绍,对于面试不太友好。尽量再多挖掘一些亮点(6~8 条个人职责介绍差不多了,做好筛选),最好可以体现自己的综合素质,比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目优化了某个模块的性能。

即使不是你做的功能模块或者解决的问题,你只要搞懂吃透了就能拿来自己用,适当润色即可!

像性能优化方向上的亮点面试之前也比较容易准备,但也不要都是性能优化相关的,这种也算是一个极端。

另外,技术优化取得的成果尽量要量化一下:

  • 使用 xxx 技术解决了 xxx 问题,系统 QPS 从 xxx 提高到了 xxx。
  • 使用 xxx 技术了优化了 xxx 接口,系统 QPS 从 xxx 提高到了 xxx。
  • 使用 xxx 技术解决了 xxx 问题,查询速度优化了 xxx,系统 QPS 达到 10w+。
  • 使用 xxx 技术优化了 xxx 模块,响应时间从 2s 降低到 0.2s。
  • ……

个人职责介绍示例 :

  • 基于 Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权,使用 RBAC 权限模型实现动态权限控制。
  • 参与项目订单模块的开发,负责订单创建、删除、查询等功能。
  • 整合 Canal + RocketMQ 将 MySQL 增量数据(如商品、订单数据)同步到 ES。
  • 排查并解决扣费模块由于扣费父任务和反作弊子任务使用同一个线程池导致的死锁问题。
  • 负责用户统计模块的开发,使用 CompletableFuture 并行加载后台用户统计模块的数据信息,平均相应时间从 3.5s 降低到 1s。
  • 使用 Sharding-JDBC 以用户 ID 后 4 位作为 Shard Key 对订单表进行分库分表,共 3 个库,每个库 2 个订单表,单表数据量保持在 500w 以下。自定义雪花算法生成订单 ID 的规则,把分片键同时作为的订单 ID 一部分,避免了额外存储订单 ID 与路由键的关系。
  • 热门数据(如首页、热门博客)使用 Redis+Caffeine 两级缓存,解决了缓存击穿和穿透问题,查询速度毫秒级,QPS 30w+。
  • 使用 CompletableFuture 优化购物车查询模块,对获取用户信息、商品详情、优惠券信息等异步 RPC 调用进行编排,响应时间从 2s 降低为 0.2s。
  • 搭建 EasyMock 服务,用于模拟第三方平台接口,方便了在网络隔离情况下的接口对接工作。

4、如果你觉得你的项目技术比较落后的话,可以自己私下进行改进。重要的是让项目比较有亮点,通过什么方式就无所谓了。

项目经历这部分对于简历来说非常重要,《Java 面试指北》的面试准备篇有好几篇关于优化项目经历的文章,建议你仔细阅读一下,应该会对你有帮助。

5、避免个人职责介绍都是围绕一个技术点来写,非常不可取。

6、避免模糊性描述,介绍要具体(技术+场景+效果),也要注意精简语言(避免堆砌技术词,省略不必要的描述)。

荣誉奖项(可选)

如果你有含金量比较高的竞赛(比如 ACM、阿里的天池大赛)的获奖经历的话,荣誉奖项这块内容一定要写一下!并且,你还可以将荣誉奖项这块内容适当往前放,放在一个更加显眼的位置。

校园经历(可选)

如果有比较亮眼的校园经历的话就简单写一下,没有就不写!

个人评价

个人评价就是对自己的解读,一定要用简洁的语言突出自己的特点和优势,避免废话! 像勤奋、吃苦这些比较虚的东西就不要扯了,面试官看着这种个人评价就烦。

我们可以从下面几个角度来写个人评价:

  • 文档编写能力、学习能力、沟通能力、团队协作能力
  • 对待工作的态度以及个人的责任心
  • 能承受的工作压力以及对待困难的态度
  • 对技术的追求、对代码质量的追求
  • 分布式、高并发系统开发或维护经验

列举 3 个实际的例子:

  • 学习能力较强,大三参加国家软件设计大赛的时候快速上手 Python 写了一个可配置化的爬虫系统。
  • 具有团队协作精神,大三参加国家软件设计大赛的时候协调项目组内 5 名开发同学,并对编码遇到困难的同学提供帮助,最终顺利在 1 个月的时间完成项目的核心功能。
  • 项目经验丰富,在校期间主导过多个企业级项目的开发。

STAR 法则和 FAB 法则

STAR 法则(Situation Task Action Result)

相信大家一定听说过 STAR 法则。对于面试,你可以将这个法则用在自己的简历以及和面试官沟通交流的过程中。

STAR 法则由下面 4 个单词组成(STAR 法则的名字就是由它们的首字母组成):

  • Situation: 情景。 事情是在什么情况下发生的?
  • Task: 任务。你的任务是什么?
  • Action: 行动。你做了什么?
  • Result: 结果。最终的结果怎样?

FAB 法则(Feature Advantage Benefit)

除了 STAR 法则,你还需要了解在销售行业经常用到的一个叫做 FAB 的法则。

FAB 法则由下面 3 个单词组成(FAB 法则的名字就是由它们的首字母组成):

  • Feature: 你的特征/优势是什么?
  • Advantage: 比别人好在哪些地方;
  • Benefit: 如果雇佣你,招聘方会得到什么好处。

简单来说,FAB 法则主要是让你的面试官知道你的优势和你能为公司带来的价值。

建议

避免页数过多

精简表述,突出亮点。校招简历建议不要超过 2 页,社招简历建议不要超过 3 页。如果内容过多的话,不需要非把内容压缩到一页,保持排版干净整洁就可以了。

看了几千份简历,有少部分同学的简历页数都接近 10 页了,让我头皮发麻。

简历页数过多

避免语义模糊

尽量避免主观表述,少一点语义模糊的形容词。表述要简洁明了,简历结构要清晰。

举例:

  • 不好的表述:我在团队中扮演了很重要的角色。
  • 好的表述:我作为后端技术负责人,领导团队完成后端项目的设计与开发。

注意简历样式

简历样式同样很重要,一定要注意!不必追求花里胡哨,但要尽量保证结构清晰且易于阅读。

其他

  • 一定要使用 PDF 格式投递,不要使用 Word 或者其他格式投递。这是最基本的!
  • 不会的东西就不要写在简历上了。注意简历真实性,适当润色没有问题。
  • 工作经历建议采用时间倒序的方式来介绍,实习经历建议将最有价值的放在最前面。
  • 将自己的项目经历完美的展示出来非常重要,重点是突出自己做了什么(挖掘亮点),而不是介绍项目是做什么的。
  • 项目经历建议以时间倒序排序,另外项目经历不在于多(精选 2~3 即可),而在于有亮点。
  • 准备面试的过程中应该将你写在简历上的东西作为重点,尤其是项目经历上和技能介绍上的。
  • 面试和工作是两回事,聪明的人会把面试官往自己擅长的领域领,其他人则被面试官牵着鼻子走。虽说面试和工作是两回事,但是你要想要获得自己满意的 offer ,你自身的实力必须要强。

与程序员简历编写指南(超详细)相似的内容:

程序员简历编写指南(超详细)

一定一定一定要重视简历啊!朋友们!正式投递简历之前,至少要花 2~3 天时间来专门完善自己的简历。并且,后续还要持续完善,即使你已经找到了工作。完善简历亦是对自己过往工作的总结,还是非常有必要的。 简历就像是我们的一个门面一样,它直接决定了我们是否能够获得面试机会。简历上的内容很大程度上决定了面试官

《Flask Web 开发指南 pt.2》

哈喽大家好,我是咸鱼 在《Flask Web 开发指南 pt.1》中,咸鱼跟大家介绍了 Flask 的由来——诞生于一个愚人节玩笑,简单介绍了一些关于 Flask 的概念,并且编写了一个简单的 Flask 程序 在编写 Flask 程序的时候,你需要注意你的程序文件不要命名为 flask.py,建议

Java Stream 必须掌握的几种用法

Stream 是 Java8 推出的一套简化集合、数组操作的 API,掌握 Stream 的用法将极大的提升我们的编程能力。 流的获取 通过 Stream 自带的 API 获取: // 通过传入可变参数构造 static Stream of(T... values); // 指定一个常量

[转帖]Linux命令之strace命令

一、命令简介 strace是一个有用的诊断、指导和调试工具。系统管理员、诊断专家和故障解决人员将发现,对于解决源代码不易获得的程序的问题,这是非常宝贵的,因为它们不需要重新编译以跟踪它们。学生、黑客和过分好奇的人会发现,通过跟踪甚至是普通程序,可以了解到大量关于系统及其系统调用的信息。程序员会发现,

shell 编程简记

1. 环境变量 环境变量是指操作系统中记录一些配置信息的变量,这些变量在不同的程序之间共享,可以被操作系统或者 shell 脚本读取和修改。 环境变量也可以类比为各个语言中的全局变量,其作用域是全局的,所有的代码段或者说作用域都可以直接访问到这个变量。 1.1 查看环境变量 查看你环境变量的命令是

【Python进阶-PyQt5】00搭建PyQt5环境

1.创建独立开发虚拟环境 1.1虚拟环境简介 我们编写的程序,有时用到的Python库是不一样的,比如说开发桌面应用程序我们主要用到PyQt5相关的Python库、开发Web应用程序我们主要用到Django相关的Python库等等。假设我们在开发桌面应用程序的时候除了PyQt5相关的Python库外

quarkus数据库篇之一:比官方demo更简单的基础操作

《quarkus数据库篇》系列的开篇,编码实战最基础的数据库增删改查,数据库用的是PostgreSQL,在官方demo基础上进一步精简,极速入门quarkus数据库操作

[转帖]程序员的平行宇宙 —— eBPF 系统级跟踪技术简单入门

https://blog.mygraphql.com/zh/posts/low-tec/trace/trace-quick-start/ 程序员的平行宇宙 程序员有两个世界: 一个是编码世界,我们很容易认为,我们考虑了一切,也完成了一切的代码。 然后是运行世界,我们发现,无论我们多么的严谨和考虑一切

消息队列 - RabbitMQ

RabbitMQ简介 RabbitMQ 是一个广泛使用的开源消息队列系统,它实现了高级消息队列协议(AMQP)标准,为分布式应用程序提供了强大的消息传递功能。RabbitMQ 是 Erlang 语言编写的,具有高度的可扩展性和可靠性,因此被广泛用于构建分布式、异步的消息通信系统。 以下是关于 Rab

程序调试利器——GDB使用指南

GDB是GNU Debugger的简称,其作用是可以在程序运行时,检测程序正在做些什么。GDB程序自身是使用C和C++程序编写的,但可以支持除C和C++之外很多编程语言的调试。