开发12年老Android经验谈----如何提高面试通过率,怎样让面试官对你留下印象,面试时需要注意什么!

礼貌和尊重

听懂面试官的问题并直接回答

有些候选者听不懂面试官的问题,还有些面试者总是不直接回答问题,或者也许是不会的原因,就开始转弯抹角甚至转移话题,我认为这是很不好的,人要用于承担,即使这个问题不会,那也可以大声地说出来”不好意思,这个我不太会“,甚至还可以虚心地请教下面试官,面试不仅仅是一次找工作的过程,也是一次自我学习和提高的过程。

大家要知道的是,不是必须全部答对问题才能通过面试,只要大部分问题能回答出来并且候选者的态度良好,那么这样的候选者仍然能通过面试,当然态度不好的候选者,即使技术很好也很大可能通不过面试。

谦虚谨慎、态度友好

有些候选者在面试的时候不谨慎,给人一种随意的感觉,比如坐姿不端正,翘着二郎腿等等,换句话说就是别太随意,作为面试官公司都要求不能太随意,何况候选者呢!太随意的举动会给对方一种不被尊重的感觉。关于谦虚,这个就不必多说了,任何时候都要谦虚,面试过程中骄傲自大(俗称”得瑟“),是很容易被毙的。态度友好,就是要让面试官感受到你的诚意,这样大家沟通起来才比较舒服和自在。

下面对学历和工作经验做一些说明,学历并不是一个硬性要求,即使候选者学校不怎么好也是有可能通过面试的,这就要求候选者技术非常扎实。而工作经验,之所以是2年以上,这是因为社会招聘的对象一般都是有一定工作经验的,而1年工作经验略短了点,拿百度来说,社招的最低级别一般为T4,差不多刚好就是2年经验左右。

这里做下总结,理想的候选者应该是这样的

1. 扎实的技术功底,有技术追求(必须)

2. 态度、沟通和为人都很好(必须)

3. 2年左右工作经验(基本必须)

4. 名校、名企、高学历(非必须,加分项)

基本来说,满足1和2就能通过面试,3和4都是次要条件,但是一般来说不满足3就很难满足1,不要说特例,木有参考意义。

由此可见,技术是面试结果的决定因素。那么到底技术掌握到什么程度才能比较轻松地通过面试呢?说了那么多,好像和Android没有一点关系,下面就开始以Android为例来分析下面试过程所需的技术。

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. 琐碎的知识点

此类知识点我把它们定义为一些重要但是没有什么技术难度的问题,比如如何打开一个网页、如何打电话、如何发短信、如何定位、多点触控等,这类问题往往不好记忆,但是需要的时候去查一下就能立马搞定。这类问题基本上不会出现在面试过程中。

大家结合自己对Android的学习过程以及面试经验,在面试中遇到的问题是不是都是包含在上面的5个分类之中呢?对于1和5相信所有人都没有问题,但是对比2、3、4中的内容,大家是不是都能很好地Cover呢?换句话说,如果2、3、4中的内容大家都能很好地掌握,面试中的问题还能难倒我们吗?在前面的分析中提到,技术是觉得面试是否成功的关键因素,那么在面试前要做的就是把技术搞好,同时注意沟通和态度,这样的话通过面试岂不是很简单的事?

如何学习Android面试中所需的技术

这里主要是指上面2、3和4这三个类别中的技术,说实话,这并不是一件很简单的事。那么到底如何学习呢,这里先大概说下,随后会有一系列博客来详细地介绍这些技术的学习过程。首先要阅读源码,因为面试中的很多问题需要从源码中找答案,其次要主动学习平时工作中遇不到的一些技术,由于项目的原因,我们不可能通过公司的项目来解除到Android中所有的重要技术,尤其是一些规模不大的项目来说,这个时候要主动去学习。

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助

因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值