面试准备

上一篇blog 《Android菜鸡的苦逼求职路》介绍了我的求职历程,有些朋友留言想了解下具体怎么准备的,这篇blog就做一个简单的描述,上篇所说准备工作包含以下几项:

  • 项目经历
  • Java基础
  • 设计模式
  • 算法
  • 网络相关知识
  • Android基础
  • Android源码
  • Android性能优化
  • 开源库源码
关于项目经历:

至少要保证能回答出以下几个问题:
1.你们项目架构是怎么样的?
2.XXX模块是如何实现的?
3.项目亮点是什么?
4.项目难点是什么?

想要回答好以上几个问题,就需要好好读读项目代码了。一个项目,多数情况下是团队合作的产物,所以有些模块你可能仅仅知道是干什么的,但不一定就仔细看过其实现细节,也未曾关注过这些模块遇到的问题或者亮点。此处不得不提一下,团队中如果有良好的分享机制,那么你一定会有一些印象,回头找找相关文档就更容易准备一些。第一轮,大致搞清楚有几个模块,每个模块的功能,模块之间的联系,基本上是根据包名点进去一些类,大致看一下逻辑。第二轮,要针对各个模块的具体实现去看了,这时候要搞清楚具体逻辑是怎么实现的,用了什么技术,第三轮,前两轮看完,基本上对整个项目有了较深理解,但是一般会忽略掉一些亮点难点,所以这一轮主要是根据一些亮点难点问题回头再重新看一下某些地方的具体实现。所以关于项目,宏观与细节都要掌握。

Java基础:

其实相当一部分Android开发者Java基础是很一般的,比如我,就没有系统的学习过Java,是做Android以后迷迷糊糊地用上了Java,但是Java很重要。
可以先刷Java面试题,根据面试题就知道自己是什么水平了,然后查缺补漏,读读《深入理解Java虚拟机:JVM高级特性与最佳实践_周志明》和《Java并发编程实战 》,再看看《Effective Java》,这几本书都不厚,但是看的过程中,总能引申出一些枝丫,你再去研究这些枝丫的话,也需要时间,所以这个过程其实还是需要蛮长时间的,所以这一块我认为临阵磨枪是效果甚微,要靠积累。

设计模式:

反正我觉得设计模式挺高端的,有些人知道”设计模式“这个词之前就用过设计模式,只是自己没有意识到罢了。我看了一本书《Android 源码设计模式解析与实战》,这本书讲解设计模式的时候,先是拿出小案例来讲,后再拿出Android中的源码讲解其使用的设计模式,每章如此。我是一星期囫囵吞枣的就看完,有个印象,然后过几天忘了,汗,再拿出来看看。看这东西最好是能画出来UML图,还要说出来几种设计模式之间的异同,需要理解的深一点。还有《Head First 设计模式》,是国外的书,中文翻译的,也比较经典。

算法:

简单的排序和查找需要掌握,不过现在一般不会就这么简单问问排序查找的问题。可以去牛客网刷题,这网站可以在线编程,很多题目,每天做两个,非常有趣。我在这个过程中发现一些数据结构知识我没有掌握,又补了一下。如果想要系统学习一下的话,还真挺难的,我的那本《算法导论》现在还是新的……。这里要说一下,有的公司面试会有在线编程,比如某条,多数公司会手写算法,再A4纸上写,不要抗拒手写算法,练练就好。

网络相关知识:

这块内容,我也没什么好路子去学习,就是根据面试题去看blog的,平时Android的项目有时候会抓包研究一下。最起码三次握手,四次挥手你得会吧……

Android基础:

需要系统的学习下,可以看看《Android开发艺术探索》先捋顺一下基础,这本书非常适合面试看(主席也这么说过)。然后编译啊,打包啊,反编译啊,什么的都要看看。插件化,热修复也要了解下。

Android源码:

AMS,PMS,WMS,看源码吧,看的头大,看了好多遍,搞清楚流程就可以了,比如开机以后PMS如何工作的,App启动流程。另外各个控件的实现也看看,我遇到过需要自己实现TextView的面试题,当时我的内心是崩溃的,真不会啊……只能按照自己的想法聊一下怎么自定义控件并draw文字出来。

Android性能优化:

做了两三年的Android工程师,这必问!这里东西很多,我看了很多blog,实践过,组内同事也做过技术分享,这块想做好,还是很难的!我记得我看的是胡凯的blog,还有Youtube上也有视频,不过我很少看。

开源库源码:

比如项目中用的RxJava,Glide,LeakCanary,等等,都要看源码,看看实现细节,我看了蛮久的,每个库我看完以后都在A4纸上把架构和类关系画出来,画的乱糟糟,后来发现网上有现成的图,自己画完了和人家以对比,嘿,除了乱一点,还真对上了,讲真自己画了以后印象更深。

总结:

这些内容还是挺多的,如果想要踏踏实实的准备一下,老实说我觉得上班族没有两个月想搞定还是不容易的。其实准备这么多,面试的时候未必会都涉及到,一般来说大公司考察的更全面一些。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值