致:为找工作而奔波,为家庭努力的程序员的一封信!(如何写一封好的简历?提高你的通过率!)

一、如何选一个好的简历模板?

好的简历样式,能给面试官留下良好的第一印象。以下为几个较好的简历模板网站:

  1. 五百丁(http://www.500d.me/)

  2. 乔布简历(http://cv.qiaobutang.com/)

  3. visualcv(https://www.visualcv.com/zh/)

  4. 脚步网(http://www.jiaobu365.com/)

  5. 知页(https://www.zhiyeapp.com/)

  6. 千图网(http://www.58pic.com/)

  7. 简历计划(http://www.jianlipro.com/index.html)

  8. 简历宝(http://www.jianlb.cn/)

上面某些简历模板可能会是收费的,对于找一个好工作来说显然是非常值得的。本人的简历模板样式,当时花了几块钱用了好几年,还是蛮值的吧:


二、选好模板后,内容如何填写?

我作为面试官面过很多人,也作为求职者求职过很多公司。填写什么样的内容才能第一时间吸引到面试官? 面试官一般只会关心几个信息:

  1. 毕业学校(个人素质、潜力)

  2. 最近的两份工作(背景如何)

  3. 个人技术品牌(技术热情度)

简历一张就够了,没必要写大量其他无用信息,对面试官是一种负担,也找不到你自己的亮点。首先,填写学校,还有在学校的突出事迹,比如参加过什么比赛,获取过什么奖项,这对于一个人的素质和潜力都有很大的参考。如果学校较好,内容少点也没关系,毕竟清北毕业,这就是代表很多内容了。 其次,填写工作经历,重点在最近两份工作,把平常做的比较重要的事情一条条列出来,例如,负责了哪部分业务,期间解决了什么问题,由此给产品、团队带来了什么收益。这些都是面试官想看到的,更多的是能说到具体的示例,还能对这个事情研究的比较透彻,即使只是一个例子也没关系。最后,填写自己突出特点、技术品牌。例如,博客访问量多少,Github 有多少star,个人作品,深入研究过某个问题等等。 至此,简历基本填写完成,可以填写一些边角东西,例如,技能、兴趣爱好,但这些东西的重要性不要盖过上面的三点。

三、 简历写完后,如何投递?

大部分人都会疑惑,为什么在一些平台投递后一直没有消息,这就是投递效率。想象下,如果你是Leader,这时正好之前的同事满足你的要求,正好这时他在找工作,然后,象征性的走下流程,入职就好了,效率最高。 所以,内推永远是效率最高的。投递的时候就看平台是否能做到这一点。 第一考虑脉脉、内推网。这类平台一般可以直接和Leader或部门内员工联系,这样如果合适就可以立即安排面试,省去了Hr层层筛选时间,也更匹配职位信息,成功率最高。第二考虑猎头平台,自己的猎头资源或者100offer。猎头一般都会有较好的职位资源,也会根据自己的信息及经历精准匹配,而且也会一直保持跟进,猎头投递效率略低于内推。 第三考虑,互联网职位平台,例如,拉钩、Boss直聘等。这类平台大部分都是推简历到Hr,Hr会根据自己需求筛选,筛选后到Leader还会筛选,层层筛选通过后可能才会安排面试,有些公司这个流程会很长,一周甚至两周Hr才会联系面试,所以是投递效率最低的。

四、面试需做什么准备,应该注意什么?

1.刷题(牛客网,力扣都不错)
网上高级工程师面试相关文章鱼龙混杂,要么一堆内容,要么内容质量太浅, 鉴于此我和身边好友趁着这次疫情花费了6个月整理了上述安卓开发高级工程师核心学习笔记以及面试题和详细的答案解析帮助大家顺利进阶为高级工程师,目前我就职于某大厂安卓高级工程师职位,在当下大环境下也想为安卓工程师出一份力。



2.简历(上文已经提到)
3.Android面试过程所需要掌握的技术
一场面试都有一个流程,拿Android面试来说,面试内容不可能全是Android问题,里面应该会有编程基础相关的问题。我对Android面试中的问题做了下分类,如下所示:

类别 描述
数据结构和算法 熟悉或者知道
Java 熟练掌握
Android 熟练掌握
设计模式和架构 熟悉

一般来说,一个Android应用开发岗位是不需要太强的数据结构和算法的,但是这并不意味着候选者可以完全不懂数据结构和算法,所以数据结构和算法大家还是要稍微了解下,由于它不是必须的,所以就算面试过程中回答的不好也没关系,只要后面的Java、Android相关的问题能够完美回答就好。有同学和我反馈,说面试挂在了数据结构和算法,这在社招中应该是不多见的,这多半是因为Android的问题也没有很好地回答出来,这就是社招和校招的不同之处,校招看基础,社招看技术深度和业务。

关于设计模式和架构,其实中高级面试对这个的要求并不是特别高,熟悉下常见的设计模式基本就ok,比如单例模式、工程模式、观察者模式等。

接下来主要描述下面试过程中对Android技术的要求。我对Android的技术类别做了一下划分,如下所示:

类别 描述 开发者所需级别
基本知识点 熟练掌握 初中级
深入知识点 熟练掌握 中高级
基本知识点的细节 掌握 高级
系统核心机制 熟悉、掌握 高级、资深
琐碎的知识点 了解 所有级别

对于大部分面试者来说,大家的目标岗位应该是中高级,中级岗位(百度T4)需要掌握的知识点是:基本知识点、深入知识点;高级岗位(百度T5)需要掌握的知识点是:基本知识点、深入知识点、基本知识点的细节和系统核心机制。

  1. 基本知识点
    比如四大组件如何使用、如何创建Service、如何进行布局等。这类知识是需要熟练掌握的,并且也没什么难度。
  2. 稍微深入的知识点
    比如AIDL、Binder、多进程、View的绘制流程、事件分发、消息队列等。这类知识对于高级开发者来说也是必须掌握的,然而相信很多候选者在面试之前并不能对这些问题了如指掌。这些问题基本都是面试过程中很常见的问题,也是高级岗位所必须掌握的问题,不搞定这些问题无法达到百度的高级工程师的标准,因此也不可能通过面试。
  3. 基本知识点的细节
    比如Activity的启动模式和标记位、Service同时处于start和bind状态时的停止问题、AsyncTask的同步异步问题以及使用时的限制等,这种问题还有很多。这类知识点,大家在开发过程中可以并不会去注意,这会导致一个问题,那就是开发应用没问题,但是在面试时面试官只要稍微问下细节或者特殊情况,就hold不住了。 这类问题也是高级开发者所需要掌握的,有些面试官喜欢问一些看似刁钻的问题,但是候选者如果回答不了也是不好的。
  4. 系统核心机制
    比如主线程的消息循环、主线程如何和AMS如何跨进程交互、SystemServer进程中的各种Service的工作方式、AsyncTask的工作原理等。这类知识对于高级开发者也是建议掌握的,因为它们可以让开发者理解Android的运行体系。 这类问题并不是所有的Android面试都会涉及到,但是技术含量高的大公司有可能涉及此类问题。
  5. 琐碎的知识点
    此类知识点我把它们定义为一些重要但是没有什么技术难度的问题,比如如何打开一个网页、如何打电话、如何发短信、如何定位、多点触控等,这类问题往往不好记忆,但是需要的时候去查一下就能立马搞定。这类问题基本上不会出现在面试过程中。

以上是自己的一些不成熟的小经验,祝福大家都能找到满意的工作。

如有需要获取学习的资料文档的朋友点击我的GitHub免费获取。

共勉~