当前位置:首页 » 《关注互联网》 » 正文

入职百度了!5年Android开发的求职之路,分享一波面试心得_nufuli123的博客

1 人参与  2021年09月04日 08:43  分类 : 《关注互联网》  评论

点击全文阅读


背景经历

当时我工作近5年,明显感觉到了瓶颈期。具体来说,感觉自己用过很多框架、做过一些技术设计、也有过一些产出,但是从技术深度上感觉不足,到后期时做事也没有明显挑战,完全适应了公司节奏,说句不好听的成了老油条,可以每天舒服的混日子(这也有好处,有时间准备面试)。这对于个人成长不利,长此以往可能面临大龄失业。所以我觉得需要痛下决心改变一下现状。我定的目标就是进大厂,因为我觉得小厂做到我目前的程度已经很难有很多的提升了。

img

下了决心之后,下一步是写简历

简历在面试过程会起到至关重要的作用,我们需要非常注意简历的撰写。

在面试的过程中,面试官通常会非常关注你简历中的工作经历、项目介绍、技能特长这三部分的内容,如果你面试的公司没有固定题目的话,那很多问题都会围绕你简历里这三部分内容去问。这里需要注意的一点是相关技能的书写,核心思想,想进大厂的简历,要突出自己的特色,写得要生动,能从简历看出你实力不俗。如果简历不过关,很大几率根本没有面试机会。

首先你要让面试官明确你面试的定级是什么。 很多时候一个职位对应了很多个职级,在投简历的时候,你的简历需要让面试官给你一个比较明确的定级,否则面试过程会比较被动,也会影响面试官对你的判断。

img

因此这部分的内容需要突出自己的特长,也要写一些现在公司相对关心的问题:

  • 比如你对插件化、热修复、组件化、性能优化等很熟悉,就可以明确的写上,但如果不是很熟悉那么尽量不要去写。
  • 如果你对Android某部分内容很熟悉就可以写得相对详细一些,比如你对Handler、Binder机制很熟悉,就可以写“熟悉Android常见机制,比如Handler、Binder机制等”。
  • 而看到你很熟悉这部分内容,面试官可能在问问题时一层层深入,因此你肯定需要提前准备一下这部分内容如何讲解,基本可以从机制的优点、重点、难点三方面去说明。

面试篇

对于Android工程师来说,面试开始的时候都会问一些算法和Android、Java的基础知识。

针对Java的基础知识,我建议你看一下《码出高效:Java 开发手册》《深入理解Java虚拟机》《Java并发编程的艺术》这三本书。这里可以分享一个之前在Github上看到的Android底层基础到架构成长笔记库,整理得很全,如果你也有需要可以去查看,点击查看Github地址
img

对于Android的面试题,大多都是跟系统原理有关的内容,但也有很多没有准确答案的问题,比如四大组件的原理这样的题目,需要你从一个宏观的角度去解释一下四大组件,或者你也可以拆分开一个个去讲解。

关于Android面试高频的问点,这些你是必须要理解清楚的!如果你在准备面试,这份《Android快速面试指南》肯定很适合你! 很全面,如果你也有需要可以去查看,点击查看Github地址

img

一些Android经常使用到的组件一定要理解清楚,比如:

  • Handler.postDelay的机制
  • 触摸事件机制
  • 自定义View
  • 如何计算View大小
  • 容器控件如何对子控件进行布局
  • 数据库基本操作
  • Binder机制
  • LMK机制

还有面试官也可能会问一些开源框架的原理,建议你也要多了解一些:

优秀的网络框架

图片加载框架

日志记录框架

EventBus

AAC框架的原理

还有性能优化,最近几年公司对性能优化关注很多,有的同学可能做过专门的性能优化或者自己开发过一些工具总结过一些方法论,这样比较好答一些。但是大部分小伙伴可能平时都在关注业务需求开发,性能优化的实战可能并不是很多。这里分享这份《Android性能优化实战笔记》,非常适合那种缺乏实战经验的小伙伴!如果你也有需要可以去查看,点击查看Github地址

面试的后面大多都会从项目入手,你需要在面试之前针对你的项目做详细的准备。比如面试官会:

  • 让你介绍一下你的项目
  • 你需要体现出这个项目的难点
  • 你在项目中的贡献
  • 项目的具体实现等
  • 有可能还会问到一些具体的细节,所以建议是实事求是去讲,但一定要对自己的模块非常清晰。

除了技术面试以外,有时还有可能会考察一些软技能,比如面试官会考察你跨部门协作能力、沟通能力、时间管理、任务分配和职业规划等

关于如何复习

对于复习,首先要对自己做一次自我了解, 我是通过画脑图(点击地址查看)来进行这个过程的,我会整体默想一遍大概的知识体系,画成类似下图。回想每个知识点可能考到的内容,记录下自己模糊的地方,然后去看网上总结的面试题,再对每个题目都做一下回答。这是一个迭代过程。

img

在你预想的问题都可以回答上来的时候,就需要深入挖掘一下技术细节和深度了, 比如我工作中开发了一个PLT Hook工具,这个工具可能是我参考开源项目并封装修改过来的,但对其中的细节并没有很了解,这个时候你就要对这个开源项目所涉及的内容做一次系统学习了。

算法这一块的话,“临时抱佛脚”对于算法的学习和积累作用不是很大,因此需要我们在平时繁忙的工作中抽出一些时间来复习,你也可以去LeetCode、LintCode上刷刷题。另外,虽然大部分面试的算法题目都是LeetCode上的简单题目,但你同样也需要关注一些中等和困难难度的经典题目。

总结

这里并没有涉及太多具体的面试题,更多侧重的如何准备面试, 而面试的准备其实是在我们平时工作过程中一点一滴积累的,复习只是作为一种在面试前巩固知识的手段。

复习的过程主要是我们对知识点的整理和总结, 你可以想一下在面试的时候可能会遇到的问题,以及该如何去表达。但是我想说,虽然“临时抱佛脚”的准备可能有时有用,但是在短时间内靠“突击”是很难理解到某个知识点更加深度层次的内容, 而且知识面的广度也是需要时间和经验去积累的。所以不管你是否需要面试,在平时工作过程中都需要多思考、多训练、多总结,在有需要的时候可以厚积薄发。


点击全文阅读


本文链接:http://zhangshiyu.com/post/26957.html

面试  简历  面试官  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1