目录

  • 前言
  • 实习选择
    • 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 SDK 开发介绍

    大疆 DJI SDK 开发介绍 转自:http://blog.sina.com.cn/s/blog_6266a8840102xn4x.html 大疆SDK开发分为三种:Mobile SDK,Onboa ...

  2. 大疆无人机安卓开发一步步

    大疆无人机spark开发Android版开发踩坑 1.介绍: 实际跑代码就知道有多少坑了,开发安卓端要用到的大疆的SDK有mobile SDK和UX SDK mobile SDK:https://de ...

  3. 大疆DJI无人机GoPro运动相机MOV或MP4视频文件恢复后花屏解决技术思路方法

    从事数据恢复的工作人员.航拍录像从业人员.摄影爱好者等有时会遇到视频文件损坏问题,下面分析的就是常见的情况:大疆DJI无人机GoPro运动相机MOV或MP4视频文件丢失之后(删除.病毒感染或者格式化等 ...

  4. 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointMission

    大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...

  5. 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息

    大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...

  6. 大疆无人机安卓Mobile Sdk开发(四)读取飞机的图片和视频并下载

    大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...

  7. 大疆DJI Android Mobile SDK 开发问题汇总

    大疆DJI Android Mobile SDK 开发问题汇总 前言 SDK Api ANR(调用DJISDKManager.getInstance() 死锁.无响应) ClassNotFoundEx ...

  8. 大疆无人机安卓Mobile Sdk开发(一)简单介绍

    大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...

  9. 大疆无人机安卓Mobile Sdk开发(五)解决M300Rtk H20相机无法获取图片视频的问题

    大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...

最新文章

  1. 高糊视频秒变4K,速度比TecoGAN快了9倍!东南大学提出新的视频超分辨率系统
  2. java猜数字游戏界面_用java来写一个猜数字游戏,要用到界面
  3. 将十六进制的字符串转换成整数
  4. 离合器二自由度扭转振动线性系统仿真分析
  5. 配置SpringMVC框架
  6. 目标检测性能评价指标mAP、Precision、Recall、IoU
  7. xmlspy php,XML Spy实例代码详解(图)
  8. 《人机交互技术》 第七章 Web界面设计
  9. 帝国cms二次开发留言板自定义字段教程
  10. 前端开发-CSS快速掌握上手知识详细总结
  11. 永中office linux卸载,永中office2012forLinux的安装卸载
  12. SpringBoot集成微信支付(二维码支付)
  13. Java基础篇--IO
  14. Cocos2d-x 九宫格 CCScale9Sprite
  15. 大文件MD5计算 C语言 (从OpenSSL库中分离算法:三)
  16. 云计算和雾计算的区别?
  17. 微信视频压缩画质怎么办?微信发视频怎么不压缩画质
  18. 五金行业:强行业性的进销存系统具体看三项
  19. asp.net保存图片
  20. android 获取cpu温度

热门文章

  1. Git学习之回退撤销
  2. 在线工具:电脑怎么提取图片中的文字?图片如何转化为文字?
  3. 初学前端需要掌握的HTML知识点
  4. Kali metasploit 更新以及问题 Unable to find a spec satisfying metasploit-framework (>= 0) in the set.
  5. cpu与主板的区别、独立显卡与集成显卡
  6. QT Android wifi自动重连开发
  7. 风变编程python18_如何看待风变编程的 Python 网课?
  8. Robcup2D足球学习记录【2020.01.18】
  9. 解开神经科学中的交叉频率耦合
  10. 十年经验的软件测试P7总监 给转行自动化软件测试六条学习建议