项目经历
最后更新于:2022-04-01 03:08:26
# 项目经历
项目经历是简历阅读者进一步了解求职者技术能力的重要依据,良好的项目经历应当清晰,简洁,既印证前面提到的技术能力,也反映出求职者应对复杂度(Handle complexity)的能力。
[TOC=2,2]
## 22\. 按照时间对项目经历排序
一般来说,项目经历应该按照时间倒序排序——最新的项目经历放在最前。此外,考虑去掉过于久远(比如说,七八年前)的项目经历,因为你很有可能已经忘了七八年前做过的东西了。
另外一种排序方式是按照项目的重要程度排序——最重要的项目放在最前,但我个人不推荐这种方式,因为往往最重要的项目都在最近,如果你最重要的项目在很多年,那么很有可能你这些年毫无长进。
## 23\. 不要列出过多的项目
我经常看到非常长的简历:三四页纸,两三千字,十余个项目,恨不得把他/她做过的东西全都铺上去。而事实证明写出这样简历的人水平都不怎么样——至少就我的个人经验而言。
项目经历不是自传,不用把你全部的经历铺上去,也不要写过多的项目经历——三个项目是一个不错的选择,五个就有点多,十个就会没人看。要知道三个优秀的项目远胜十个一般的项目。
所以问题来了,什么是优秀的项目呢?就技术项目而言,我的评估标准是复杂度(Complexity)和影响力(Impact):一个项目,如果复杂度和影响力都有那是最好,如果只有一个也不错,如果都没有那就呵呵。我会在[原则25 强调影响力和复杂度](http://zh.lucida.me/blog/lean-technical-resume/?utm_campaign=CodeBaku&utm_medium=web&utm_source=CodeBaku_6#rule25)中进一步说明。
## 24\. 强调成果而非过程
我在我之前的[关于锤子手机和锤子手机发布会](http://zh.lucida.me/blog/on-the-keynote-of-t-one/)提到过:
> 总之,在锤子手机发布会上,我看到的是一个人在不断的强调自己有多努力多认真,但我也知道当某人不断的给你强调他有多努力(effort)时,事实往往是他还没有获得任何实质性成果(progress),简而言之,effort不等于progress。
技术简历也是如此,不要在项目经历中过度强调你有多努力。“连续高强度工作三个月”和“在深夜重构了XX项目中的代码”并不是一个好的项目描述:如果你“连续高强度工作三个月”却无法说明你的工作成果,“在深夜重构了XX项目中的代码”却无法说明重构后代码改进了多少,那我认为你的“努力”毫无意义。
强调你的项目成果(Achievements)而非过程,“将网站访问量提升300%”、“将响应时间从1.5s减少到0.1s以内”都是不错的成果。
## 25\. 使用量化结果而非抽象描述
我经常在简历上看到“改善了代码的质量”、“提升了启动速度”和“大大增加了网站访问量”之类的描述,我的第一反应就是:
![坑爹呢这是](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2015-09-10_55f18397c0afc.jpg)
**用个数字你会死啊!!!看新闻联播看多了吧亲!!!!**
接下来的反应是:
* “改善了代码的质量”——改善了多少?你是如何评估的?圈复杂度?测试覆盖度?Bug的数量? ???
* “提升了启动速度”——提升了多少?用户的反馈如何?是否在可接受的范围内? ???
* “大大增加了网站访问量”——“大大”是什么?访问量增加了多少?访问量原来是多少? ???
如果我找不到上面问题的答案,我会直接无视这些抽象描述——还是那句话,我为什么要相信你的一面之词?而且你连话都说不清。
## 26\. 强调影响力和复杂度
> “Controlling complexity is the essence of computer programming.”
>
> Brian Kernighan
控制复杂度使程序设计的根本(essense),所以绝大多数IT公司在招聘时都会把应对复杂度(Handle complexity)放在职位描述里面——你如果能把难题搞定,那么简单题也不在话下。如果你做过的项目足够复杂,那么就证明你能扛得住复杂度,是个好~~备胎~~备选(Candidate)。
那么什么样的项目经历称得上复杂呢?我在这里给出一个不严谨的分类,仅供参考:
* 编程复杂度:操作系统,编译器/解释器,图形学编程,网络协议设计与实现等
* 算法复杂度:算法竞赛奖项等(不好意思我不熟悉算法所以给不出啥例子 –_-)
* 设计复杂度:大型网站,企业级应用,分布式应用等
衡量项目的另一个重要依据是影响力(Impact),有的软件项目可能不那么复杂,但是它具有相当大的影响力,例如jQuery、RoR和JUnit:
> “Never in the field of software development have so many owed so much to so few lines of code (JUnit).”
>
> Martin Fowler
如果你的项目并不复杂,那么请强调它的影响力,用户量超过十万的手机应用和被广泛应用的类库都是很好的项目,尽管它们可能并不复杂。
如果一个项目既没有复杂度,也没有影响力,那么直接删掉它——不要犹豫,它不会为你的简历提供任何价值。