八年老Android开发谈:垃圾中的战斗机,offer都发了

接下来我给大家分享一下我的经历吧!

分享的多也没有什么用,就举例一次映像十分深刻的吧。一次很偶然的机会,被猎头推荐到阿里巴巴面试。简历被送到阿里后,会有几天简历审核期,这个过程会先从简历上筛选掉一部分人。简历审核通过后,会有负责技术面试的人对你进行一个电话面试,我当时接到电话感到很突然,因为简历都已经投递一周了,然后就匆匆跑到楼下进行电话面试。

面试问题还记得一些,一部分已经忘记了,为了防止再忘记,所以便写了出来。

1:你是如何理解Android操作系统的。

2:是否熟悉framework层,如果熟悉,那就对framework做个简介。

3:是否熟悉多线程,如果熟悉,介绍下线程。

4:对象锁和类锁是否会互相影响,会举例子让你判断锁的使用是否恰当,并说出原因。

5:是否熟悉Lopper架构,如果熟悉说下其原理,如果你自己实现,你会怎么实现。

6:自定义控件原理,及消息分发流程。

7:binder工作原理。

8:ActivityThread,Ams,Wms的工作原理。

9:如果工作中需要修改framework,你如何寻找切入点。

电话面试就这么多内容,自我感觉给回答打了75分,然后就是等通知;又隔了两天,阿里的HR打电话让我去指定地点面试,心里有点紧张,因为想给马云打工的人太多,竞争激烈程度可想而知(哈哈放平心态就好了,每个人都会有一个最好归宿)。

图片

和技术负责人聊了聊,大概2小时左右。

主要聊的是frameworkbinder并发容器线程并发对象锁,再就是ndk使用的是否熟练,是否熟练hook技术等;还有你遇到过什么技术难点,是如何解决的。还有你读过什么开源工程,有什么感想,你是否考虑过做一个开源工程。最后就是设计一个多线程并发处理大数据量,然后刷新UI的架构。

最后结果是没能达到他们的期望,跟技术负责人聊的较开心,就留了联系方式。

**面试总结:**通过这次面试知道自己还有哪些不足,要继续努力,功夫用在平时很重要。

面试收获,注意看!!非常重要!!

一、提前准备面试所有问题的答案并重复练习

众所周知,面试就是由面试官向面试者提问,来了解面试者个人基本信息,考察面试者的工作态度、综合能力和专业能力。想要顺利通过面试,我们就得提前了解面试官经常会提问一些什么问题,这样才能针对性的进行回答。

二、重新回顾简历的工作经历和结果很重要

HR 们会通过询问你工作经历中的具体细节来判断这段经历的真实性以及你的专业程度。实习等工作经历是体现你专业能力的重要指标。

如果你无法详细地讲述工作经历的细节,HR就有可能会怀疑你伪造工作经历。或许离你上一次的工作经历已经过去了很久,你可能已经忘记了很多细节。但没关系,你可以通过下面这样来回答:

  • 你做了什么工作?

  • 这个工作的目的是什么?

  • 这个工作发生在什么时候?

  • 由谁参与了这个工作?

  • 在哪里开展的工作?你在什么情境下做的工作?

  • 你如何做这个工作?结果怎么样?

另外,一定要记住,最好使用具体的数据来证明自己的能力,数据往往比天花乱坠的形容词来得更令人信服。

三、针对岗位量身制作一份求职作品集

一份好的求职作品集在面试中可以说是必杀技。一份优秀的求职作品集,一方面说明你对这次面试重视程度,让 HR 体会到你的用心;另一方面,可以展现你出众的专业技能。

你可以根据公司发布的招聘信息,提取关键词。提取岗位招聘信息中的关键词,熟悉工作流程,然后亲手去执行几遍,向HR展示你的成果。当然,如果你并不了解这份工作,也可以请教业内人士,指导整个过程,帮助你完善作品集。

四、自我介绍时,从这 3 个方面入手

无论是什么样岗位的面试都不会离开自我介绍,自我介绍那该说什么?正确的逻辑应该是:先表达自己对这个行业、这个岗位的热爱,然后表现自己的经历与岗位相匹配,最后突出一下自己在工作中的优秀表现。

  • 热情:对行业、岗位和公司的热爱

  • 匹配:展现你与招聘岗位的匹配度

  • 出众:请将你的亮点展示出来

五、如何去回答综合能力题

在由专业HR面试的时候,最重要的环节其实是综合能力层面的提问。综合能力层面的问题一般是用来考察面试者的反应能力、沟通能力、学习能力、问题解决能力和领导能力等等。我们在回答的时候,尽量将你的思维过程讲明白,把结论讲清楚。

一般回答综合能力题的时候,你可以这样做:

  • 什么工作?

  • 你为什么要做这个工作?简单说明一下当时的背景

  • 怎么会出现这种情况?你如何解决了这个问题?

  • 你收获了什么经验?你得到了什么结论?

六、如何去回答专业能力题

在专业能力的考察中,面试官会挑选简历中感兴趣的条目进行提问,考察是否具备专业的工作经验。

那么应该如何回答这一类的问题呢?你可以这样去回答:

  • 情境:指你所做的工作的背景信息,比如你要在简历中介绍一次社群运营的经历,那么就先简单说明你是因为转化率不高,所以需要做社群运营;

  • 任务:指你工作的目的,就是你要达到的 KPI,或是要解决的问题,比如你运营这个社群是为了达到 3% 的转化率;

  • 行动:指你为了完成任务而采取的行动,是指具体的行为,比如为了帮助学员学习更多知识,你在社群里进行了 5 次分享等;

  • 结果:指你的行动最终达到的效果,比如你最终达到了 3% 的转化率、99% 的用户满意度等。

当面试者在描述一段工作经历时,如果以上四个方面不完整,面试官就需要就没有提及的方面进行提问。所以我们尽量按照这个模式去回答专业能力层面的问题。

七、从岗位、部门、企业三纬度向雇主提问最后的问题

当 HR 提问完上述的问题时,HR 总会询问你:“你还有什么问题要问吗?”不少人会选择回答说“没有”。但其实,这样会让 HR 认为你对岗位和公司没有多大兴趣。但是说“有”,我们该问什么呢?这个模块来告诉你答案——从岗位、部门、企业三大纬度提问。

八、没答好的问题可以通过邮件补充更好的回答

我想大家都有经历过吵架时突然被对方怼的哑口无言,回到家才想起应该怎么回怼的尴尬。虽然和面试官之间并非吵架,但总会有一两个问题没能回答好,之后才想到应该如何回答。不少人只会捶胸顿足,闷闷不乐:“要是那时候我这么回答就好了。”但其实,还有补救的办法——给 HR 发一封补充回答的邮件

请主动的询问 HR 的邮箱。然后针对没有回答好的答案,重新组织语言,通过邮件补充更好的答案**。**当然,也可以在邮件中插入你的作品集或者一些补充材料会起到更好的效果。

总结

总而言之,成功是留给准备好的人的。无论是参加什么面试,都要做好充足的准备,注意好面试的礼仪和穿着,向面试官表现出自己的热忱与真诚就好。即使最后没有过关,也要做好经验的总结,为下一次面试做好充足准备。

就先写到这,码字不易,写的很片面不好之处敬请指出,如果觉得有参考价值的朋友也可以关注一下我

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

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

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

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

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

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

尾声

评论里面有些同学有疑问关于如何学习material design控件,我的建议是去GitHub搜,有很多同行给的例子,这些栗子足够入门。

有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现**NDK并不是神秘的东西,**你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。

一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。

在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。**
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。

一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值