马上就到一年一度的校招季了,近几年程序员行业的招聘可谓是越来越内卷,作为面试的敲门砖,简历的重要性不言而喻,今天就仔细谈谈简历的方方面面,希望对大家写简历有所帮助,愿每个人都能顺利拿到满意的Offer。
简历包含哪些内容?
一份好的简历总体可以分为以下几个板块
这个顺序能让 HR 从浅到深快速了解求职者的优势与技
1. 个人基本信息
- 主要就是姓名/电话/邮箱 ,这几项是必填内容。清晰罗列出信息即可,这样HR就不用在接下来的电话沟通或面试中再去追问这些内容,建立我们接下来电话沟通对你的熟悉度。也可以加上微信作为备选联系方案,以免电话打不通的情况。
- 其次是求职意向,比如Java开发工程师、前端开发工程师、公司首席技术官等等。
如果参与了一些开源项目或者经常总结分享,可以放上 Github 或者博客链接,因为这能从另一方面突显求职者的编程能力。如果 Github 既没贡献过开源项目,一年就 commit 了几次的话就不要放进去了。如果没写过技术博客,或者很久没更新的话,可以在准备面试的这段时间,每周根据复习的主题写一篇总结性的博客。这样一方面能够通过写文字强化理解复习的内容,为技术面试做好准备,另一方面也能作为简历的加分项。
2. 教育背景
这块不用说,就是写你的本科、研究生、博士等阶段的学校和专业。
如果有 高绩点 / 奖学金 / 比赛获奖 等可以选重要的加上,比如一些比赛的国家级一二等奖、国家奖学金等等。如果你专业排名很靠前,也可以把专业排名写上去。对于校招而言,如果有些专业课成绩特别好,比如数据结构、计算机系统等,也可以加上去,体现出你个人的基础很扎实。
3. 技能列表
技能列表就是向企业展示你会什么,但是这个我们不能盲目的将所有的技能堆叠上去,要根据所求职的岗位来针对性的组织自己的专业技能,将岗位需要的技能结合自己的熟悉程度,放在前面;其他不太相关的技能,可以稍往后放或者直接不写出来。
下面我举个例子简单说明,比如下面是一则招聘公告,里面描述了岗位的需求。从中我们可以看到, 企业对Spring、数据库、架构、高并发等方面有要求,因此结合我们自身的工作经历,可以按照如下类似的格式总结:
- 熟练掌握Java基础、集合、并发,有JVM排查问题和调优的经验
- 精通Spring MVC、Spring Boot,可以手写实现Spring MVC。熟练使用JPA、Spring Security等框架。
- 熟练掌握MySQL原理和常见优化手段(索引、SQL优化、读写分离等)
- 熟悉常见分布式框架原理,如Dubbo、Kafka、Zookeeper、ES、Redis等
- 熟悉云原生部署,掌握K8S、Docker等底层原理。
慎用精通,一般来讲,根据对知识的熟悉程度,我们可以使用不同的程度,精通 > 熟悉(推荐使用)> 掌握(推荐使用)> 了解(推荐使用)。如果对某一个知识或者框架不是理解的非常透彻,一定不要使用精通,否则可能面试官会针对这个框架进行深入考察,如果有些知识点回答的不好,就会影响到面试官对你的看法。
4. 工作经历
工作经历建议采用倒序的方式,来介绍自己过去一段时间的工作情况,如果是校招的话,可以换成实习经历。大概的示例如下:
某知名公司 (202X 年 X 月 ~ 202X 年 X 月 )
- 职位:Java 后端开发工程师
- 工作内容:主要负责基础架构的设计和实现
5. 项目经验
项目经验介绍你的具体项目经历,大概交代下项目的背景、业务内容即可,多写点技术描述,写清楚你在这个项目中利用何种技术解决了或者达到了或者实现了什么效果,或者给公司或团队带来了什么收益,或者写你在该项目中遇到技术难题的攻关过程,千万不要写类似“通过该项目,我学习到了XXX”,企业招你来是干活的不是专门给你学习的。
具体来讲, 可以根据岗位需求和自己的实际工作情况,选择3-4个相关的项目即可,比如这里我以一个分布式爬虫系统为例来进行介绍。
分布式网络爬虫系统的设计与实现 2022.09 - 2023.06 XX公司Python开发工程师 项目内容:
- 作为组长负责设计和开发分布式网络爬虫系统,优化爬虫策略和防屏蔽规则,提升网页抓取的效率和质量。
- 使用 Scrapy 框架对爬虫模块进行重构,提高 200% 爬虫速度并减少服务器 20% CPU负载。优化爬虫策略,降低 80% 被屏蔽的请求数。
- 基于ZK、Redis和MySQL实现了分布式爬虫系统的核心调度, 完成了URL的排序、分发、调度、任务分配等模块。
- 基于K8s和Docker对整套系统进行架构拆分和部署,可以根据负载进行实时扩展,同时也实现持续集成与一键自动化部署。
注意事项
1. 根据工作经验和岗位侧重来写项目经验
描述技术栈时针对自己求职的公司职位或者求职意向来写,例如求职开发职位,就弱化一些自己曾经做过的一些测试、运维或者项目经理的工作描述;求职后端开发,就要弱化前端相关的技术术语了;求职 Java 开发,就不要在简历中大写特写 C、PHP 等其他语种的项目或模块经历。尤其不要写与职位无关的经历,如果存在的话可以一笔带过。
如果工作经历不长,你在项目中的角色可能是负责单个服务或者单个服务中的部分模块,此时写项目经历时可以多写点技术细节,如网络通信的协议细节、队列数据交换的设计细节、程序对数据加工的细节等等;但是如果你已经工作三年及以上的高级开发者,描写项目经历时,要侧重写一点对项目整体的框架或者架构的认知,如消息在各个服务中的流转过程、每个服务的作用、核心服务的结构、技术重难点等等。
到这里也提醒大家,不要一份简历到处投递,要根据岗位需求来调整自己的项目经验和侧重点,有的放矢。
2. 学会总结项目难点引导面试
几乎在我经历过的所有面试中,在介绍完项目的大致内容之后,面试官都会问我同样一个问题,"项目的难点在哪里?", 针对这个问题,我们在总结项目的时候,要提前仔细思考一下项目中有哪些功能比较复杂?哪些功能花了很长时间才解决?有时候难点不一定是非常大的功能或者改动,你只要找到项目中的一点,深挖下去就会遇到难点,解决它,这种经历就可以拿来在面试中来说了。 另外我们在完成一个项目之后,可以及时的总结当前项目中遇到的困难和问题,以及自己是如何解决的,免得等到真要找工作的时候,才发现很多东西都忘了,得重新分析整理项目。
在总结完项目难点之后,我们可以把它写在项目介绍里面,或者当面试官问起时,我们立马就能回答出来,并且引导整个面试朝你熟悉的方向发展。比如你可以说"项目中的难点是如何实现分布式的任务调度?",这个时候面试官可能会问你为什么?接着你就可以根据提前准备好的回答,聊一下分布式任务的细节,难点,以及你是如何解决这个问题的,这样在短短的面试时间之内,你就能掌控整个面试节奏,只要正常发挥,相信一定能让面试官刮目相看。
3. 应届生没有项目经历怎么办?
大多数同学不是没有参与过项目,而是不懂得如何包装,以为自己没有什么项目可写。对于应届生而言,可以从如下几个方面入手来提炼自己的项目经验:
- 大赛经验:很多大学生都参加过各种创新创业大赛、编程大赛,如果和其他同学组成小组,并作为重要负责人参与赛事的整个过程,无论最终是否获得奖项,都能锻炼协作能力,提高项目实战能力,这些都可以作为项目经验。
- 科研经历: 科研本身就是一个发现问题并解决问题的过程,当你协助导师参与某个科研项目,熟悉了当前的科研动态,知道现阶段有什么任务,遇到什么难题,可能有什么解决方案,科研的价值在哪里,这也是值得写的项目经验。
- 论文经历: 一些大学生有写论文的经历,无论是否已发表,撰写的过程都可以看做是一个项目。在XX背景下,你打算研究一个XX问题,通过XX分析,你得出XX结论。这篇论文的社会价值是什么,你的知识架构和知识体系是如何深入的,等等。
4. 善用STAR法则包装工作和项目经验
STAR法则具体含义是:
- Situation,背景,当时的背景情况是什么?
- Task,任务,当时的目标任务是什么?
- Action,行动,针对当时的情况,你采用了什么行动?你的角色是什么?
- Result,结果,结果怎样,你学习到了什么。
无论是介绍工作经验还是项目经验,求职者都可以合理运用STAR法则,表现出自己分析阐述问题的清晰性、条理性和逻辑性。
6. 自我描述和评价
这块不是必须的,可以根据实际情况进行增删。一般建议写一些积极的、与工作、学习相关的,例如乐观好学、沟通能力、组织能力、团队合作能力,不要写一些无关紧要的,或者自曝短处的描述,如喜欢玩游戏,脾气暴躁,爱与人较真等。
简历中的细节
避免冗长的简历
简历的不是越长显得你越厉害,一般校招一页,社招2页简历基本足够了。侧重于技术相关的描述,其他无关紧要的内容一笔带过。
不要给自己挖坑
有些人为了显得自己很厉害,把很多框架和技术往简历上堆,殊不知你简历上写的每一点,可能都是面试官会重点考察的对象,如果你写上去的内容自己刚好不太了解,但是面试官恰好是这方面的专家,那就容易让自己陷入绝境,暴露很多问题,影响最后的面试结果。
总结来讲,就是实事求是,突出自己熟悉的内容就好。
注重简历细节
简历中的一些细节,也非常值得我们注意,常言道,细节决定成败,每一个地方我们都不容忽视。
- 一定要使用 PDF 格式投递,不要使用 Word 或者其他格式投递。保证在所以设备和平台上都能轻松阅读。
- 技术术语和框架注意大小写,例如MySQL、Redis、Kafka等。
- 排版要清晰整洁,不能有错别字。后面我会分享一些常用的简历模板,大家直接套用即可。
- 在投递简历时,有时需要我们给HR邮箱发送简历,推荐采用应聘XX岗位_姓名_学校_手机号的命名格式。