===================

2019.2.11

大部分内容准备放回到自己的小网站(https://cvmentors.com/)上写了,gitbook这里就不再维护更新啦~

===================

Project的高级写法

Project写到中级水平,在本科和硕士毕业生中就已经很有竞争优势了,毕竟绝大部分同学的简历还是停留在homework的级别。那如果想更进一步提高Project的水平,以争取更多FLAG级别公司的青睐,应该怎样改进Project呢?或者,如果已经有了几年的fulltime工作经验,应该怎样提高自己的Project和简历呢?我个人的回答是,要把Project更向Product方向靠近。我们还是用同一个project的例子,看看高级Project可能的写法。注意这里只是“可能”,“高级”也只是相对,因为复杂系统的技术挑战是没有止境的,这里的例子也仅限于单人可实现的范围。

Rails based Online Resume Consulting Web Service (www.cvmastersonline.com) 2017/01 - 2017/08

  • Implemented the web service with Ruby, Rails, MongoDB/MongoID, ReactJS, Webpacker for online consulting service
  • Developed the Ajax based frontend with Yarn, Webpack, ReactJS, and Redux for middlewares and reducers and used ActionCable/WebSockets for real-time chatting and notifications
  • Implemented MVC backend with Rails 5.1 on MongoDB and asynchronized job queue with Sidekiq and Redis
  • Automated system deployment with Docker, Nginx on AWS EC2/ECS and AWC ELB as load balancer
  • Used Apache Kafka for log/event analysis and created MongoDB shared cluster for storage

这里新加的两个item主要针对system deployment和log/event analysis:利用Docker做deployment的好处就是容易做scalability;Kafka和MongoDB sharding是为了处理large scale data。这里虽然有over engineering的嫌疑,但是重点是这两条item不是面向customer的,而是面向system的。

如果说低级的Project更像homework,那高级的Project就应该更像Product。当然如果是PhD准备走学术路线,更好的Project就意味着更好的Publications,不在本章的讨论范围之内。所谓更像Product,就意味着除了feature本身的实现,你还要考虑很多其他方面的问题,比如performance,deployment,analysis,scalability,throughput等等。原因很简单,大型复杂系统暴露给customer的API往往是最容易的冰山一角。例如Twitter这样的系统,技术难度不在于能发推能follow别人,而在于怎样支持全球几亿用户。实际上,要实现你能看到的Twitter的基本功能其实花几天时间当个Homework就能做出来了。

看到这里你就会明白如果还没有毕业,那实习的真正重要性在哪里。刚刚毕业的学生普遍缺少项目经验,如果你通过实习能够获得大型复杂Product的开发经验,那当然容易脱颖而出;但如果你的实习仅限于打杂,当然简历上加分也不会太明显。同样这也解释了,如果你已经有了几年的工作经验,那你的简历就不能再以刚刚毕业的学生作为标准,而是需要有更多对于产品Product核心技术的思考。

最后说一个写简历时候的个人技巧。我在自己的简历中,会有一些Project的描述不完全真实。不是说我会在自己的简历中造假,而是说我会把我会的东西糅合进某一个Project中,哪怕这个Project在实际中并不是这样实现的。这样做的原因是有些Project之间总有技术交集,但也总会有不同的侧重点;分开写会重复,不如合并成一个更大的Project。比如文中的例子,其实实际在运行的系统我并没有用到Docker和Kafka,因为这么一个小破网站每天也没几个人访问,没有这个必要。我放在这里只是因为这些我都做过。很多人会担心这样夸大简历会不会在面试中被抓包,但是还是那句话,首先你要有面试。

实际上cvmastersonline这个网站从开始就不是基于MongoDB的,而是基于PostgreSQL的。最近正在努力开发迁移到MongoDB上,所以如果看到Bug还请不要嫌弃:P

===

这里不能留言,如果有任何疑问,欢迎在我的个人网站(cvmentors.com)上讨论:

https://cvmentors.com/r/resources/59e808995b7cef7f3dfbb81c

results matching ""

    No results matching ""