【大疆DJI】安卓开发实习历程- 0.前期准备到面试(HR电话初面+技术一面+技术二面/终面+OC)

目录

  • 前言
  • 实习选择
    • 0. 腾讯云
    • 1. 面试复盘
    • 2. 海投简历
  • 大疆HR电话初面
  • 大疆技术一面
    • 0. 面试形式
    • 1. 问题准备
    • 2. 面试经过(70 mins)
  • 大疆技术二面(终面)
    • 0. 面试形式
    • 1. 面试准备
    • 2. 面试经过(80 mins)
  • 大疆Offer Call
  • 后记


前言

笔者不才,来自一所普通211学校的中外合作学院,现在大三,主修电子信息工程,辅修软件工程。因研究生希望申请ECE相关专业,凭借早年一些安卓开发经历,侥幸申请上了大疆创新DJI的安卓开发实习生,方向是无人驾驶的车载中台。

从这一篇文章起,我将试着记录从面试到日常工作的点滴,为以后个人总结和反思提供依据与思路。如果本文为您带来了些许帮助,我与有荣焉。


实习选择


0. 腾讯云

我最开始投递了腾讯云CSIG区域研发中心的暑期实习,理由很简单:我使用了自己域名作为邮箱,依托腾讯企业邮箱服务,于是在3-5月收到了不止6封腾讯云区域研发中心春招/实习的推广。

腾讯云是腾讯的全资子公司,主要是To B(面向business商业政府客户)。虽然员工福利不如深圳腾讯总部,但依托着重庆、西安、武汉、长沙四个区域中心,确实为同学就近实习提供了不少便利。

投递后我心里是很佛系的,7天过去了(包含一个清明),一点回响也没有。当我不想这件事,全心在准备托福考试时,突然接到了一个标记着腾讯的深圳电话,询问我明天是否可以面试。当时星期三早上,托福考试在周六,且因为本地考位满了我要去异地考试。不过我可能由于惊喜,可能因为太年轻,直接答应了:就明天。

连续十二小时搜索公司简介、整理面经、熟悉语法(我从未学过Java,只是初中-大一用Java写了很多安卓APP,参加了不少比赛,但也已经两年没碰过了),我大致汇总成了如下一个10页的Word文档(存在很多问题,后面我会讲,但思路方向差不多):

【腾讯CSIG区域研发中心安卓开发暑期实习面试准备材料】

我的面试思路是:既然我本来不是CS专业,我不应该暴露自己基础知识的薄弱。我的项目经历很多,如有可能我占用较多时间介绍项目,把话题转移到我熟悉的领域。

最后计划一个小时的面试时间,我进行了57分钟,其中开头自我介绍(含项目介绍)花了近30分钟。整体感觉还不错,回答的问题基本全都是我面经总结到了的。原以为进入第二轮面试很稳,谁知一两周后一点消息也没有。


1. 面试复盘

复盘我的面试经过,我才发现我的问题所在,总结如下:

  • 使用项目经历填充面试时间的做法是好的,面试官最后评价也是:你准备的很充分、项目经历很丰富,基于项目。面试官问了我很多对我而言“表面”的东西,我自然回答的很轻松。
  • 面经非常有用,我基本搜集了牛客网、CSDN等平台所有能找到的相关面试问题,逐个摘录下来。面试考察的问题基本全被我提前准备。
  • 接上一条,虽然问题都准备了,但是我只是浮于表面(毕竟时间很紧张),面试官发现你一个问题回答得上,便会继续追问下去,直到你答不上来。我很多问题都只是停留在“基本含义”,稍微深入一点便不知道了。
  • 针对性准备材料。一定熟悉公司在招人板块提到的“应具备的能力”和“工作内容”!
  • 非常重要!一定明白用人单位招人的目的!我人生中第一次面试就是这么挂掉了。当面试官问我是否会继续读研以及人生规划时,我坦诚地说:我会出国,我正在准备托福…当问到我实习的原因,我回答:我希望锻炼自己能力,我想判断自己是否喜欢这个职业(很真实)。我还不经意说了下:“坦白而言”也的确是想增添一段履历以便申请研究生。虽然后面意识到过于率真了,我积极地补充了我喜欢腾讯云,我憧憬这里的工作氛围,我希望日后能够继续来这里工作,但一切无济于事了。大型公司花大价钱培训实习生,正是为了今后能够留下来转正,为自己储备人才,而不是为你个人利己地刷经历。

2. 海投简历

在CSIG没消息2周后,时间已经到了4月20日。原本我打算全心全意准备GRE和暑研,不再考虑实习时,我不经意刷到了实习僧的广告。很早以前我就注册过该APP,却从没有使用过——我不相信自己的实力能够被pick。我抱着试一试的心态(反正简历早已写好),投了阿里巴巴、蚂蚁集团、腾讯云计算(是的我又投了)、爱奇艺、京东、东软集团、大疆创新、海康威视、豆瓣网、小红书、滴滴出行、网易、NIO蔚来、小黑盒、快手、实习僧、CVTE视源股份。

第一天收到NIO蔚来和豆瓣网HR的面试邀约电话,第二天滴滴出行和大疆创新,第三天网易,第四天小黑盒…

豆瓣网需要先做一份试题:【豆瓣安卓开发实习测试题】

滴滴出行需要面试时桌面共享撸代码(实名diss滴滴,面试环境非常差,虽然面试官人很好,但他也是为了刷KPI:明明人已经招满了,仍旧面试我;现场的代码题很基础,不详细展开了)。

后面经过大疆一面,我感觉较好,就陆续放弃了前面和后面的诸多一面、二面(现在回想起来也是赌注很大,但那几天一次次重复项目介绍确实烦了、累了)。


大疆HR电话初面

HR打电话主要是确认你是否能保证足够的实习时间。我投递的并非暑期实习,属于6个月以上的日常实习。由于是中外合作办学,5月中考试基本就结束了,我可以保证5月中开始一直到8月底(当时为了获得面试机会,我甚至承诺可以到10月,因为我们目前都是线上课程)。

接着HR大概问了下项目经历、代码量,问了最基础的如下几个问题:

  • TCP和UDP的区别?(这个问题真的是任何公司都必考)
  • TCP握手回收流程?
  • Linux系统用过吗?简单说几个命令行指令。
  • 了解Kotlin语言吗?

这些问题都比较基础,但需要注意的是,即便我面试的安卓开发岗,历次面试似乎还是离不开数据结构和计算机网络。虽然对于CS专业的学生,这些都是家常便饭,但是我希望对像我一样的非CS学生提个醒,这两部分是重中之重,切不可只准备安卓。

这通电话大概持续了10分钟。接着便发了邮件和短信确认第一次技术面试的时间。


大疆技术一面


0. 面试形式

我之前询问了HR得知技术一面是群面,我很诧异,这怎么弄得和产品岗一样?难不成一个人回答一个问题?一个小时的预定时间哪里说得完各自的项目介绍呢?

我在网上搜寻了一圈也没有找到“技术群面”类似的经历,但我还是压缩了之前接近30分钟的自我介绍,准备了一份3分钟的简介。

面试开始后我明白了,“群面”的含义是三个老师面试你一个人…

这也是为什么我目前认为大疆面试体验是最好的:不光面试官人很nice,你可以从人员安排上体会到大疆对于你的重视(再次diss滴滴出行)。我相信绝大多数公司初面都会是仅仅一位面试官。

入职后我得知,技术一面的三位分别是小组leader(一手带起了大疆软件部一个部门)、未来你可能的mentor、对接你小组的HR。


1. 问题准备

汲取上次面试失败的经验,我把每个问题都深入下去,例如:

  • 不仅了解到Activity的四种启动模式,还应当知道在什么场景下应带使用这些方法。
  • 不仅知道Http的请求格式包含:请求行、请求头、空行、消息体,还应明白request-headers(报文头)包含的内容。
  • 当提到解决滑动冲突时,不仅能说出Activity --> Phone Window --> DecorView --> 布局View的事件传递逻辑,也应知晓View的绘制流程(很容易引申到这里)。
  • 知道了Http和Https的区别,便要能说出Https具体是怎么加密的,对称加密和非对称加密究竟什么原理。

这里我也把汇总好的资料分享给大家:

【大疆创新DJI安卓开发暑期实习面试准备材料(详细版)】


2. 面试经过(70 mins)

面试首先仍旧自我介绍(5分钟),顺便引出自己做过的一些项目。面试官对其中一些项目挺感兴趣,希望我展开,我以屏幕共享的方式展示这些项目的代码、呈现结果、甚至是比赛时用到的PPT(10分钟)。

随后是技术性问题(25分钟):

  • 进程和线程的区别?
  • 线程有哪些状态?
  • 你用过多线程吗?什么时候应该用?
  • 怎么启用多线程?
  • 线程之间如何同步消息?
  • 线程死锁听说过吗?
  • 按照顺序说一下安卓的生命周期。
  • 四种启动模式是什么?
  • 什么时候应该使用这些模式?
  • 你用过哪些模式,为什么使用?
  • 服务用过吗?
  • 广播用过吗?
  • 大概讲一下消息处理机制。
  • 你提到了Looper,详细说一下这个。
  • Java的几种引用说一下。
  • 用过哪些数据结构,大致讲一下特性。
  • 知道Map和List怎么扩容的吗?
  • 内存泄漏是什么?怎么解决?
  • 安卓中怎么处理内存泄漏,用到过哪些工具?
  • 视频流用过吗?
  • Fragment的使用流程。
  • 如何实现图片缓存?
  • 用过什么安卓架构吗?
  • 用过ButterKnife吗?
  • 有看过安卓底层源码吗?

这些问题基本都是我提前准备了的,回答起来较为轻松。不过很多时候面试官的追问确实让人摸不着头脑,甚至问题本身我都听不懂,一些术语我没见过(所以自然就忘了,没有列在上面)。面试官还是很宽容的,他多次说到:没关系,本科生不知道这些很正常。技术性问题的整体流程真的让我感受到了循序渐进,作为没有一点工作经验的学生,面试官不是希望把你问倒,而是鼓励你尽可能说出你所有会的、了解的技术,而在这一过程中,保持自信非常重要。

之后面试官询问我在团队中作为队长的经验(20分钟):

  • 你如何分配任务的?用的什么项目管理或流程监控软件?
  • 怎么确保组内成员进度统一?
  • 如何及时推进项目?
  • 遇到矛盾点怎么解决的?
  • 谈谈你对leader这一身份的看法。
  • 介绍一下你们开会的流程和内容。
  • 如何保证产品符合大众需求?
  • 你项目中最大的一次危机。

在管理这一领域,我确实比较擅长,从小到大无论是班长、学生会部长、社团社长还是诸多比赛队长,这些经历让我回答这些问题游刃有余。我不认为我应该把这些问题的回答放在这篇博客,这是仁者见仁的,且如果你本身具备这方面能力,这反倒是最容易阐述的部分。

正如面试官最后评价我:你不仅知道怎么开发一个产品,更是知道为什么要开发,你知道受众需求和预期,这在你同龄人中是难能可贵的。

最后我询问了他一些问题(10分钟):

  • 如何评价我的面试表现?
  • 如何看待华为鸿蒙操作系统?
  • 如何评价开发岗与算法岗的优劣?
  • 公司工作强度是怎样的?
  • 您怎么看待996的工作?

【结束】(我的问题也都带坑)


大疆技术二面(终面)


0. 面试形式

可能因为技术一面我发挥的较好,我直接进入了终面(听同事提到他们都有技术二面,再然后是终面)。不过终面并非纯粹是和HR谈人生谈理想,也包含了很多技术性的成分。

终面仍旧是三位面试官,后来了解分别是:BU(Business Unit,事业部)部长(从无人机部门调过来的,两款旗舰无人机是他带头设计的)、小组leader、部门对接HR。


1. 面试准备

HR先前提醒我准备好绘制流程图的工具。我很懵,在Android领域最容易想到的就Activity生命周期图、View的绘制流程图,这不等于明示题目了吗?

我在网上搜集了很久,还找到了ActivityServiceManager图、项目需求图、产品迭代优化图(难道我技术不行就转岗了?),但确实没有遇到在面试过程中画这些图的经历。

考虑到终面可能会问很多有关性格、职业发展的问题,我特意又准备了份接近3000字的回答模板(都说面试很多问题带坑,我太单纯了…),包含:

  • 业余爱好
  • 我的缺点(不能把明显是优点的说成是缺点,也不能完全暴露自己的不足)
  • 失败的经历(同上)
  • 过去项目上最大的挑战(技术上、团队上)
  • 为什么选择这份工作
  • 职业规划(道路选择、领域规划、外在条件)
  • 最崇拜的人
  • 可预见的困难,如何开展工作

完整的文件我也分享出来:

【大疆创新DJI终面流程图+可能的问题方向参考】


2. 面试经过(80 mins)

首先仍旧是自我介绍和项目介绍(10分钟),这次一位面试官希望从产品的角度问我一些问题(15分钟):

  • 介绍一下你的项目从创立到最后经过。
  • 需求是如何建立的?
  • 你的商业赢利点是什么?
  • 你们有什么技术壁垒?
  • 怎么保证产品被大众接受?
  • 如何迭代?
  • 作为队长你做了什么?
  • 怎么做项目管理的?
  • …(过于细节的产品问题没有借鉴意义)

然后另一位面试官继续从技术的角度询问(30分钟):

  • 画一下你任意一个项目的流程图,包含功能组件或者布局视图(我打开屏幕共享,使用draw.io本地应用画的)
  • 介绍一下你分别使用了什么技术?
  • 你有没有遇到一些性能优化问题?
  • 安卓的动画机制你熟悉吗?简单讲一讲。
  • 你了解View的绘制原理吗?
  • 用过哪些容器?
  • 离线缓存怎么实现的?
  • 怎么实现的网络通讯?

接着过渡到综合性问题(15分钟):

  • 你觉得你使用过的最好的APP是什么?你为什么这样认为?
  • 你认为对于一个产品最重要的是什么?
  • 如果现在让你接触一个全新的方法,你如何自学?
  • 如果现在让你开发一个应用,你需要怎么做?
  • 你有哪些团队建设的方法?

最后仍旧是我的提问(10分钟):

  • 如何评价我的面试表现?
  • 您认为我非CS专业,对于技术性基础的缺失怎么弥补?
  • 您如何评价算法岗和开发岗的优劣?
  • 您什么时候加入的大疆,您为什么加入?
  • 您怎么看待现在大疆的前景和工作氛围?

【结束】


大疆Offer Call

正式offer下达很慢很慢…我一度以为自己凉了(看网上流程一般3天内就有结果,终面的面试官也告诉我2-3天出结果)。因劳动节调休,我星期日下午完成的终面,到星期二仍旧没有任何消息。我直接向HR打电话咨询面试情况(这并非不合适,如果你通过了终面,面试官会认为你期待着这份工作,马上你们就是同事了;如果没通过,你大可转战其它公司,不必耗着时间;至于HR会怎么评价你,自然也和你无关了)。

HR告诉我终面是通过的,但因为内部审批流程很慢(长达7天),需要耐心等待。她让我添加她微信,方便以后直接联系。

第二周的星期四我终于收到了OC(还是在我微信旁敲侧击催促下)。HR告知了我具体部门和工作内容、薪酬待遇(是真的高)、住房以及相关注意事项,并询问我是否接收offer。我向她询问了几个问题,详细情况她让我等待稍后到达的录用邮件。

即便得到了口头offer,在正式邮件没有下达前,我仍旧很慌。网上不乏有了OC但最后一直没收到录用邮件的。放假前一天负责发放录用信的部门休假,我只能继续等待。

跨越劳动节五天假,第三周的星期四我终于收到了录用函,至此,一颗悬着的心终于放下。
【大疆DJI】安卓开发实习历程- 0.前期准备到面试(HR电话初面+技术一面+技术二面/终面+OC)_第1张图片


后记

对于进入公司实习的准备、公司培训方式、大疆创新福利、工作问题的记录,我会在后续文章继续更新。

你可能感兴趣的:(大疆创新DJI实习经历,安卓,面试,java,经验分享,kotlin)