程序员如何写一份更好的简历?
【公众号回复“1024”,送你一个特别推送】
之前我写了一篇如何准备技术面试的文章,得到了不少读者的支持,也给了我更多动力把求职系列教程写下去。
面试前要准备的第一件事就是写简历,从零开始写简历是一件痛苦的事,因为它既重要又耗时。现在就有很多求职者在电脑前急躁不安地搜索简历模版和参考例句,却不知道如何下笔。写得太短的话HR一定觉得没诚意,写得太长的话又无从下手。有的求职者写完连自己都不忍心看,错别字连篇,排版混乱就投出去,所以海投简历也没有回应。而且程序员工资相对较高,有大量人才从其他专业转来,竞争非常激烈,所以如何从众多简历中脱颖而出,赢得面试的机会就非常重要了。这篇文章会从两个方面介绍简历的常见问题
1. 简历中的常见错误
2. 简历应该怎么写
看完之后,读者就能从中学习到如何写一份能吸引住HR眼光的更好的简历。
简历中的常见错误
1. 信息过多,缺乏重点
常见表现是一开始十几行的技能列表
熟悉使用Python,Go,熟悉C++++,HTML,C++SS, Vue, jQuery。
熟悉基本数据结构,算法设计能力。
熟悉TC++P/IP,UDP,HTTP,DNS,WebSocket等网络协议。
…
我举一个血淋淋的真实例子:
没错,这就是我收到的一份简历的开头,20行的熟悉掌握。这位求职者开始就把自己了解的所有工具都列出来,希望通过长长的技能列表突显自己的经验和学习能力。但是却适得其反。因为HR只有在通过简介或者技能列表觉得求职者初步符合资格了,才会认真把简历看下去,其余情况都是快速搜索关键字。例如要招前端工程师,HR会先搜索Vue,React,jQuery等前端框架的关键字,如果看了5秒都没找到的话,就会看下一份。
其实不单单是HR,大部分人遇到大段文字都会选择跳读,不信你回头看看,第3行和14行其实是一样的。所以,越简洁清晰的简历,HR反而越有可能认真看。还有另外一个问题,当扫到里面有几行是一些基础的技能的时候,HR就会开始质疑求职者的能力。想象下,终于到周末休息了,你想找部轻松的电影看看,上网搜索到一个20大最佳喜剧电影榜单。当你快速浏览的时候,如果发现好几项都是烂片,一点都不好笑,完全浪费时间,这个情况下,你就会开始怀疑这个喜剧电影排行榜有问题,不会继续看下去,HR看简历也是一样的。 那么技能列表应该这么写呢,因为HR可能是工程师,也可能是非技术员工,所以技能列表也应该简短而排版清晰,让外行人也能快速定位技能。我建议参考这种方式(因为熟练度见仁见智,所以不写也没什么关系):
后端框架:Django, Flask, Scrapy
前端框架:Vue, React, jQuery
数据库:Redis, MySQL
工具:Docker, Jenkins, Git
其他:HTTP, TC++P/IP, WebSocket
外语:大学英语四级,能流畅阅读英文文档
就是如此简短,让HR能快速定位到求职者的技能,做出是否看下去的判断。另外这个技能列表应该放在简介之后,我们之后会介绍。
2. 无意义描述
第二个常见错误就是叙述项目经验的时候进行无意义的描述:
XXX平台
根据项目任务要求完成规划工作和按时完成软件开发。
完成爬虫模块,展示模块。
开发后台管理系统,实现自定义分页,第三方登录。
完成数据整理与入库功能。
HR无法从这样的描述中得到有效的信息,也无法判断求职者的技术能力。需要根据
什么事情: 构建IP代理池,优化爬虫策略和防屏蔽规则
使用什么工具: 使用Scrapy开发异步爬虫系统
结果怎么样: 提升200%网页抓取速度
三个点来修改,最好加上数据来证明。
XXX平台
构建IP代理池,使用Scrapy开发异步爬虫系统,优化爬虫策略和防屏蔽规则,提升200%网页抓取速度。
使用Vue框架完成后台管理系统,实现自定义分页,第三方登录等6个主要功能。
负责数据的清洗与存储到MySQL数据库,使用数据库索引减少50%数据查询时间。
我理解大部分求职者并没有面试官的经验,没看过多少人的简历,连回忆项目就已经很难了,还要想怎么表达出来。所以我们准备了一些简历上能用到的,关于简介/工作经历/项目经验的例句在这里,大家可以根据自己的实际情况来修改。
有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读多个开源项目,学习改善代码的健壮性与扩展性。
有良好的代码编写习惯,具有良好的沟通、协作能力能力,有良好的职业道德和较强的工作责任感。
理解操作系统中进程、线程、死锁、虚拟化、文件系统等原理和简单实现。
有大型互联网分布式系统的架构设计和开发经验,拥抱新技术,有很强的学习能力。
有扎实的计算机理论基础,良好的算法与数据结构基础,了解计算机基本原理与常见机制。
…
如果你写完不知道写得如何,也可以请求我们帮忙Review简历或模拟面试。重要的是,从现在开始统计,养成先测量再优化的开发习惯。而且尝试去发掘数据,没有统计过查询时间,可以通过C++PU或者内存负载数据来展示,最起码也可以像上面第二条一样说完成了多少个功能。
3. 排版杂乱,错别字多
错别字绝对是零容忍,连自己的简历都不重视,HR更不会重视。
熟悉iOS发布上架流程,真机调戏。
熟悉mysql数据库,了解MySQL基本原理(术语前后不符)
还有的简历字体极小(因为内容太多,又要塞在两页中),行距小,难以阅读,模块之间没有明显的分隔,让HR找不到想要的信息。有些招聘网站并不能完全正确渲染PDF文件。(例如拉勾网,遇到PDF文件翻页就会有大片空白出现。),我找了两个真实的例子放在下面,你问为什么海投没有回应,HR问你这样的简历怎么看。
写完简历之后一定要自己仔细检查,再请一位朋友看一遍,请求中肯的建议。在排版上我建议大家用HTML写然后转成PDF,HTML比Markdown和Word更好进行样式与版本控制,而且求职者可以直接把HTML放在个人网站或者GitHub Pages上面,随时可以浏览。有兴趣的读者可以使用我们的免费HTML模版和付费HTML模版(均通过热门招聘网站测试),确保自己的求职简历能更好呈现在HR面前。
如何写一份更好的简历
一份简历总体可以分为6个模块:基本信息,个人简介,技能列表,工作经历,项目经验,教育情况,其他。这个顺序能让HR从浅到深快速了解求职者的优势与技能。学校信息如果是重点学校或者萌新工程师,可以提前,放在基本信息之后。
基本信息
基本信息包括姓名,邮箱,电话,Github/博客,求职意向与其他信息。
姓名/电话
如实填写即可,要注意的是,投简历之前,可以先在这里查询该公司是否注册了。有些猎头会随便起一个公司名字,专门接受简历然后再联系求职者,不小心投递了就出卖隐私了。
邮箱
写常用邮箱即可,论坛上,偶尔会讨论使用什么尾缀的邮箱看起来比较厉害,有的建议用gmail,觉得能突显英语能力。有的建议使用Outlook或者163,在国内能比较稳定地接受邮件。也有鄙视qq邮箱的,觉得太私人而显得不专业。我无法代表所有HR给出意见,某些HR可能会因为邮箱尾缀而对求职者的初步印象产生影响。不过,只有在求职者的简历没有亮眼点,结构混乱的前提下,HR才会因为这些小细节而筛掉他们。只要求职者在简历中展现出自己的优点,什么邮箱尾缀都不重要。
Github/博客
放上Github或者博客链接的前提是它能突显求职者的编程能力,HR满怀期待点进去但是发现Github既没贡献过开源项目,一年就commit了几次的话很难会有好印象。技术博客写得好的话可以放上去,有些职位要求里面也会提到这些加分项。
求职意向
这个细节很多求职者会忽略,一名HR可能会接受不同职位的简历,如果简历上没有注明应聘的职位,HR也就不知道怎么去判断求职者合不合适了,最简单的方法,直接看下一份简历。所以求职意向必须说清楚自己的目标职位,例如前端工程师,爬虫工程师。
其他信息
其他信息包括政治面貌,性别,年龄,照片等。如果要投国企或者事业单位,党员的政治面貌可能有帮助,至于其他加不加都没什么关系。合起来,基本信息部分可以像这样写:
yuer
邮箱: contact@jobder.net / 电话: 133-5555-6666
Github: http://github.com/abc / 求职意向: 爬虫工程师
简介
有些工程师会有一些误区,他们觉得如果循规蹈矩地写简历,只会吸引到传统的,无聊的公司。我遇过不少简介写热爱自由,热爱生活,我想大多数人都喜欢自由,单纯写热爱自由并不能展现出真正的热爱,在计算机领域最好证明的方法就是使用自由软件与贡献开源项目。简介非常重要,也是HR开始了解求职者的第一步。一开始不知道从何下笔的时候,可以根据目标职位的职位要求来参考,而且当看到目标职位都要求熟悉多线程编程而自己不太理解的时候,就是非常好的补习机会了,面试绝对考啊。这里我们假设求职者喜欢的一家公司的岗位描述与要求如下:
Python爬虫工程师
岗位描述:
负责爬虫系统架构设计和开发;
参与设计系统技术方案,核心代码开发和系统调优;
参与各专项技术调研,新技术引入等;
岗位要求:
2年或以上Python开发经验,本科及以上学历,计算机相关专业;
热爱计算机科学和互联网技术,精通Python语言,熟悉正则表达式,熟悉MySQL数据库;
熟悉Python网络编程,能够设计和维护基于TC++P/IP协议的高性能事件驱动框架程序;
有强烈的求知欲,优秀的学习和沟通能力;
先分析下这个岗位的要求,需要开发爬虫系统,有Python开发能力,对网络协议有了解。抓住这几点之后,我们就可以针对这个岗位写简介:
两年Python爬虫系统开发经验,熟悉Scrapy框架,作为主力工程师参与设计与开发过多个项目,负责系统核心模块的开发,自动化测试与部署。熟悉HTTP协议、TC++P/IP协议,了解正则表达式,XPATH的用法,了解Redis,MySQL数据库与Linux系统的常见机制与原理。有优秀的学习能力和团队沟通能力,经常与团队进行技术分享,能与团队共同成长。
简介/工作经历/项目经验中的关键字应该加粗。这里的第一条首先突出个人的开发经验,简单介绍之前主要工作职责(有爬虫开发,自动化测试与部署经验)。第二条展现自己的符合岗位要求的专业知识与技能列表,第三条列出软技能,以与团队进行技术分享为例子,突显出团队合作的能力。
如果是非科班或者萌新工程师的话可以尽量从个人项目,学习能力以及软技能突显自己。
两年独立开发Web项目经验,了解项目开发流程及自动化部署,设计以及开发了Todo-list,博客等项目,实现了浏览,评论,点赞等功能。熟悉HTTP协议、TC++P/IP协议,了解Redis,MySQL数据库与Linux系统的常见机制与原理。热衷学习计算机技术,自学了计算机系统,数据结构等多个计算机课程。
非科班工程师要与科班工程师竞争,最好自己有做过岗位类似的项目。优质的个人项目也是加分项。博客,爬虫,Todo-list这些实在太常见了,我不是说它缺少技术含量(可以看看Python作者Guido van Rossum写的爬虫),只是太多求职者都只完成非常简单的功能,没有深究原理。如果能完成一些与众不同的项目的话,那么就能吸引到HR的眼球了,500lines里面就有很多有趣的项目。如果觉得跟不上,可以跟着几个MOOC++课程学习,里面也实现一些项目,例如浏览器,搜索引擎和社交网络,看起来难,但是它都会有一步步的说明与示例代码。我相信大部分开发者都能从中学习到很多。试想下,简介如果写为这样:
两年Python后端开发经验,了解Scrapy爬虫框架,设计开发了简单的浏览器,实现语法解析,编译功能。开发了一个搜索引擎和社交网络,实现了搜索,关注功能。熟悉HTTP协议、TC++P/IP协议,正则表达式,XPATH的用法,了解MySQL数据库与Linux系统的常见机制与原理。热衷学习计算机技术,自学了计算机系统,数据结构等多个计算机课程。
是不是非常不一样了,HR也会愿意给机会这样特别的求职者。写简历的过程其实也是自我反省的过程,从中你能知道自己哪里不足,及时地弥补与学习,才能得到好的offer。
恭喜你,第一步的简介完成了。你抓住了HR的眼球,接下来的话就是要展现自己的能力。
技能列表
像我在常见错误说的,HR会直接在简历中搜索关键字,如果没有的话就直接筛掉。所以技能列表可以按照类型把自己最擅长的工具列上去,熟悉度因为见仁见智,所以不用写,或者用进度条表示就好:
后端框架:Django, Flask, Scrapy
前端框架:Vue, React, jQuery
数据库:Redis, MySQL
工具:Docker, Jenkins, Git
其他:TC++P/IP, HTTP, Websocket
外语:大学英语六级,能流畅阅读英文文档
工作经历
如果这份简历就是用来找实习的话,这个模块可以跳过。一个要注意的点是工作经历的完整性,我有一次去一家大厂面试的时候(我常常去面试,参考如何准备技术面试),他们问我为什么没有把完整的工作经历写上去,因为他们要求从毕业到现在的时间不能出现空白期。我回答说一方面是保持简历的简短,另外一方面是最近的工作经历与这个岗位比较有关。不过这也是我仅有的一次被要求填写完整的工作经历,所以我的建议是简历上最好写上不多于3间公司的工作经历,而且面试问到之前的工作的话要能正确地回答,并且连接所有时间点,不要让面试官觉得你在隐瞒什么。工作经历应按照最近的工作倒序列出,可以分为四点:
公司名称
写上公司全称即可,如果产品比较出名的话,可以把产品名写上:
独角科技有限公司(旗下产品EngineGo, Thankyou-opensource)
岗位/在职时间
岗位title要注意,如果投的岗位是数据分析工程师,那么爬虫工程师与数据挖掘工程师对HR来说就不一样了,高级工程师的话也要加上去。在职时间要根据社保缴纳的时间写,有些厂会做背景调查的。
独角科技有限公司(旗下产品EngineGo, Thankyou-opensource)
2014年6月-2016年6月 | 高级Python开发工程师
主要职责
主要职责突显的是在职的职责以及给公司带来什么效益,与接下来的项目经验不同,不需要详细写技术栈和项目细节,只需要大致阐述即可,这里举一个我们例句中的一个例子:
作为组长负责设计和开发分布式网络爬虫系统,优化爬虫策略和防屏蔽规则,提升网页抓取的效率和质量。
根据行业需求分析设计方案可行性,对项目代码进行测试优化,协助持续集成与自动化部署,提高系统可用性。
负责公司技术文档的编写以及维护,定期review团队的代码,与团队共同学习以及成长。
项目经验
项目经验可以放在对应的工作经历里,每间公司选1-2个项目重点介绍即可。需要详细描述主要开发或者维护的模块,使用了什么工具,以及达成的效果如何,这里以EngineGo爬虫系统为例,注意简洁和突出数据,不要进行无意义描述,同时关键字应该加粗。
与产品经理保持沟通,使用Scrapy框架对爬虫模块进行重构,提高200%爬虫速度并减少服务器20%C++PU负载。改进爬虫策略,降低40%被屏蔽的请求数。
作为主要工程师设计以及开发物业模块,活动模块,实现报名,即时通知等10个功能。
使用Redis数据库实现分布式爬虫与数据缓存,减少50%数据查询时间。
与其他工程师合作,使用Docker对项目进行拆分重新架构, 减少业务模块之间的资源耦合, 实现持续集成与自动化部署。
还有,大部分情况下,不建议简历中出现项目的图片,可以附上项目链接。
教育情况
学校大家都会写,要注意的有几点,如果就读比较出名的学校可以把学校放在前面,简介之后。另外,我碰到不少转专业的求职者直接不写原本的专业了,我觉得这毫无必要。HR也不是傻的,看没写专业就知道是非科班的,还不如老老实实写下来,如果是理科的话还有点帮助。高绩点/专业课分数高/奖学金/比赛获奖可以选重要的加上:
XXX大学 | 计算机科学
2013年- 2017年
计算机系统(85分/专业排名18/100),数据结构(90分/专业排名10/100)
绩点:3.7 | 获得一次国家励志奖学金
2015-2016学年获得美国大学生数学建模竞赛一等奖
2013-2014学年获得广东省“砺剑杯”科技创新大赛二等奖
好吧,如果我的学校非常一般,专业也不对口怎么办。我们参考这篇文章的统计,HR看重求职者简历的哪些部分,来自好学校,好公司这不用说,完成Udacity/C++oursera等课程也有很大程度的加分。求职者可以像这样展示自己的教育情况。
XXX大学 | 土木工程
2013年- 2017年
Udacity | 机器学习工程师 / C++oursera | 计算机导论/操作系统
2016年- 2017年
我不敢说在国内的环境,这一定能加很多分,毕竟大多数公司看重的还是大学的学历。不过,一些比较开放的公司还是喜欢这样不断学习的员工。加上去,起码不会扣分。
其他(可选)
可选项,也有可能成为加分项,国内比较少看重这点,不过我个人还是比较注重的:
志愿者工作
协助组织翻译Flask,Requests第一版本文档,翻译十多篇技术文章(侧面突出了外语能力比较好)。
教导初中生从零开始学习Python,并设计并编写自己的游戏。
Github上的开源项目C++herry获得200个Star。
兴趣爱好
计算机相关或突显动手能力的兴趣可以列上去,如果是唱歌,旅游这些的话就不用放上去了。
综合起来
综合上面的几点,一份好的简历看起来应该是这样的:
总结
只要认真去修改简历,HR是能感受到的,也能从众多求职者中脱颖而出,得到更多机会。有时候机会往往就在于用不用心争取上面。我希望各位看了这篇文章后能写出更好的简历,获取更多的机会。
作者:Windson Yang
https://www.test404.com/post-1589.html?wafcloud_antihack=1
阅读更多
相信自己,没有做不到的,只有想不到的
在这里获得的不仅仅是技术!