程序员简历怎么写?

异步社区官方博客

本章我们来说说有关简历的那些事儿。

我对简历可以说是爱恨交织。简历对于获得称心如意的工作至关重要,但似乎又是浪费时间。

似乎从来就没有人郑重其事地认真阅读简历,一般都是走马观花看一眼,然后在一瞬间就对你形成了几乎是根深蒂固的看法。这就是简历非常重要而又百无一用的原因。但每一位软件开发者都应该拥有一份光鲜的简历,这样的简历可以让面试不至于像想的那么糟。

但是,我发现大多数软件开发者的简历……怎么说呢?一塌糊涂!对,正在阅读本章的你,你的简历可能就属于一塌糊涂的那种。

我这么说可不是侮辱你。我说的只是事实。你可能擅长编写代码,但对怎样撰写简历的确一窍不通。

必须要强调一点:简历其实就是广告,除此之外一无是处。因此,你必须要把简历看作是一页纸的广告。事实上,如果想要一份优秀的甚至是卓越的简历,你就必须这样看待简历。

一个简单的事实是:在你求职的过程中,大多数情况下,人们只会对你的简历一扫而过,前后也就是15秒的时间。15秒,你的职业生涯轨迹就此发生转折:是给你面试机会,还是直接拒绝;是放到文件柜的顶端,还是扔进废纸堆里。

因此,无论你喜不喜欢,一份优秀的简历就是如此重要。

在本章中,我将帮你创建一份卓越的简历。

不要自己写简历

我一点儿开玩笑的意思都没有。真的,别自己写简历。

我也对这个观点颇有腹诽。但是,我还是要说,除非你是一个专业的简历写手,或者是文案撰稿人,否则你不应该自己写简历。是的,我知道这听起来太过不可思议。

你担心自己变成一个骗子。

相信我,我做这一行已经很长时间了,所有这些借口我也听得耳朵起了茧子。

在《软技能:代码之外的生存指南》一书中,专门有一章是论述如何准备简历的。在那一章我给出的建议和现在在这里给出的建议一模一样:不要自己写简历。

很多人告诉我说:“我喜欢你写的《软技能:代码之外的生存指南》,但是关于如何准备简历那部分,我实在不能苟同。”相信我,我理解这一反对意见。但现实却是:如果软件开发者持有一份由一位优秀的专业简历写手撰写出来的专业简历,那么他可以获得更多的工作机会和更高的薪水。

我亲眼见过,也有无数的程序员听从我的这项建议,告诉我情势果然有了很大的不同,对我来说,这才是有意义的。原因如下:写简历是一门艺术;写作,尤其是有说服力的写作,是一项技能。

就像我之前说过的,简历基本上就是关于你自己的一页纸广告。这与杂志上那些试图向你推销最新的精巧的小玩意儿、小工具或者美容产品的广告,其实并没有什么分别。

身为一名程序员,我不认为你有专业的写作简历的技能。

当我想装修房间的时候,我会请人来做。这并不是因为我不能铺地板或者无法搞清楚如何给浴室铺瓷砖,而是因为,尽管我可能也可以完成这项工作,但我知道,以前做过1000次这种工作的人,工作成果比我这个第一次做这件事的人要好得多。(好吧,我承认,其实还因为我很讨厌做这类事情。)

花钱请人铺瓷砖,4小时就可以完成,我自己动手去做要20小时,这不仅不划算,而且铺瓷砖也不是我擅长的技巧。其实不擅长铺瓷砖,我也不在意的。

想想你工作的职场。你公司的CEO可能知道如何创建一个网页,可能也会编写JavaScript程序、编写产品的程序,但他并没有去做这些事。为什么呢?因为他有你,因为你是专业人士。他知道,他最好把时间花在其他重要的事情上,比如假装工作和打高尔夫球,而不是编程。

自己动手写简历和公司的CEO自己动手写代码一样愚蠢。诚然,自己可以去给自己写简历。如果付出大量的努力,也可以拿得出一份优秀的简历。但为什么不聘请专业人士来做这件事呢?

因此,你听或者不听,我对你的建议都是:聘请一位专业的简历写手,但是你要对聘请的人选格外留意。任意一位老派的简历写手都不会给你带来任何好结果。

挑选简历写手

挑选一位优秀的简历写手至关重要。

如果你请来的是一位蹩脚的简历写手,他写出来的简历还不如你自己写的,那么上面我所说的一切都是浮云。

我深切怀疑,很多人之所以反对聘请专业人士来写简历,要么是因为与不专业的简历写手有过不愉快的经历,要么是他遇到的都是一些文科专业毕业的、找不到其他工作而又认为帮人写作简历看起来很有趣的人。所以,你应该对如何挑选一位优秀的简历写手了如指掌,这很重要,不是吗?

在寻找专业的简历写手时,你首先要试试看有没有人向你举荐,看看你认识的人中,是否有人用过专业的简历写手,并且效果还不错。你应该挑选一位专门为软件开发者撰写简历的写手,或者专业从事技术简历写作的人士。

最糟糕的事情莫过于你找了一位不懂技术的简历写手写下这样的句子:“通过将SQL应用于多态编程代码,我独自完成了该项目的C++编程工作。”我一看到这样的简历就会“砰”地一声扔进废纸篓,因为它令你看起来像个白痴。

聘请简历写手之前,要索取他们作品的样例。他们应该能够提供给你他们为客户撰写的真实简历,上面写着假名;如果得到允许,他们甚至可以提供实名简历。一定要确保你拿到的是为软件开发者撰写的简历实际样例,这样你就可以看出他们是否真的能为程序员撰写一份优秀的简历。通过审阅他们的作品,你会对你将要得到的简历有一个很好的了解。如果不给你提供样例,那你就不要雇用这个人。

在这里我也不想多谈有关价格的问题。质量应该是你最关心的问题。

一般情况下,请人代写简历需要支付300~500美元。不过,我认为,价格再高一点也不是不可接受。应该把这笔钱视为一项投资。拥有一份优秀的简历,可以很容易地让你的起薪提高10%,甚至更高。拥有一份优秀的简历,可以把你求职的时间从6个月缩短到几个星期。

假设原本你每年的薪水是8万美元,现在一份优秀的简历能让你找到一份年薪8.8万美元的工作,那么500美元的投资看起来就不那么昂贵了,对吗?

我通常都对推荐简历写作服务犹豫不决,但是Simple Programmer网站上有一个我经常向人推荐的在线服务。

与简历写手协同工作

只是请到一名优秀的简历写手还不够。简历写手只有在输入良好的情况下才能创造出良好的输出。输入部分是否良好取决于你。你要确保为简历写手准备好了以下信息:

把所有这些信息准备妥当也是一项艰巨的任务。

你可能会想,“好吧,如果无论如何我都要自己完成这么多工作,那么雇一个人为我写简历又有什么意义呢?”

聘请一个人来为你撰写简历,并不是为了做大量的内容收集工作,而是要请他以一种短小精悍的、简洁明快而又引人注目的方式呈现出这些内容,这样才能令你脱颖而出。这才是你付钱给简历写手的原因。

你给简历写手提供的信息越翔实,他们写出的简历才能越优秀。你可能还想让你请来的简历写手撰写出一系列适合不同职位的简历,或者是以不同方式呈现的版本,让他完成一封求职信样本,这样当你申请特定的工作时,你可以基于样本做出更改。

这些做法可以让你在申请不同种类的职位时,能够根据不同需求使用高度定制的求职信,而且一个个都制作精美。

最后一条建议:如果你对简历写手的工作成果不满意,不要出于礼貌而忍着不说,一定要直面相告!他的工作牵扯到你的未来和你的职业生涯,如果你想要结果圆满,你必须严格要求。

如果你发现直面相告还是起不到效果,那就毫不犹豫地炒了这个简历写手,重新找一个。

一份优质简历的构成要素

不管你是请简历写手,还是自己动手写简历(真心建议你不要这么做),你应该清楚什么样的简历才是优质的简历。

在给数千名开发者做了生活的指导之后,我已经对人类的心理学有了很好的理解,所以听好了(尽管下面这句话听起来有些惊悚)。写好简历的最重要的事情之一就是——看起来很漂亮。是的,简历一定要看起来很不错。

“什么?这不是虚荣吗?这不是背叛吗?”人们真的仅仅根据外表来判断一个人的职业生涯、一个程序员的价值,甚至一个人的价值吗?难道不应该是根据灵魂来判断吗?是的,只看外表。因此,简历一定要炫,面试一定要穿西装打领带。我可不是在开玩笑,人们判断一本书是否值得一读也是只看封面。

我强烈建议找一位专业人士来撰写你的简历,其中一个原因就是:他们不仅可以让简历看起来很棒,而且还会让简历看上去很炫。老实说,外观是一份简历最重要的事情,因为如果你的简历看起来像垃圾,它一定会被丢在一旁根本没人看。

好了,现在谈一些不那么肤浅的事情。

除光鲜的外表之外,简历还需要能够迅速有效地传递你的全部情况,以及你能给未来雇主带来的怎样价值。

“我觉得一份简历一开始让人看到的东西应该是最客观的实际状况。”这完全是胡说八道。没人在乎你想要什么。没有人关心你希望找到怎样一份工作,没有人关心你的诉求是希望服务于医疗技术领域的一个有效率的团队,然后充分发挥你的技能——C#、ASP、.NET和MVC架构,他们真正关心的是你能提供什么价值,以及你是多么抢手。

简历的目的是为你做一个一页纸的广告,更具体地说,就是给你这位超级受欢迎的、传奇史诗般的软件开发者做一个广告。因此,你的简历应该简洁明了、切中要害、专业高效,突出描述你在职业生涯中所取得的最辉煌的成就。

想做到这一点,有很多种方法。你可以用一种传统的简历格式,如按照时间顺序、分不同职能等;你也可以用更前卫的形式来做;你甚至可以通过视频演示来做到这一点,在视频中,你可以介绍自己,谈论自己的“伟大成就”。(顺便说一句,除了要有一份文字版你简历,我建议你还要录制一份视频简历。这种方式能够很好地展示你的个性,并带来一些额外的好处,例如对你进入面试阶段有很大帮助。)

简历是否优秀并不取决于你能在一页纸上塞下多少内容。恰恰相反,你说得越少,证明你的影响力越大,有人真正会去阅读简历内容的可能性也越大。

因此,你要清楚明晰地描述你的技能和专长是什么,在过去你又是如何运用它们取得了伟大的成就,以及你会如何将这些技能移植到你所申请的职位上。

每一份优秀的简历莫不如此。

自己动手写简历

我真的不建议你自己动手写简历。但是,如果你一定要坚持自己写,那我还是给你一些建议吧。

下面是在当今的职场环境里,作为软件开发者给自己撰写简历时需要考虑的一些最重要的事情。

从领英开始

不管你喜不喜欢,至少在写这本书的时候,领英(LinkedIn)已然成为事实上的求职网站的标准和简历样式的标准。

你需要在领英上创建一份简历,然后满怀期待有位潜在的雇主会看到它,所以准备简历最好从领英开始。在领英上按照标准模板以填空的方式做一份简历。但是,创建一份常规的纸质简历要注意的事项同样适用于领英上的电子版简历。

不要心不在焉、急急忙忙地就填上自己的信息,并且认为这么做无大所谓。此外,不要在领英上伪造日期或信息。我可以向你保证,如果你的纸质简历和领英的个人资料有很大出入,你会被打电话追问。如果必须要解释一下你在领英的个人资料中并没有撒谎,那只是一个理解错误或者文字上的错误,这可无法说服对方给予你面试的机会。

因此,一定要让你在领英上的个人资料完整无误,切实反映真相,也不要忘了征求曾经与你共事过的同事的推荐。这些做法会让你脱颖而出。

以“你能提供的价值”为核心

你在简历上写的每一件事,都应该从 “你能提供的价值”的角度来考虑,而不是“你想要的”。

简历不是“圣诞礼物清单”,不是你在工作中想要得到什么的一份清单。简历也不是一个奖杯柜子,你疯狂自恋自己有多么优秀,而且还喋喋不休地吹嘘自己。相反,简历应该展示的是你能为未来的雇主提供的价值。你目前具备的技能和你过去做出的业绩无非是你能提供的价值的基础。

对于要申请的每一份工作,你都要定制简历,以此彰显你可以为此次申请的职位带来的独特价值。

你做过什么,如何做的,成果如何

我不会进入细节的描述中,因为我不是一个专业的简历写手,而且你可以在网上搜索到很多其他资源,告诉你简历的格式以及具体布局的方式。不过,我确实想谈一谈在撰写工作经历时的一个细节,我觉得这个细节至关重要。

这样的描述不可取:“使用Java和Spring框架来帮助开发一个应用程序,用于创建猫形标识。”应该采用下面的格式描述,而且一定要有针对性:

例如,可以这样描述:“利用Java和Spring框架设计并编写过一种独特的、创新的猫变形算法,改善了创建猫形标志的应用程序的性能与适应性,提高了500%以上。”

如果是一位优秀的简历写手,那行文会更紧凑,使之更加聚焦:“提出了一种基于旅行推销员问题的猫变形算法。重构猫变形模块以实现新算法,使用Java Spring框架来提高可维护性。性能提高了508%,修复bug的时间减少了34%。”

事实上,最后这个版本是我的朋友Josh Earl、一位专业的简历写手撰写的。正如他所说:“研究一下评估一位招聘经理绩效有哪些衡量标准,然后你的简历里就应该充分表明你会让他的工作看起来绩效良好。”

这就是为什么我从一开始就建议你请一位专业的简历写手的原因。

向John提问:我该怎么说呢……我可以在简历上胡诌吗? 

千万不要,除非你想要在面试中被一脚踢走。

面试中最让人尴尬的事情之一就是,当面试官问你:“嗯,我在你的简历上看到你是C++方面的专家。你能用C++写一个简单的程序比如‘Hello world’吗?”你满怀忐忑地走到白板前,拿起一个记号笔做几个涂鸦,然后悻悻然把它放回去,说:“不,我不能。”

那就太糟糕了,那可真是狼狈不堪!

别误会我。这并不意味着你不能把正在学习的编程语言或者你已经掌握的技能放进简历里,直接把它们写出来就行了。但不要撒谎。

要确保你罗列在简历里的所有内容滴水不漏。

简短

在我的软件开发生涯中,我创建的第一份简历是一篇长达6页的“怪物”。

我详细列出了我做过的每一份工作、我在每一份工作中使用过的每一项技术、我获得的每一张证书,以及过去两年里我的早餐都吃了些什么。哈,早餐这一句当然是开玩笑啦,但我想你已经明白重点了:一份长达6页的简历是不会有人看的。即使你把这份简历寄给你妈妈,她也只是假装看了而已。

优秀的简历,就像一份优秀的广告,应该尽可能短小精悍,这样才会有人问津。当然,在求职的过程里,短小精悍才有面试机会。因此,大多数情况下,你的简历应该只有一页。这也意味着你必须要让你的简历简洁明了、切中要害。

听起来似乎有些不合情理,但相信我,短篇幅的简历才是好简历。你也期望当有人拿起你的简历时,能够迅速扫描之后就得到一个非常强烈的感觉:你是什么样的软件开发者、拥有怎样的相关经验和技能。

在简历上列出你拥有每一项技术和技能是非常诱人的想法,尤其当你是一位经验丰富、技能满满的软件研发人员的时候,但你必须要克制住这种冲动。

例如,假设你现在正在申请一个使用C#语言、ASP.NET MVC框架的Web开发者岗位。如果让你罗列自己所掌握的所有编程语言,你大概会列出一长串清单。

编程语言:C、C++、Java、C#、Luo、Python、Perl、JavaScript、Visual Basic、Go、Dart、Objective C、Cobol、Swift。

这样看起来好吗?当然不好。即使你对上述所有编程语言都有所了解,你也不会精通每一门语言,而且大部分语言都跟你申请的职位毫无关联。

真正有用的信号很可能会湮没在噪声中。更有甚者,你还会给人留下这样的印象:你是个骗子,你的简历上塞满了关键字;你是个无所不会但是又无所精通的“万金油”,而不是C#与ASP.NET MVC方面的专家。

如果这一段这样修改一下,会好得多。

相关技能:C#,JavaScript,ASP.NET MVC

看上去好像不那么令人印象深刻,但是针对性更强。

在面试中,你还是有机会讲一讲你已经掌握的其他50种编程语言的。你也可以在简历上列出一些其他的工作内容,突出体现你过去使用过的几种语言或技术,但你应该让简历更具体、更有针对性。

你可以这样类比这个问题:假设你遇到了严重的税务问题,政府发出了一份传票,调查你的逃税问题。这时你需要聘请一位律师代表你出庭。你是愿意聘请一位专长是“离婚法,税法,海洋哺乳动物保护法,刑法,房地产法,以及代理过Cow Tipping游戏[5]的法律事务”的律师,还是愿意聘请一位专长是“税法、公司法”的律师呢?

前面这位律师的履历看起来可能会令人印象深刻,但是你会信任谁?你会请谁来代表你出庭呢?我知道我会选哪一个:简短有力、切中要害、一语中的的那一个。

你不必列出每一份工作和每一项技能。你甚至只需在简历上写上“相关技能”或“相关经验”即可。

校对

这一点的重要性本应该是不言而喻的。但是,我已经看到过太多太多份简历中包含大量的拼写错误,所以不得不特别在这里提一提这一条。

你应该至少从头到尾、仔仔细细校对你的简历5次,然后你还应该请两个人再校对一下你的简历。

简历上如果有录入错误、语法错误或者拼写错误,就是挑明了在说:我是个白痴,我很粗心,不注重细节。”例如,程序员的拼写是“programmer”而不是“porgrammer”。如果你的简历上有拼写错误或录入错误,有些雇主会把你的简历直接扔进垃圾桶,其他内容看都不看。

听起来可能有些太过苛刻了,但是如果某人对细节缺乏关注、粗枝大叶,你会想请他来做任何重要的工作吗?如果你的律师却连“律师”(lawyer)一词都拼错了,你还会请他出庭代理你的税务官司吗?

多版本

前面讲如何申请职位的时候我已经讲过了,你应该请简历写手为你的简历创建多个版本。这里我们再强调一下,以加深你的印象。

你的简历应该是在一个基础版本上衍生出来的一系列版本,这样你在申请不同职位的时候可以使用不同版本。

大多数软件开发者,特别是刚入行的软件开发者,都愿意在从事不同类型工作的时候使用不同的技术。如果是你,你也应该针对不同类型的工作,创建专门的基础版本的简历,以突出你在不同工作岗位用到的不同的专业技能与技术。

在申请每一份工作的时候,你还要根据岗位类型在不同的基础版本上定制不同版本的简历。拥有几种基础版本的简历可以帮你节省时间,并且在求职方式上保持一致。

卓尔不群

最后,我们将通过讨论一个经常被忽视的有关简历的问题来结束本章:独特性。

简历的作用就是令你脱颖而出。当你申请一个岗位的时候,同时可能还有100名其他软件开发者也在申请这一岗位,所以你一定要找到一些可以令你尽可能显得卓尔不群、独一无二的方法。

这并不意味着你必须做一些狂悖的事情,但是做一些稍微不合常规的事情,或者做一些能让你的简历在某种程度上脱颖而出的事情,都是好主意。如果你想让那些看你简历的人记住你,那就该让自己看起来独特和特别。做到这一点的一个好方法就是在简历的格式上有所创意。

在我的职业生涯中,我曾经在简历上的“技能”部分用了一个小技巧:我用从1到5五颗星来标明我在某一种技术或语言上的技能有多高。从那以后,我看到很多开发者都使用了这种策略。但是我在这么做的时候,它是一个相当独特的样式,我收到了大量来自招聘人员和面试官的评论,他们都记得我就是那个对自己的技能进行5颗星评级的人。

有些雇主或面试官欣赏独一无二的特质,而另一些人则憎恨标新立异,所以“独特性”也是一把双刃剑。但是,我宁愿在少量几个地方因为卓尔不群而被无情拒绝,也不愿意因为泯然众人而到处被人遗忘。

这个观点被称作极化,如果使用得当,它的作用不同凡响。

我经常教导软件开发者,一定要给他们的简历做一个短视频版本,或者至少包含一个简短的视频介绍,这就是一种与众不同的方式。

不要害怕有创造力。正像我说的,虽然有些人会不喜欢,但是大多数人还是会喜欢的。你会从他们的心底里脱颖而出。不过,有一点要注意:不要让你的创造力影响到简历的可读性,让人感到难以交流

如果每个人都开始在他们的网站上放上Flash入门页面,看起来会怎样?

如果你没有在网页上放Flash,其实也没有什么关系。但是在这个科技时代里,每个人都认为Flash动画会让网站看起来很酷炫,还会强化导航功能。不管怎样,虽然这是一个很有创意的主意,但却是一个坏主意,因为这种设计大大削弱了人们对网页内容的关注度,还降低了网站的易用性。

因此,要富有创造力,要独一无二,但是要把这种创造力用来突出你在简历中要重点传递的信息,而不是分散人们的注意力。


[5] Cow Tipping是一款运行在iPhone/iPad上的小游戏。——译者注

本文摘自《软技能2 软件开发者职业生涯指南》

这是一本为软件开发者量身定做的职业发展指南,处于任何发展阶段的软件开发者,都将从本书中获益。如果你是软件开发/编程的初学者或者只是对软件开发感兴趣的人士,可以通过本书了解如何开启软件开发的职业之旅,如何获得第一份工作;如果你是中级软件开发者,可以通过本书发现自己的知识短板,学会如何进一步拓展和掌握新的技术技能,如何学习新的编程语言,如何提升技术水平,如何在自己梦想的编程工作中深耕细作;如果你是身经百战的专业软件开发者,可以通过本书了解如何拓展和推进自己的职业生涯,如何更好地与同事和老板相处,如何推销自己的想法,如何做好向上管理,如何升职加薪。

资深软件开发者兼软件开发者的人生导师约翰·森梅兹在本书中针对职场上的各项重要的“软技能”,为软件开发者提供专业的职业发展指导,让软件开发者的职业生涯更加精彩和辉煌。

本书与《软技能:代码之外的生存指南》既相得益彰,又各有侧重——《软技能:代码之外的生存指南》全方位论述软件开发者生活和工作中需要关注的各种“软技能”,而本书则从软件开发者职业生涯的时空关系出发,描述软件开发者职业发展整个历程中应具备的各种“软技能”。