程序员的简历如何写

程序员的简历如何写

没工作的日子每晚都睡不着,焦虑恐惧害怕,半夜没人刷抖音都没放松的环境了

现状,非学生,找普通工作不是fancy job,毕业后没写过简历不知道该怎么搞

为什么简历那么重要

很多北美CS求职者可能想不到现在竞争是有多么激烈。一个职位往往有几十个甚至上百个candidate来竞争。那些提供H1B签证,将来会sponsor绿卡的岗位就更是炙手可热了。想在这样的激烈竞争下,拿到Offer,你的简历必须要能经得起多方面的检验

  • HR:不管什么职位,面试的第一步就是HR筛选简历,而你的简历只有10秒钟的机会,然后HR就会决定你这一关是Fail还是Pass。
  • **内推:**有些求职者会觉得,我有内推,简历差一点不怕。这是错误的。即使你的推荐人愿意给你倾尽全力内推,他也需要根据你的简历论证你有哪些优点。如果你的简历写得空洞无物,再有心的推荐人也无能为力。这也是很多同学即使找了内推,依旧没有拿到面试的原因。
  • **面试:**到了面试这关,简历仍然很重要。面试官会根据简历来快速判断你是否值得他仔细面试。如果你的简历没有引起他的感兴趣,那在他心中可能已经给你判了死刑了,等下出个LC Hard的问题刁难你,你的feedback自然不会好,最后的结果就是呵呵一笑:Thank you for your interest。

当然,也不能为了充实简历就走向另一个极端:**为了拿到面试,把简历写得极尽fancy。**这样倒是让HR和面试官眼前一亮,但是针对你的简历来提问,你却答不上来,照样会挂掉。

如何写好你的项目和工作经验

  • 关键词

10s内能够让面试官看上的简历,肯定要有热门的技术词汇,最好还是和面试官(他们也是工程师)息息相关的技术。

这一点大家经常有个误区,觉得我一定要高大上,简历上的技术越新越好。但是,这些技术往往还没来得及大规模推广,甚至面试官都不知道,很可能写上去是没有用的。

反之有些技术,比如Test、Log、Git这些,看上去并不fancy,但是这是每一个工程师天天要做的工作,反而能把你和其他new grad区分开来。不要小瞧这一点,包括一些CS的master很多都不会Test、不会分析Log、不会Git。

你的简历如果既有一些较新的技术(一般出来一两年左右的,类似Go、React),又有经典的必备的技能,那么就一定能够吸引他的眼球。

  • 真实性

既然技术词汇这么重要,那我就把经典的、热门的技术全部写在简历上,堆成一个项目好不好?面试官不是傻瓜,他对简历的敏感度非常高,能够一眼看得出来哪些就是为了堆上某个技术而砌出来的项目。

举个简单的例子来说,有同学在简历里边写了一行:

Designed and developed a web applicaiton with Java, Eclipse, Hadoop, AWS EC2, REST API。

技术本身都是极好的技术,但是这样写是非常错误的。

**首先,这个描述极其缺少context,面试官无从判断这个项目的价值。**你的web application,是一个简单的一页的个人主页呢?还是一个有多个page的推荐系统呢?没有这个context,面试官无从了解你的这个项目的完成时间和完成深度。所以这个真实的context必须得有。有些同学可能上过一些求职课,知道应该用数字证明成果,这个其实也是context的一种。

**另外,单纯的技术堆砌往往缺乏联系和逻辑,无法说服面试官。**比如说,Deployed the system on AWS,这个AWS本身没有错,但是你的这个项目为什么要部署到云上面去呢?之前遇到什么问题?你是带着目的性去部署这个系统,还是说仅仅为了学习AWS而去做的呢?如果是我来写,我最起码会写上Deployed the system on AWS to improve scaling。这样才能证明我是明白AWS的用途的,而不是为了堆砌。

  • 深度

还有一些同学,尤其是CS Master和转专业的同学,有这样的疑问,如何让我的简历显得更有深度?我认为你的**简历需要体现设计和实现上的复杂性。**我总结了一个描述的技巧:起承转合。

**第一行,起。写清楚项目的背景。**写一下研究过什么同类的产品,我的产品的优势是什么。这能告诉面试官我不是随意设计一个项目的,是有目的、有规划的。

**第二行,承。一般我会写基本的实现。**用了什么框架、什么技术。记得要把context交代清楚。

**第三行,转。描述遇到的挑战,是如何解决的。**通过这条,说明我这个项目不是应付交差,而是做了一段时间,遇到了问题,并且解决了问题。

**第四行,合。描述最终的结果。**我是如何delivere、present、test这个项目的。告诉面试官我有ownership,能保证产品的最终完成。最好可以用一些数字来体现结果,而不是空洞的描述。

用这样一个四段论,比全部都在说做了A功能、B功能、C功能,在深度上好太多。

简历一无可写怎么办

  • 为什么无从下笔?

很多时候大家觉得自己无从下笔有几方面的原因的。

第一,做的项目和想投的工作不吻合,比如想投CS专业,手中却只有EE相关的技术经验,或者想投工业界的职位,却只有Research方面的经验;

第二,做的项目觉得不够重要,比如就是修修bug,改改button之类的简单任务;

第三,确实是什么经历都没有。

  • 如何发掘可写的点

针对第一类问题,可以想办法和目标职位靠拢。比如说CS和EE有很多通用的经验和技术,诸如前期查资料research、分析数据和debugging的能力,这些都是可以写到简历里边。另外有一些通用的soft skills,比如communication的能力、oral presentation的能力。尤其是一些PhD的同学,经常写paper和做presentation,都可以为简历增色。

针对第二类问题,就需要自己去深入思考自己项目的重要性。很多时候大家觉得我可能就是某个公司的某个小组做一些边角的事情,但是大家要想,为什么这么大的公司不找别人去做这个工作而找你?说明还是有你的价值在其中的。对于这样的项目,一般我会先介绍这个公司的价值,然后是我们组对于公司的贡献,最后就是我做的工作的重要性。层层递进,自然写出了你的价值

至于第三类问题,就需要大家去发挥积极性,多参与一些技术开发活动了。现在开源社区非常活跃,你完全可以参与其中。一开始哪怕就是修改标点符号也好,然后不断的升级积攒更多的经验。如果直接参加开源社区对你的技术要求太高,也可以去参加线上培训的项目,一般这些项目会有老师来亲自带着做项目,会更有指导性。

十年HR对简历理解

一、基本格调

即打开简历之后的第一印象。就好比我们看见一个人,会有一个整体的感觉,他是fashion的、小清新的还是老道的?有了第一印象之后再慢慢分解来看。

加分写法:

  • 简洁明了,逻辑结构清晰。
  • 字体,排版,顺畅,清晰整齐就好。
  • 最好是PDF格式,兼容性强且不易乱序。

减分写法:

  • 设计的过于浮夸或者过于简单的。(eg.有的简历五颜六色、非常酷炫,却半天找不到联系方式,抑或是只有个人基本信息和公司名称)
  • 写了十几页,半天打不开的,或者加载了半天,打开还乱码。

二、基本信息(姓名/性别/毕业院校/电话/邮箱/居住地/期望地)

加分写法:

  • 清晰罗列出以上信息,这样HR就不用在接下来的电话沟通或面试中再去追问这些内容,建立我们接下来电话沟通对你的熟悉度。
  • 再额外能加上QQ或者微信就更好了(以防有时候电话打不通哦,时不时会遇到这种情况)

减分写法:

  • 大部分的基本信息没有写
  • 甩给我一个Github链接,极致简洁的几句描述,需要通过你的链接来找你的联系方式。(如果不是博客写的特别好,基本是要放弃你了)

三、工作经历&项目经历

加分写法:

  • 工作经历项目经历可参照万能的STAR法则来写,STAR不清楚的童鞋点这里
  • 效力过哪些公司,我们匹配的公司? BAT? 知名大型互联网公司?
  • 做过什么行业领域,和我们目前的行业是否匹配
  • 擅长的技术语言,应用了哪些技术栈,(Java, Scala,Ruby, React, Vue, Microservice…)
  • 经历的项目复杂度,及在项目中承担什么样的角色(人的变化/技术的变化/环境的变化/不同工作经历相同角色的不同点)
  • 时间节点(空档期)

减分写法:

  • 看了半天,不知所云,没有任何亮点,没有让人有去和你聊一聊深扒的信息。

来几个栗子

栗子1错误打开方式:

  • XX(全栈工程师)2013.06 — 至今
  • 参与需求分析及实现方案设计。
  • 设计数据库表结构,实现后台功能及web页面展示。
  • 产品线上部署及运维。
  • ay 配置管理工程师 2010.03 — 2013.03
  • 负责公司产品性能测试,及线上数据分析
  • 负责公司配置管理,环境维护等工作

点评:看不出来他做的什么事情,没有逻辑性,甚至不知道他做的什么技术语言。

栗子2正确打开方式:

西安XXX公司 Java工程师 — 2016.2月-2017.2月

1、MOGU推荐架构数据与缓存层设计开发

  • MOGU是一款时尚资讯app,负责推荐页面资讯feed流的展示及用户历史的展示
  • 负责数据层,处理前端逻辑整个开发工作,分布式rpc服务搭建
  • 负责进行压测监测、缓存处理,对接又进行改进优化,主用redis缓存

2、基于JAVA的电商爬虫开发

  • 使用java搭建爬虫server平台,进行配置和开发,进行网页改版监测功能开发
  • 爬取淘宝时尚品牌与其他电商网站商品品牌与详情等
  • 通过频率、ip池、匿名代理等应对一些网站的反爬

3、同图搜索Solr服务开发

基于算法组的同图策略,使用solr做java接又实现rpc服务搭建,进行索引构建和solr实现

北京XXX

java大数据工程师— 2013.4月-2015.12月

1、负责实时流消息处理应用系统构建和实现

  • 在调研了kafka的优势和我们的具体需求之后,用kafka作为消费者,保证高吞吐处理消息,并持久化消息的同时供其它服务使用,进行了系统的设计和搭建使用。 本地日志保证消息不丢失,并通过记录游标滑动重复读取数据。
  • 使用storm 负责搭建消息处理架构,并完成基于业务的消息落地,提供后续的数据 统计分析实时和离线任务,诸如pv、uv等数据,为运营做决策
  • 网站用户行为埋点和基于js的日志收集器开发,定义接又和前端部门配合。主用go 2、hadoop集群搭建和数据分析处理

2、基于CDH的集群搭建工作,后期进行维护

编写MapReduce程序,能将复杂工作逻辑化,尽最大能力发挥大数据应用的特点, 对程序高要求,监控自己程序运行情况,使用内存合理,注重增量和全量运算的利弊

3、调度系统设计与实现 基于quartz2搭建调度平台,带徒弟实现相关功能并定期review代码

4、数据库调优 负责主从搭建,并掌握主从搭建的利弊,了解业界mycat原理,有数据库优化经验,能 正确并擅长使用索引,对锁有深刻的认识

5、网站开发 java web网站业务开发,并能很好的使用缓存技术,对重构有实际的经验,并对面向对 象开发有全面的实战经验。了解java数据结构的使用场景,虽然对于大并发没有太大的 发挥余地,但是掌握了数据结构,对于并发和阻塞等有自己的见解。

点评:非常清晰的告诉简历阅读者自己做了什么事情,负责了什么样的事情,用了什么技术栈,且逻辑连贯。

四、 工作期望&个人评价

加分写法:

  • 对自己有一个全方位的一个描述总结,让别人更好的解读你。或者在此处,高亮你的优点特长有哪些。
  • 即使不写个人评价,也一定记得写上工作期望。

减分写法:

完全看不出个性特点,写和没写没什么区别。 来几个栗子

栗子1 错误打开方式

为人性格,诚实谦虚,勤奋,能吃苦耐劳,有耐心,有团队意识,能和同学和谐相处,能虚心接受别人的建议的人。

责任心强,善于沟通,具有良好的团队合作精神;专业扎实,具有较强的钻研精神和学习能力;性格比较乐观外向,喜欢打羽毛球。

栗子2正确打开方式

  • 我对自己的定位: 主攻前端,同时在其他方面打打辅助。我不希望过于依赖别人,即使没有后端没有设计没有产品经理,我依然想要把这个产品做到完美。毕竟全栈才能最高效地解决问题。
  • 我对工作的态度: 第一,要高效完成自己的本职工作。第二,要在完成的基础上寻找完美。第三,要在完美的基础上,与其他同事 互相交流学习,互相提升。工作是一种生活方式,不是一份养家糊口的差事。
  • 我怎样克服困难: 不用百度是第一原则,在遇到技术问题时我往往会去Google、Stack over flow上寻找答案。但通常很多问题 并不一定已经被人解决,所以熟练地阅读源码、在手册、规范甚至 REPL的环境自己做实验才是最终解决问题的办法。相信事实的结果,自己动手去做。
  • 怎样保持自己的视野:我一直认为软件开发中视野极其重要,除了在 Twitter 上关注业界大牛,Github Trending 也是每周必刷。 另外 Podcast、Hacker News、Reddit 以及TechRadar 也是重要的一手资料。保持开阔视野才能找到更酷的解决方案。
  • 我的优势: 热爱技术、自学能力强,有良好的自我认知。全面的技能树与开阔的视野,良好的心态、情商与沟通能力。
  • 我的劣势: 非科班出身没有科班同学对算法的熟练掌握,但我决定死磕技术,弥补不足。

栗子3正确打开方式

  • 极客、热爱技术、热爱开源
  • Ruby on Rails:精通
  • Agile/Lean:精通
  • ReactJS:掌握
  • Docker:掌握
  • AWS:掌握

五、 是否有博客,个人技术栈点等

  1. 看到有这项的HR两眼已经放光了,加分加分项,说明你真正的热爱技术,善于学习总结,乐于分享,且有投入自己的业余时间到软件事业中。
  2. 我喜欢的书籍:《重构》《卓有成效的程序员》《代码整洁之道》等
  3. 我喜欢的社区: 图灵社区,知乎,博客园,Stack Over flow,Google Developer Group等
  4. 我的博客链接、个人作品链接如下:

六、简历内容真实性

老司机提醒你,你简历的任意一个细节将会是后面面试中的呈堂证供。

看起简历来几十秒,码字还是个体力活。

一个运营主管对简历的理解

那么问题来了,为什么看上去差不多的技术和资历,有人可以一个月收到二三十个offer,有人只有寥寥几个?

答案与简历相关。虽然技术有高有低、资历有深有浅,个人客观情况在短时间无法改变(经历造假可鄙),但是,如何将它们呈现在简历中是有技巧的。

回答题主的问题「程序员简历应该怎么写」?我认为,**程序员就应该拿技术说话,「技术总结」是一份程序员简历的重中之重。**除了大神和大牛,普通的程序员如果能在叙述中中体现自己的风格,在技术总结中展示鲜明的个人形象,会更吸引公司的注意,拿到更多的面试邀请。

  • 技术总结的风格多种多样,举几个栗子:
  1. 最普通的技术总结

    程序员的简历如何写程序员的简历如何写

  2. 资历深厚长篇大论型 程序员的简历如何写程序员的简历如何写

  3. 牛人极简型程序员的简历如何写程序员的简历如何写

  4. 硅谷Geek风 程序员的简历如何写程序员的简历如何写

  5. 卖萌型程序员的简历如何写程序员的简历如何写

  • 小结:

**1、尽量避免主观表述,少一点语义模糊的形容词,**除非是大公司大牛,已经有成果撑腰,否则慎用「熟悉… …」、「使用过… …」

2、多一点表意清楚,语气肯定的数量词、名词、成果描述。

一定要将自己的优势和期望明晰地表达出来,便于招聘方能对候选人有更准确的定位:

介绍技术:最近几份工作经历中所参与过的产品、项目、角色

  • 在工作中做的项目的技术细节
  • 克服过的技术难点与细节
  • 感兴趣的技术
  • 在程序马拉松上参加的项目或者是业余的个人项目(+link)
  • 如果领导过技术团队,写下带的团队的规模与管理风格

介绍自己:过往有特点经历、擅长的方向、对互联网的理解、职业发展规划

  • 试试用markdown语法,注意下排版,预览再提交,版面整洁、干净,也是加分项。
  • 最后,看了10,000份简历的心得:
  1. HR/技术负责人更喜欢看到一份显示**「职业上升趋势」**的简历;
  2. 牛人讲结果,普通人讲过程。