讲的真详细!如何成为一个更好的Android开发者?成功入职腾讯
前言
文章篇幅较长,建议耐心食用,相信对你有帮助。码字不易,如果有误,欢迎指出。
前部分是面试经历,后部分是附带的问题笔记/推荐回答/书籍。
我的微信小号有一组特殊的朋友。他们从 CSDN上看到我之前发布的《从阿里到网易,一位非985/211本科应届生的一年求职路》后留下邮箱询要面试资料的,我在邮箱发送资料之后我们互相添加微信认识聊上的。
上上周,他们中有几个生通过微信找我咨询了一些找工作的问题,包括面试会问哪些技术,怎么更好的回答,如何怎么选择工作机会等等。和他们沟通交流中可以明显感觉他们的就业焦虑。一方面担心受疫情的影响,心仪的公司缩招或者不招;另一方面则是自己技术的不自信,担心面试不通过。我很能理解他们。
上周,有一个以前在帅张星球认识的朋友,也同在广州。他因为年前公司融资出现了问题而离开公司,现在也正在找工作。他询问面试所遇到的技术问题及如何看待及回答这些问题。我们前后沟通了两天,针对他的问题我一一给出了文字的回答及参考方案,给了我以前面试准备的知识体系及针对每个问题用语音详情地模拟回答了一遍,希望他能收获一些新的知识及回答技巧。虽然我们素未谋面,但是我是真的希望他能找到心仪的工作。
简历上表达出专业技能
1. 方便 HR 查看技能匹配度
任何面试岗位都有要求,部分 HR 也会关注简历与发布岗位的匹配度的。
这里也有个小技巧:你可以灵活的匹配这个岗位的要求(但不要把不会的写上去)。
2. 面试问题的主要来源
面试官,主要通过交流、提问,来确定你的技术深度、广度,以及对该岗位的匹配程度。
那么,提问问题哪来呢?
当然是从你的简历内容中来。
所以你简历中要明确表现出专业技能的掌握情况:
例如这样:
专业技能
- 熟悉Android热修复、插件化、dex,arsc等相关技术
- 熟悉Android 常规的事件分发、自定义控件、动效等相关
- 熟悉面向对象,在意封装、继承,和接口设计
- 熟悉Android性能优化常规手段,有一定的实战经历
- 熟悉Android 四大组件相关framework代码
- 熟悉编写gradle plugin,有一定的实战经历
- 熟悉Https在Android上的适配、以及应用防破解相关知识
- 了解NDK开发,有过一点JNI开发经验
如果你项目比较出彩,也可以将专业技能拆分到项目介绍中去。
这样你可能会遇到一个很 nice 的面试过程:
A:看你做过XXX,说说怎么实践的。
B:我在项目中这么实践的,而且遇到过以下几个问题,是这么解决的。
A:我也遇到过,我是这样解决的,不过感觉你的方案好像也不错。
AB: 开心的深入交流下去。
…
但是,如果你没有写专业技能。
那么遇到好点的面试官,可能会跟你交流项目,从你的陈述中去确定你用到哪些技术才能进行发问。
当然,很多时候面试还挺紧张,一问一答,项目介绍也很简单就过去了。
面试官就很郁闷了,问啥呢?
那只能问他比较熟悉的东西了,可能面试官主要是做插件化相关的,而你主要是做组件化相关的,这种情况就可以能造成你俩不在一个频道了,非常吃亏。
很可能面试流程就变成了:
A:你有没有做过 XXX。
B:没做过。
A:那你有没有做过 XXX。
B:没做过。
A:(内心)这B到底做了哪些事…
B:(内心)问的什么屌问题…
…
当然,千万不要写自己没有深入了解过的技能,凡是你列出来的,会默认你对此有掌握有一定的深度,而不是被提问时,回答:
- 这个我就用了一下…
- 这是我同事接进来的…
- 源码我还没来得及看…
对于第三库原理回答要有针对性
对于回答问题,在回答出问题的同时,尽可能关联到自己所经历的具体的项目场景。
下面我说一个真实的体验,关于第三方库原理,基本上面试都会被问到。
比如问你图片加载框架 freso 的原理:
有的同学回答是这样的:
“首先根据 url,看看有没有缓存,有缓存从缓存中取,没有 build 一个 request,放到线程池执行。”
乍一听好像也没错,但是,任何一个完备的图片加载框架不都有这个流程么。
所以,问你一个开源库,除了回答基本原理流程,你心里要明确知道这个库的核心架构与特点,设计的比较好的地方,可以扩展的地方。
如果项目中还针对做过优化、监控等就更好了。
比如刚才问到的 fresco:
- 你可以说说他的整体设计架构;
- 你可以说说他的图片内存管理机制,在不同的版本手机上,然后深入下去;
- 你可以说说他的Producer/Consumer 机制,以及如何利用这个机制去做扩展,项目中的定制;
- 你可以说说根据自己业务情况做了哪些优化;
- 甚至说一些它的缺点;
…
所以,对于第三库的原理,希望你能掌握:
1.基本原理流程;
2.整体的架构设计;
3.做的比较好的地方,以及这些地方设计与原理;
4.结合项目的定制、优化、扩展;
其实这个建议,也能反推出另一个问题:
如何学习开源项目源码?
很多同学学习一个开源库源码,花费了非常大的力气去梳理代码执行流程,然后终于衔接起来,长舒一口气就结束了,那么就有点可惜了。
根据上面建议的回答可以看出来,梳理清楚执行流程只是第一件事。
你要去深入发现:
1.核心的架构设计是什么样子的?
2.和其他类似开源库相比有什么优势?
3.这些优势是如何做到的?
4.哪些部分可以定制,方便我们日后进行扩展?
最后,虽然有很多优秀的简历模板,各种面试技巧,但是千万不要舍本求末,始终要牢记个人履历才是关键,希望大家随着工作年限的增长,履历也越来越丰富。
希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。
好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群。来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。
最后
由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件,需要的小伙伴可以私信我【面试】免费领取或者点击GitHub免费获取!
%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**
[外链图片转存中…(img-aDpslSGY-1621436975973)]
[外链图片转存中…(img-DQDkrrQZ-1621436975975)]
讲的真详细!如何成为一个更好的Android开发者?成功入职腾讯相关推荐
- Android程序员:如何成为一个更好的Android开发者?经典好文
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gjnSqSEa-1629790958454)(//upload-images.jianshu.io/upload_ima ...
- 如何成为一个更好的Android开发者?内含福利
开篇 说一下我大概的情况.渣本毕业,工作已经有快3年了,从高中就开始玩小破站.无论是学习还是日常放松都是在b站.大学主学的软件技术专业,所以,入职bilibili是我大学时期给自己定的小目标. 在学校 ...
- 如何成为一个更好的Android开发者?写给正在求职的安卓开发
前言 想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~. 学算法真的很痛苦,虽然大数据现在很火,但找到适合自己定位的职业也未尝不是一种合理选择. ...
- 真香定律!一文带你搞懂Android多线程Handler,成功入职腾讯
Google 为了帮助 Android 开发者更快更好地开发 App,推出了一系列组件,这些组件被打包成了一个整体,称作 Android Jetpack,它包含的组件如下图所示: 老的 support ...
- 2021最新Android框架体系架构面试题-如何成为一个更好的Android开发者?送大厂面经一份!
背景 本人双非渣本 今年由于疫情,上半年一直在家里.2月份本来无忧无虑,呆在家里不给国家添乱的时候,发现身边的同学找到了大厂的offer.心里开始有点慌张.本来想在3月份如果能回到学校,就开始考研之路 ...
- 正在准备面试?一线互联网大厂面试真题系统收录!成功入职腾讯
前言 这篇文章主要是分享今年面试心得,现已就职于某大厂有三个月了,近期有很多公司均已启动秋招,也祝大家面试顺利,获得理想的offer! 之前找工作的那段时间感想颇多,总结一点面试经验和人生思考分享给大 ...
- 阿里巴巴三面总结,讲一讲从P5到P8需要掌握的知识点,本人已成功入职。
前言 我是大约三月底开始进行阿里的面试的,由于之前项目经验还算丰富,所以准备时间很少,只是在牛客网上刷过一些题,之前在牛客网上看过一些同学的面经 特来还愿. 文章的开始为大家准备了一些Java架构学习 ...
- 过五关斩六将才入职腾讯测试岗,一个月后离职了?
前段时间,在网上看到一个微博. 一个应届的校招生,目前入职腾讯,工作了一个月.这一个月给他的感受是大量的写测试用例,自己写测试用例的能力熟练了不少,测试技能倒是没有多大的提高,真正需要技术的工作却因为 ...
- 秋招面试!30K成功入职美团,忙里偷闲分享一波【面试经历+面试真题】
前言 今天给大家分享的是我一位幸运拿到美团offer的朋友的面试经历.我也是忙里偷闲,问到了我朋友美团面试的一些真题,以及我整理的一些真题分享给大家. 三面美团: 一面: 离职原因: Zookeepe ...
最新文章
- 《像计算机科学家一样思考Python(第2版)》——2.6 字符串操作
- 昨日,GitHub宣布收购npm,微软或成最大赢家!
- bootstraptable 列隐藏_bootstrapTable 隐藏某一列
- cad批量偏移_学会这12个CAD制图命令,走遍天下都不怕,有没有兴趣?
- kisnetflt64.sys怎么删除
- unity3d 多人寻路堵塞堆叠问题
- Easyui主要组件用法
- 【华为云技术分享】【DevCloud•敏捷智库】读懂敏捷需求管理的4个关键词
- iOS开发应用结构化资源储备
- 微软官方解读 Win11 操作系统
- linux之man命令
- Advance Installer安装问题
- python selenium 元素定位总结(转载)
- HTMLTestRunner修改Python3的版本
- ubuntu无法打开系统设置的解决办法
- 传奇游戏源码 Linux版本
- dlibdotnet 人脸相似度源代码_HAAR与DLib的实时人脸检测之实现与对比
- 数据库系统的结构(三级模式、两级映像)
- 《金狐系统维护盘》五周年纪念版【简洁易用,强大实用】
- 1195 口袋的天空
热门文章
- HTTP 学习笔记------2
- AR剪辑笔记之视频调色
- 中国1978-2008年GDP与M2关系的实证分析
- RadioButton的排版,图标样式修改和图标文字间距修改
- 删除错误提交的bit 历史_软件错误的历史
- 03 优先搜索(dfs bfs)、最小生成树(笛卡尔 prime)、两点最短路径(迪杰斯特拉 Floyd)
- 解决 android studio 中 The emulator process for AVD was killed 的细节
- 15/18位身份证号码验证的正则表达式总结(详细版)
- 教科书般的亵渎(dfs)
- Perl模块使用 = 简短例子代码集合!