美文网首页Android技术知识Android开发Android开发经验谈
2020年Android百度,华为,阿里面试之路,一些经验总结!

2020年Android百度,华为,阿里面试之路,一些经验总结!

作者: jett老师 | 来源:发表于2020-07-22 17:28 被阅读0次

    前言

    之前因为一直在忙于秋招,也没有进行进一步的学习,一直都在复习已有的知识,寻找自己的不足,所以很久没有看我的公众号了,下面一大片都是要求我,提供一些学习路线,进阶方向,学习资料的,这不是马上到了秋招,金九银十(预热期)估计大家都等急了吧!今天他来了。现在拿到了百度,华为以及阿里的offer(百度已签),打算结束秋招了,然后就写一篇自己的秋招的经历,对自己秋招时光的一个总结,并且给马上要找工作,换工作的你们一点建议吧。

    自我介绍

    先介绍一下我吧,我是一个双非学校的应届生,但是我并不是从大学一开始的时候就是学习Android的,我大一到大三上学期都在搞ACM竞赛,一直到去年打完青岛现场赛才退役(苦逼的没有拿到牌,如果拿到了可能秋招之路就会好很多吧)。
    其实很多的ACMer在退役以后都会转入对算法岗的学习,在我面试的过程中也遇到过很多的面试官问过我这个问题。我个人不是特别想考研的,但是对与算法的学习可能还是需要借助研究生的实验室的资源,在本科可能我不能找到这种的资源,又因为我原来有学习过一点Android,所以我就转入了对Android的学习。
    所以可能因为没有学习多久的原因(之前一直在网上跟着学习),我在春招没有找到实习,当时的面试官都是对于我的算法和数据结构这块非常认同,但是对于技术或者说是项目希望我能更好的学习,于是我4-5月都一直在写我的一个小项目SHIN_Music音乐播放器,但是因为这件项目我错过后续的秋招。所以我暑假就只能在家里自己进行学习。在这里要感谢几位学长,对我的关心和指导,给了我很多的面试内推,以及面试的时候的一些建议。

    面试之旅

    华为

    我参加的是华为南研所的FX招聘,不是正常的秋招。FX招聘在四月份就开始了,以至于我在发现迟迟不发offer的时候才发现这是秋招不是实习生招聘。

    FX的网申、笔试和面试与实习生招聘基本重合,因为实习生招聘已经投过简历了,所以FX的网申就是报个名字的事情。

    FX的笔试比较水,就是前面几场实习生笔试的最后一题的集合,然而我正好把前面几场实习生笔试的题都做过,所以这个笔试对我来说也是走过场了。

    FX的面试流程除了面试官不一样外其他的都和实习生招聘一样。一面面试官是南京地区消费者云服务的一个大佬(我猜),全程没问什么计算机问题,就是对我的科研项目基于流式二维码的数据传输系统很感兴趣,还想让我现场演示(这时我掏出了老板配的华为平板,顺便吹了一波华为)。整个面试过程中感觉面试官说的比我多,给我详细介绍了消费者云主要做什么、南京有哪些团队、做出来的东西、未来的计划等等。期间他问到我说为什么实习的时候投的软件开发,而现在投的是Android开发?我说可能是忘了改了,我应该投软件开发的,本来投的Android开发,因为实习面试的时候面试官说南京没有Android开发,于是就改成软件开发了。这时面试官一脸震惊,说那个面试官是谁这么不负责任,南研所有几百人在做Android开发,而且从应用层到framework层都有人做,也在大量招聘Android开发,哪里不招了。我一脸懵逼,于是也顺着他一起吐槽实习面试的面试官了。

    愉快结束了一面紧接着就是二面了。二面面试官看着有些年纪了,那气场一看就感觉是大佬,说话也不紧不慢,简直VP既视感。全场也没问啥计算机知识,甚至都没问太多技术相关的问题。比如开场问我多大了,这年纪上研究生太年轻了,于是跟我一起反推什么时候上初中什么时候上小学。然后还问到我本科专业,我说我本科学武器的,他说武器好啊,报效国防,然后问我为啥转专业,我就掏心掏肺说我喜欢计算机之类的。总之聊的很多,但技术方面的很少,就像是普通的聊天一样。

    六月份面完后一直等到了九月底才收到offer,也算是我秋招史上最长等offer时间吧,中间HR在群里各种沟通各种宫斗大戏后面再讲。九月底接到offer电话当场就拒了,理由是等了太久已经签了其他公司。

    面试题(只记得大概)

    第一面是初面:

    1. 包括自我介绍

    2. 工作经历

    3. 做过哪些项目,在项目中扮演什么样的角色,遇到了什么困难,是怎么解决的。

    4. 开发常用的一些库等等

    5. 最后问了一些职业规划

    第二面是笔试:

    java基础的比较多,两道算法题,然后是Android相关的题

    第三面是技术面试:

    1. 面试官开始让介绍所做的一些项目,技术点之类的

    2. 然后就逮着技术点进行深入挖掘

    3. 设计模式六原则

    4. 子线程怎么用handler

    5. 问网页连接怎么启动本地app.

    6. android四大组件Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。

    7. ANR(ActivityNot Respone)(无响应)先介绍下Main线程(也称为UI线程、主线程)

    8. 功能: 1.创建UI控件
      2.更新UI控件状态
      3.事件处理 限制:Main线程不建议有超过5秒的事件 出现条件: 当用户输入事件5s内没有得到响应,将弹出ANR对话框 广播接收者的onReceive()执行时间超过10s解决方案(原则): 所有可能的耗时操作都要在子线程()中执行 常见耗时操作:I/O:网络操作SDcard数据运算

    9. FC(Force close)原因:1.Error OOM(out of memory error) StackOverFlowError

    10. RuntimeException解决办法: 看日志

    11. 针对项目问了具体的问题

    12. 问一下Java的基础技术问题,多线程,jvm相关。Android部分主要问的也是一般的基础性的问题。

    第四面是综合面

    1. 为什么离职

    2. 有没有职业规划

    3. 对公司未来的展望

    4.以前公司的薪资待遇

    1. 期待的薪资

    百度

    其实本来就不想去百度,但为了凑齐BAT,也就投了,也没找师兄内推,直接网申。投的是上海的Android开发。

    百度有统一的笔试,用的赛码网平台。笔试题记不清了,印象最深的是有一个简答题题目说明了APP的类型等,让写出<intent-filter>,当时就感觉日了狗了从来没见人考过这个现在还要我手写出来,最后还是靠着记忆和想象写出来了。笔试题我觉得做的挺好的,但还是在意料之中跪了。为啥?因为百度招聘官网已经明确说了上海的Android岗位只招8个人,哪轮得到我。
    面试题

    附:点击查看【完整版

    阿里

    阿里的实习生招聘我参加了内推批次和正式批次一共两场。

    阿里的内推批次和正式批次的时间是完全错开的,即在内推全部结束后才开始正式批次。需要注意的是,阿里主要部门(集团、菜鸟、蚂蚁等)的招聘几乎全部放在内推批次中,而正式批次绝大多数是非主要部门(高德、优酷土豆、虾米、钉钉等)的招聘。

    阿里的内推没有统一的笔试,在内推成功后,马上就会收到素质测评和编程测验的通知。然而这两个测评其实并没有太大意义,做不做都会很快(一两天)就开始面试的。阿里内推批次的面试全都是电话面试。我在内推后的第二天就接到了一面的电话,部门是菜鸟/无线(记不清了)。

    内推一面大概40分钟,主要问的计算机基础,如HTTP、TCP、并发、二叉树遍历、字符串匹配算法等,还让我简单介绍了我做的两个项目。因为我的其中一个项目做的APP中有调查问卷的发放和收集,所以问了我如何防止有人刷问卷;我回答说可以限制IP、记录设备唯一编号、监测做问卷模式等,但都存在一些漏洞。最后我问他Android开发过程中是不是会遇到很多兼容性问题,面试官回答说会遇到,还详细说了他们有专门的大规模真机测试来检查兼容性。一面总体上答的还行,几乎没有涉及到Android相关的问题;因为是电话面试,也就没问什么算法题。

    内推一面两天后就接到内推二面电话了。二面大概50分钟,主要问了Java GC机制、Android APP启动过程、Android事件分发、Android View绘制流程。GC机制因为刚看过所以答的比较好,然而因为阿里面试开始太早,我还没来得及复习Android,所以Android相关的问题答的一塔糊涂,比如APP启动过程就支支吾吾乱说一气,View绘制流程干脆说不知道,跟面试官说我知道Android事件分发流程,于是事无巨细说了好长一串,最后被面试官吐槽根本不熟悉Android。最后问了面试官对国内手机厂商乱改Android Framework层有什么看法,面试官回答说他也很无奈,但阿里一般都和手机厂商有合作,直接进白名单,所以没有碰到太大问题。

    内推二面后过了一周多才接到内推三面的电话,而且是在周末的晚上11点的时候。三面大概20多分钟,主要问了做过的项目、Java基础、最近看的书、到阿里想学到什么。我不太确定这轮面试是技术面还是HR面,因为是晚上11点和女票刚回到酒店完全不在状态,而且面试官也似乎很不耐烦,加上那段时间一直在准备技术方面的问题对这些HR面相关的问题完全没有准备,所以答的很啰嗦也很糟糕,好多都没有答到点子上。最后我问面试官我答的怎么样,面试官也没有说什么就急忙不耐烦挂电话了。

    内推三面结束后就觉得应该是挂了,然后又等了一星期,官网上就从“面试中”变成“已回绝了”。

    等到阿里正式批次开始的时候又投了正式批次,正式批次有统一的笔试,笔试用的阿里自己的系统;笔试内容记不清了,但一二十个选择题记忆深刻,好多超出Android相关知识的题目,好多做不出来的智力题。

    正式批次的笔试似乎只有很少数的人通过了(主要是因为正式批次的岗位很少),幸运的是我也通过了,在官网预约面试时间后就开始准备视频一面了,面试的部门是钉钉(像之前说的,正式批次的部门都比较边缘)。

    正式一面是视频面试,大概不到20分钟,是我实习秋招体验并列第二差的面试。主要问了Activity中能不能执行耗时操作(就是UI线程相关)、Android中有哪些内存泄漏的情况,然后就是共享屏幕写代码:实现单链表的插入删除和查找。为什么说体验非常差呢?首先整个面试就问了两个问题,而且这两个问题几乎任何有Android开发经验的都能对答如流,并且我回答完后就没有然后了,没有继续深入问;其次那个代码在数据结构教材上讲链表的时候一定会讲,而且也没有什么技术含量。最后面试官说还行,也没让我问他问题就结束了。

    一天后官网状态就变成“已回绝”了,累觉不爱。
    面试题以及答案整理

    由于文章篇幅问题,面试题和答案都整理在了我的石墨文档。点击【石墨文档

    我对Android招聘和秋招的建议

    我该不该找内推
    内推在绝大多数情况下都是好过走正式批的,其一内推可能免笔试,避免了笔试不通过的概率;其二内推一般面试更早,更早也就意味着机会更多;其三内推能够获得更多面试反馈,内推人可以查询到面试的状态、招聘流程走到了哪一步等。

    我该从哪里寻找内推机会
    我认为最先寻找的是自己的师兄师姐,因为他们不仅能提供内推机会,还会告诉你公司部门结构、主要业务等,能够更加全面选择投递部门,不仅如此,面试流程中还能经常向他们询问面试情况等。其次可以找朋友圈或者校友帮忙内推,同样他们也能及时反馈面试情况等。最后就去满大街找内推广告了(比如牛客网讨论区),按我的经历,这些内推很难后续联系上内推人。

    我该什么时候网申
    注意这里网申即包括内推网申也包括正式批网申。网申当然是越早越好了,我就吃过网申太迟的亏。一者,有些内推可以免笔试,而网申早一般获得免笔试的几率要大一些;二者,有些内推/正式批不需要笔试(如阿里内推),而越早网申就会越先面试,要知道招聘是一个萝卜一个坑,面试越早拿到名额的概率也相对越大;三者,如果有统一笔试的话,网申早也不亏,反正还是得等到统一笔试。

    简历该如何写
    计算机/互联网的简历可能不像其他行业的简历。就我来说,简历里写简单的个人信息(姓名、出生年月、专业、学历、毕业学校、邮箱、手机号等)、个人博客网址(如果有)、GitHub链接(如果拿的出手)、熟悉的编程语言和熟悉程度、项目/科研经历(详细写)、实习经历、发表论文情况、获奖情况、英语能力就好了,而不必写如是否党员(要投如华为之类的公司还是尽量写)、班干部/社团经历(要投如华为之类的公司还是尽量写)、兴趣爱好、主修课程、非计算机/互联网相关的实践/项目活动、非奖学金/计算机/互联网相关的获奖情况等。以上个人观点,但我的简历按这写从来没遇到问题。

    项目经历重要吗
    项目经历是极其重要的!很多面试都是以“来讲讲你的项目经历”开始的,根据我的经历,许多面试光讲项目经历就会占到面试时间的一半。项目经历不仅会让面试官觉得你更靠谱,而且更重要的是从项目经历中面试官能够挖掘出共同的话题,让面试“有的聊”。所以项目经历不仅重要,而且还应当花大力气去为面试梳理和抽象,主动制造话题。

    什么样的项目才拿得出来
    简单来说,你的项目经历多的话拿出最好的两三个,项目经历少的话拿出两个也好。怎么定义“好”呢?一是要有趣,讲出来能够吸引面试官的兴趣;二是要有一定难度,至少能够回答出“你的项目有什么难点”;三是要和面试岗位相关,面试官也是有自己的擅长领域的,你要是讲一个面试官完全不了解的领域的项目,多半是雾里看花,面试官早早就没有兴趣了。

    没有项目经历该怎么办
    如果你真的在简历上不写项目经历,面试官问有没有项目经历时回答没有,那么你就非常危险了。我见过好几个同学谈面试经历,说当面试官问到有没有项目经历,他回答没有之后,面试官的态度就突然变了,然后就草草结束了面试。而且当真的没有项目经历的时候也别慌,不妨把你对“项目”的标准放低,知乎上不是也有大牛说把课程设计做的贪吃蛇当项目讲都没问题吗?要注意项目low不low是面试官的评价,而并非你自己的问题;但你主动说没有项目,面试官想帮也帮不上忙了。最后,如果你发现自己还没有项目经历,而面试又在一两个月后,那为何不现在就开始想个项目动手做呢?

    需要在简历中放上GitHub链接吗
    简历里放GitHub链接是一种很Professional的做法,好比是在向面试官说“我既有项目,代码也随时给你看,而且写的还工整”,是一个绝对的加分项。但在你放上GitHub链接前,需要先自己看看“够不够格”放上链接。首先,你的GitHub上“绿块”的数目要足够多,“绿块”代表了过去一年中每天提交代码的次数,也就是说你可能需要有一年的积累才够格把GitHub链接贴上,你想想面试官打开你的GitHub发现你的代码提交全都集中在最近一个月是怎样的心情?其次,你的GitHub上需要有项目,可别是每次提交的都是乱七八糟的东西充数的;再次,GitHub主页应该仔细包装,比如设置头像、organization等。

    发表论文重要吗?
    像计算机专业的发表的论文都是A/B/C类会议,如果你有发表的论文当然要贴在简历里了,面试官可能问到,也可能不问到,但重要的是,公司在评sp的时候论文是一个很重要的参考!有顶会一作的论文只要面试通过,基本是大sp随便拿。所以不要想着发论文是给老板搬砖,也是在给自己赚钱呢。

    需要实习吗?
    简单地说,需要。不过实习需要权衡很多,首先,实习岗位一般就是秋招投递岗位,不要一开始计划实习一个岗位,秋招再投递另一个岗位,只有觉得实习后岗位不如自己预期再换;其二,实习需要和导师沟通清楚,众多研究生导师原则上是不同意实习的,为实习跟导师闹翻得不偿失;其三,不要计划一边实习一边准备秋招,实习时可能有各种各样的工作,很难静下心来准备秋招,而秋招一般在实习期间,或实习刚结束就开始;其四,实习意味着少了两个月的秋招黄金准备时间,实习一般在暑假,而暑假两个月在学校专心准备秋招可能会有很大提升。

    另外还要注意实习的公司,如FLAG之类的国际大厂、BAT之类的国内第一梯队大厂就放心去,TMD之类的第二梯队就要想想值得值得去(是不是搬砖),而其他的公司就需要慎重考虑了(个人意见),需要权衡实习收益和秋招的代价。

    有其他面试疑惑的可以加入我的群,大家一起解决!

    相关文章

      网友评论

        本文标题:2020年Android百度,华为,阿里面试之路,一些经验总结!

        本文链接:https://www.haomeiwen.com/subject/vizzkktx.html