临近面试却还没准备好?大厂内部面试官权威的Android面试指导,带你弯道超车!
Posted Young-G2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了临近面试却还没准备好?大厂内部面试官权威的Android面试指导,带你弯道超车!相关的知识,希望对你有一定的参考价值。
提供最权威的互联网面试指导,让你关键时刻弯道超车~
主要分为两部分:
1. 找工作
2. 职业技能提升
找工作是百分比,职业技能是基础。可能职业技能是100分,但是技巧有问题,最后只发挥60%那只勉强及格。如果职业技能只有60,但是发挥了120%,最后能得72分~
1. 找工作
a. 简历包装
项目经验,大概介绍项目是做什么的,自己担任的角色(可以适当优化,比如我是负责人或者主要开发)
项目介绍里写一点开发过程中遇到的难点,核心功能, 这部分写自己掌握的熟悉的。即使项目实际没有,也要把自己熟悉的编进去,比如我对图片这块特别熟悉,就可以说项目中遇到了OOM异常,然后如何去网上找框架研究源码最后解决问题。
最近的项目里加自己最熟悉的核心点, 一般面试官会问你最近或者让你选你最熟悉的项目详细介绍。
其他项目只会大概问下或者问感兴趣的。所以其他项目中也可以适当加些自己熟悉的功能到描述中。
俗称挖坑
面试官有时候也不知道自己要问什么,基本对着简历看到哪问到哪。
所以要挖矿让他往里跳引导到自己熟悉的区域, 就可以了。一通乱侃以后时间差不多了面试官其他问题也不会多问了。
技能描述等模块也不要简单的写熟悉四大组件,熟悉常见布局等套话。也可以适当挖坑,写几个常见的然后写几个熟悉的,比如熟悉图片二级缓存...
一招鲜吃遍天~
简历重点就在于项目描述你是主力开发, 介绍其中的难点表明你真实的高参与度,以及挖坑让人跳。项目少也可以适当自己网上下些开源项目自己看一遍然后补充在简历里,不要写视频播放器这种。加一些工作中可能会用到的,比如微博微信这类的, 让项目尽量包含不同类型。
b.面试
简历中的坑可以对付大部分情况
最好随身带安卓手机安装自己最熟悉的项目然后给人演示,尤其应付不熟悉安卓的面试官这招最好。
同样是挖坑技巧, 比如介绍列表时就可以说,开始我们这个列表滑动很卡,因为有图片加载
然后我就优化了图片...然后又引入到自己最熟悉的模块了。挖坑对方不跳的时候就自己各种话题往自己熟悉的地方引。
遇到答不上来的问题
首先诚实表明这个模块工作上没有遇到过 ,自己不熟悉。然后表明我手里整理了大量的demo教程资料等,或者论坛里看见过。表示如果公司需要做这样的功能,我可以很快的学习然后投入到实际生产中,做出来(我学习能力强)
然后虚心请教面试官,这个问题我不会,你能否简单的和我介绍下这个知识点呢。
如果对方说了,最后可以表示又学到新东西了,对方不说的话就表明我要记下来回去学习下(表达我很有进取心,对技术有渴望,而且虚心, 又能让对方傲娇一下)
最后谈薪资
之前面试要表现的很自信,谈价钱也要很自信,开口可以提高点,比如市面上2~3年均价是1w,你开口就要1.5w。然后看对方反应适当讨价还价一下,尽量多要,然后多面试几家
如果面试不通过。记下来面试没答出来的问题,回去研究好,继续下一家, 基本所有面试问的问题都是那几个。
2.职业技能提升
找工作用技巧, 实际工作还是要真实力。
首先所有知识点都要大概了解,比如aidl ndk等我也不熟悉...要闭关研究下了。最好能笔记记下来,推荐印象笔记,然后简单整理下。如果要用的时候可以直接找到笔记参考,而且记录过的印象会深刻,面试的时候说我有demo资料等也包含这个。
基础能力
主要是工作上常用的东西, 要更熟悉, 然后多练习,重点是多写,比如工作中80%的工作都是在写页面, 网络请求熟悉, 解析成json, 显示到页面或列表上。
还有下拉刷新加载更多,常用第三方库, ViewPager浏览图片,多个Fragment页面的切换显示等。
工作之余可以写个项目练手,比如新浪微博,提供sdk,所以后台不用管。自己重点把工作中常见的几个模块都重点练习下。上班有工期压着不考虑这么多,自己写的时候可以慢工出细活。东西其实不多,不常用的可以跳过,基本写个1~2次以后工作再用到就会轻松很多,基本都是复制粘贴了。以后还可以不停的完善模块,因为是可以反复利用的,完善可以去网上多看看找项目瞅瞅,借鉴参考。
非重点功能就可以跟基础功能一样,笔记记下来,方便以后再次使用时快速捡起,不用全部都完全掌握,太累。
常见功能搞定,非常见功能可以很快查询资料解决。基本达到2~3年中程水平了,而且是超过市面上平均线的水平
进一步提升
重要标准是独立开发。所以要熟悉市面上常见框架,网络请求的Volley Retrofit 等, 图片的UIL, Picasso, Glide,Fresco等。常见的第三方控件框架PullToRefresh, SlidingMenu等。
只要做到熟练使用框架即可,不用太细致看源码什么的,当然重点还是要练习,自己独立写个项目。这种就需要网上完整的接口了,和工作上相似的那种接口文档样式的不是微博的SDK封装好的。推荐Bmob或AVOS的Restful API,可以参考我的嘿嘿嘿动态图项目用Volley + Glide/UIL写一套。页面烂点没关系,直接参考微博或者其他app的样式, 图标直接用安卓机器人或谷歌提供的默认图标即可
业余时间写,估计1~2个月基本也就完成了,但是技术会有一个飞跃,从主力开发到独立开发。
独立开发是一个很重要的标准+1~
到这里应付公司大部分项目主要功能的, 基本算是OK了。
开发还有一个最重要的技术点是** debug能力**,一般是日志+断点。尤其是断点一定要多使用多练习,既能帮你定位错误也能帮助你了解运行顺序和程序的流程。
写代码一定要细心,但是错误肯定无法避免,逻辑业务类基本都可以断点搞定。
SDK类问题, 比如系统无法拍照啊, SDK方法返回空啊报错啊,推荐google和stackoverflow搜,有道词典翻一下文字部分,代码基本是可以直接看懂的。
业务方面
技术以外业务方面也需要注意,这部分属于经验, 比如多页加载功能服务器要提供哪些数据啊。在列表之外还要提供总数量,然后本地要判断已加载的数据数量是否小于总数量,控制是否继续加载更多。大点的比如微信这样的app需要哪些功能啊,推送系统要如何处理啊等等,这方面我经验差...
无法提供太多参考,所以也吃了亏,要重视这部分。
继续深入
基本独立开发就OK了,可以担当Team Leader了,如果对技术有追求的话再看这部分。我也属于探索中,分享下经验。
关注最新技术
Gitub里android最多star的几个项目,MaterialDesign
MVP, 响应式编程等等,没事逛逛国内的技术论坛,英语好的国外的也可以看看。还有谷歌的官方文档一定要看。
源码研究
一方面看别人的一些核心技术如何实现的,比如UIL的图片压缩,Volley的网络请求的线程池处理。还可以看开源项目, 别人整个app的结构,可以是很好的参考。还有就是面试的时候可能要求高点的也都会问到源码,不用仔细到看每一行。核心部分的比如图片压缩,双缓存能大概记住就行。
代码封装
原则上是去除重复代码,比如两个地方都使用一个功能代码,如果是写两份,那如果要修改的时候就得两次。如果是写在十个地方而且经常修改...
封装没有听上去的那么高大上,把握这个原则就可以了,主要还是服务于开发。
至于MVP什么的都是高级点的,探索中... 到这里可以多看专业的编程书籍继续升级。
细节
应付工作,基本就是运行正常OK,但是要对自己写的代码有追求,那就要注意细节。
最常见的是UI问题,文字歪了,图标小了,不对其什么的,不是技术问题,主要是细心认真。新建个评论后要将新数据增加到列表上而不是重新刷新等等这类细节都要对自己要求严格。这样程序看上去更好了,才会对内部的代码更加追求优美。至于代码, 以前看书里说过,加注释只是一个辅助。真正优美的代码应该是结构清晰命名规范,不要任何注释都可以直接顺畅阅读。
其他
讨论,也就是多去论坛或者和同事探讨技术
实践,最重要的部分,就是多写。
教授给他人,可以在记录笔记后,把自己比较熟悉的部分整理一下发到网上教授给他人。
写教程的过程中你就会发现很多细节都缺失,而且会收到反馈问一些常见的细节的你会忽视的地方, 返回过来帮助你继续提升。
最重要的,为了维持"高人"的颜面,你会逼着自己去更努力的学习,这样才好写出别人都喜欢的教程。
Android进阶学习
接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。
从架构基础开始,分了8个模块来逐步从基础进阶到架构师的环节:
多余的话就不讲了,接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我的复习路线,有任何问题也欢迎一起互相交流,加油吧!
首先是超级详细得不能再详细的Android开发学习思维导图,因为图片实在是太大了,所以我就只把二级目录的内容放出来,更加详细的你们可以点击这里。
接下来就需要梳理知识,提升储备了!(Android移动架构师七大专题学习资源)
- 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
- Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
- 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
- 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
- NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
- 微信小程序:小程序介绍+UI开发+API操作+微信对接
- Hybrid 开发与Flutter:html5项目实战+Flutter进阶
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。
然后再是通过源码来系统性地学习
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
《486页超全面Android开发相关源码精编解析》
刷大厂面试题备战,增加大厂通过率
历时半年,整理了这份市面上最全面的安卓面试题解析大全。
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数
《379页Android开发面试宝典》
以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。
最后还有耗时一年多整理的一系列Android学习资源:Android源码解析、Android第三方库源码笔记、Android进阶架构师七大专题学习、历年BAT面试题解析包、Android大佬学习笔记
等等,这些内容均免费分享给大家。
以上是关于临近面试却还没准备好?大厂内部面试官权威的Android面试指导,带你弯道超车!的主要内容,如果未能解决你的问题,请参考以下文章