修改了几百份简历之后,有了一些新的想法,所以今天(2019.2.8)把之前写的文章更新一下~还是按照简历的基本格式逐个提一下好了。
Objective
通常我个人是只写申请的position title的,会根据不同公司的不同职位进行修改。不过大部分网申系统都会记录你申请的职位,所以如果简历篇幅不够可以去掉这个section。至于一些额外信息,比如什么时候毕业愿不愿意reloation什么的最好不要写,等拿到offer再去和HR谈。万一因为公司招人比较急你又不能及时毕业怎么办?这是需要和HR面谈的东西,不要在白纸黑字的地方给自己和别人加限制。
篇幅:1 line
Education
Education要注意写清楚学位,专业,学校。觉得自己gpa足够好或者rank够高就写上,反之就别写。如果你拿到面试比较多,你就会知道大概没什么人会对你的gpa或者rank提问。如果你拿到面试比较少,那通常也不是因为gpa。Education可以在格式上写紧凑一点给Project多留点空间。
篇幅:2 lines,本科和硕士各一行
Technical Skills
这个Section的作用是用来总结关键词的。通常面试官第一次看你的简历,不会超过一分钟,面试官对你简历的第一印象就主要来自对关键词的快速浏览。对大公司来说,面试既是工程师工作的一部分,但又不是最关键的KPI,所以你也不能指望面试官本身能对你的简历多么认真负责。
篇幅:4~5 lines,每行写满
什么是关键词Keywords
关键词可以是language,framework,plugin,database,algorithm, tool等等。既然简历的目的是证明自己的编程能力,那越是需要二次开发的framework也就越重要,比如Java的Spring,Python的TensorFlow这种。有些tool或者database只需要配置一下就能简单使用,这样的keywords就相对弱一些。很多没有太多工作经验的同学对关键词的理解仍然停留在语言层面上,这是远远不够的。想象一下你的简历里写的是会Java,别人写的是会Hibernate和hadoop;你的简历里写会javascript,别人写的是会ReactJS和AnguluarJS;你的简历里写会SQL,别人写的是会PostgreSQL和MongoDB。这两相对比一下你的简历就机会渺茫了。
Skill中关键词的格式和数量
个人的建议是,Skills这个section就分成几个bullets,比如languages,frameworks,tools等;frameworks可以2行写满,其他bullet要一行写满。其中最重要的部分是frameworks,那针对Java,Python,和JavaScript,每种语言都应该提供3种以上的framework,并在project中有所体现。没有必要写任何形容词性的程度描述,比如“good with XXX”, "familiar with XXX", "efficient with XXX"等等,因为面试官不会也无法根据你的形容词做量化判断。
framework以及其他keywords不够怎么办
简单来说就只有一个办法,就是去学。要么就主动去学新的技能,提高自己拿到面试的几率;要么就被动等着好运气降临到自己身上。前者成本高但是收获总是有的;后者代价更大,当你意识到不太妙的时候已经很晚了。
Professional/Work Experience
这个section主要写实习或者之前的工作经验。改了很多简历之后,发现其实很多同学并不能很好的去表达自己参与工作的价值。如果你参与核心产品研发,那你就应该突出产品的规模,核心技术,突出自己的实际产品开发经验。有见过一个女生的简历,她参与了百度某个deep learning产品的开发,轻松去了facebook。如果实习偏打杂一些,那就要在简历好好包装自己的Project,突出动手能力。这里最常见的错误是强调了自己参与的project什么背景怎么操作,却完全不提技术实现。面试官并不关心你之前的系统怎么操作:面试官关心的是你之前的开发经验和动手能力能不能快速的迁移到新的position来。还有人在Professional Experience写和development无关的经历,想要强调自己的leadership或者communication skill。但是说实话,如果你找的工作如果是入门级别的developer,没人在乎你的leadership。同样面试本身就会体现communication skill, 如果你连面试都进不去,别人也不在乎你简历里写的communication skill。另外,TA的经验,个人觉得对找工作没什么实质性的影响。看到有同学因为实在没有工作经验就写TA经验,个人感觉意义不大,有这个空间还不如多写一个Project更实际一点。
Projects
Projects在简历中占据最大的篇幅,是仅次于Work Experience的最重要的部分;如果你没有实习经验,那就是全简历中最重要的部分了。这个部分不只决定了你能否进入面试,也在相当程度上决定了面试中面试官会问什么样的问题。只要你清楚的知道你的简历里的卖点是哪些,那你就能把握面试问题的范围,回答上也就更得心应手。
描述Projects时候最常见的错误,有这么几个。
详细解释了project流程和操作,而忽略了技术实现。看到很多简历在写project的时候,都是在详细解释这个project是在哪个教授手下完成的,这个功能是什么,怎么操作,用户的能力是什么。比如我做了个电商网站,这个网站用户能登录,登录之后用户能买东西,买了东西后台还能看到。这并不是面试官希望看到的内容,面试官不需要你给他解释什么叫做电商网站和电商网站应该有哪些功能。面试官希望看到的是,你用了什么framework开发了那些feature,用哪些插件完成了哪些功能。比如用Django搭建了MVC,用MongoDB做数据库,就用FB/TW的api实现了用户登录。通过折现实现细节别人才能判断你的开发经验。
技术实现只写基础编程语言和IDE。开发语言仅仅是最基础的东西,不但只是大一大二的课程,而且Java也好Python也好会的人都了去了,面试官凭什么只给你offer不给别人offer。这里更能代表你开发能力的一定是那些framework。
重复的技术栈和Project类型。技术栈一模一样的Web Service在简历上写10个和写1个没有区别没有区别,重复的东西越多说明你会的东西越少;同样的东西重复10遍也不能说明你是专家,因为没解决过任何新问题。这里一个补救办法是,在不同的Project中使用不同的database和framework。比如一个project用MySQL,另一个就最好用MongoDB。Project类型也类似,有少数几个Web Service project也还说的过去;如果所有Project都是Web Service,那面试官会觉得你除了Web其他什么也不会。补救办法是,你要在不同的project里想清楚侧重点到底是什么,比如big data还是machine learning,然后根据不同的侧重点准备不同的project。
强调和解释简单技术。简历的目的是为了证明自己的编程能力,如果你强调简单技术,那就说经复杂的你不会。这里要明确一点,你写简历并不是为了通俗易懂,越通俗易懂的简历越让人感觉挫。你写简历的目的为了给专业的人展示你的专业能力,你要相信你写的技术90%以上面试官都比你深入了解的多。所以不要去强调你会HTML和CSS,不要去解释MySQL是关系型数据库。
上面提到了Project里的常见错误,那避开了这些常见错误,我的project就太过简单了怎么办?这里要想清楚两件事:首先简历怎么对自己有利怎么写。其次,面试官在乎的是你会什么,不是事实是什么。所以你的project是需要好好设计的,你要通过简历里的Project展示给面试官你的知识背景和编程能力。当初的Project做成什么样并不重要,重要的是你会什么技术,这些技术怎么展示在简历中。
Coursework
通常我会把coursework放在简历最后,并且根据不同的position要求调整课程。比如如果是data scientist的职位就要强调machine learning和data mining相关的课程,如果是system developer就强调下数据库或者操作系统。一般面试官没有什么闲心问你上过什么课程,一遍面试官也不在乎你的GPA。这就是为什么GPA再高都不如刷10遍leetcode有用。
Publications
对phd来说publications相当重要,但是本文主要针对的是找工作的master。publications也许可以锦上添花,但是前提是要把工程能力这个“锦”的部分做好,否在光有“花”没用。在美国找工作的话,的publication就不用写了;如果你不是作者之一,也就不用写了,也不用引用别的论文。英文的publication如果有就按照通常论文的reference格式写清楚。
其他
关于篇幅
如果简历一页写不满或者空白很多,至少我作为面试官会就得感观很差,我的潜意识里会觉得一看就缺少动手能力。如果Project比较多,那就尽可能写的简练一些,选择最有技术含量的部分,放弃掉一些简单的实现细节。如果已经足够简练,千万不要因为篇幅砍project,超过一页也没什么大不了的。总能看到有人说简历不能超过一页,否则HR根本不看什么的。即使真的有这种现象,这种垃圾公司也不建议你去。
关于framework和刷题
大部分学校课程只教基础原理,不教framework。如果你认为靠学校教的基础原理找工作就够了,那可能这就是你拿不到面试的原因。也看到有人刷题无数但拿不到面试。原因也很简单,刷题没有办法写进简历;简历过不去刷题再多也没有意义。
关于Summary
不少简历中可以看到一个Summary section,大意就是“I am a team player with strong coding experience and good communication skills”。楼主自己的简历不写summary,同时也不推荐在简历里这样写。理由其实在上中已经说明过了。首先你的experience是不是strong不是你自己说了算的,面试官会根据你的Project做出判断并和其他candidate做出比较。不然每个人都会说自己strong experience。其次,像leadership,communication,team player这种所谓soft skills,面试官判断的依据也不是来自于简历而是来自于面试。如果简历里的hard skills过不了关没有面试,所有soft skills就都是空谈。进入面试之后,只要是情商智商正常的candidate,即使拿不到offer通常也不会是因为soft skill。
一些简历格式问题
最近看到了一些模板诡异的简历,阅读和修改起来都很头疼,尤其是那种三七开排版的。比如左边30%写Education,skills,和一些别的;右边70写project和experience。不仔细看的话排版挺美观的,但是实际上个人感觉这种排版需要上下来回阅读,很容易distraction非常难以抓住细节,尤其是当你写的紧凑的时候。还有人会在简历里加黑加粗一些关键词,初衷可以理解,但是个人也不推荐。原因是潜意识里我会只关注加黑加粗的部分,自动忽略其他。如果我看到你加黑加粗的是Bootstrap或者jQuery这种,印象就更差了。另外一个感觉是之所以要加黑加粗,往往是以为其他部分废话太多。
面试被问住怎么办
总有人会问简历写了那么多技术,面试万一被问住怎么办。这里需要明确的事情是,简历写多写少和面试会不会被问住一毛钱关系也没有。无论你怎么写的简历,面试官都有1万多种方法问住你。通常面试官不会也懒得把场面搞得特别尴尬,面试官看出你不会的时候往往就懒得追问了。而且你面试经验不多的话,搞砸面试是很正常的事情。你需要做的是总结经验教训,防止下次面试出现同样的问题。