1. 怎样写简历

简历是别人了解你的第一个地方,所以简历很重要且要好好写;

当然,我们知道真正的好简历是要用自己的经历去写的,比如,有人的简历就是一句话:我发明了Java语言。

简历上的信息不要写太多,信息太多相当于没有信息,不要单纯地罗列,要突出自己的长处和技能。一般来说,简历需要包括以下几项内容.

  • 自我简介。这个自我简介是用最简单的话来说明自己的情况,不超过200字。比如:5+年的软件开发经验(说明你的主业),3+年的团队管理经验(说明你的领导力),擅长高可用高性能的分布式架构(说明你的专业和专攻),多年互联网和电商行业背景(说明你的行业背景),任职于###公司的##职位(说明你的职业),负责**平台或系统(说明你的业务场景)......
  • 个人信息。
  • 基本信息
  • 个人网站
  • 网站内容
  • 作品展
  • 个人技能。这些内容要能很明显的让对方了解你掌握的技术和熟悉的领域。
  • 技术技能栈。其中包括你擅长和会用的编程语言(如Java,Go、Python等),编程框架或一些重要的库(如Spring Boot、Netty等),熟悉的一些技术软件(如Redis、Kafka、Docker等),设计或架构(如面向对象设计、分布式系统架构、异步编程、高性能调优等)。
  • 技术领域。前端、算法、机器学习、分布式、底层、数据库等。
  • 业务领域。一方面是行业领域,如金融、电商、电信等。另一方面是业务领域,如CRM,支付,物流、商品等。
  • 经验和软技能。带过多少人的团队、有多少年的项目管理经验、学习能力如何、执行力怎么样、设计过什么样的系统
  • 工作经历和教育经历
  • 列一下你的工作经历。每份工作完成的主要项目,主要突出项目的难度、规模、挑战、职责,以及获得的认可和荣誉 
  • 技术知识准备
  • 你写上了熟悉Java, 那么Java的基本语法要了解,并发编程、NIO、JVM等,你多少要有点了解,Spring、Netty这些框架也要了解。
  • 你写上了Redis,那么除了Redis的数据结构,Redis的性能优化、高可用配置、分布式锁什么的,你多少也要吧官网上的那几篇文章读一读。
  • 你写上了面向对象,那么怎么着也得把《设计模式》中的23个模式了解一下。
  • 你写上了分布式架构,那么CAP理论、微服务架构、弹力设计、Spring Cloud、Cloud Native 这些架构就要做到心里有数。
  • 你写上网络编程,那么TCP/IP的三次握手,四次回收,两端的状态变化你得知道吧,Socket编程的那几个系统调用,还有select、poll、epoll这些异步IO多路复用的东西,你得知道。
  • 算法题准备
  • 如果是数据排序方面的题,那基本上是和二分查找有关系的
  • 如果是一个无序数组上的搜索或者统计,基本上来说需要动用O(1)时间复杂度的hash数据结构。
  • 在一堆无序的数据中找top n的算法,基本上来说,就是使用最大堆或是最小堆的数据结构。
  • 如果是穷举相关的题(如八皇后、二叉树等),基本上来说,需要使用深度优先、广度优先或是回溯等递归的思路。
  • 动态规划要重点准备一下,背包问题、爬楼梯等
  • 一些经典的数据结构算法也要看一下,比如,二叉树、链表和数组上的经典算法,LRU算法,Trie树,字符串子串匹配,回文等。
  • 工作项目准备
  • 说一个你做过的最自豪的项目,或是最近做过的一个项目。
  • 说一个你解决过得最难的技术问题,或是最有技术含量的问题。
  • 说一个你最痛苦的项目,或最艰难的项目。
  • 说一个你犯过的最大的技术错误,或是引发的技术故障。

对于上班这四个问题:第一个问题,主要是看你过去工作中做过的最高级的事是什么,还有你的兴趣点和兴奋点是什么;第二和第三个问题,主要是想看看你解决问题的能力,以及面对压力和困难时的心态;第四个问题,主要是想了解一下你面对错误时的态度,还要了解你是否会对错误有所总结和改进。

怎样准备这样的题,我这里有几个提示。

  • 要有框架。讲故事要学会使用在什么样的场景下(Situation),你要干什么样的事(Task)。你采取了什么样的行动和努力(Action),最终得到了什么样的效果(Result)
  • 要有细节。
  • 要有感情
  • 要有思考

训练这方面的能力最好的方式就是在工作中写文档,在工作之余写博客。只有写得多了,写得好了,你这样的能力才能训练出来。