【大疆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)相关推荐
- 大疆 DJI SDK 开发介绍
大疆 DJI SDK 开发介绍 转自:http://blog.sina.com.cn/s/blog_6266a8840102xn4x.html 大疆SDK开发分为三种:Mobile SDK,Onboa ...
- 大疆无人机安卓开发一步步
大疆无人机spark开发Android版开发踩坑 1.介绍: 实际跑代码就知道有多少坑了,开发安卓端要用到的大疆的SDK有mobile SDK和UX SDK mobile SDK:https://de ...
- 大疆DJI无人机GoPro运动相机MOV或MP4视频文件恢复后花屏解决技术思路方法
从事数据恢复的工作人员.航拍录像从业人员.摄影爱好者等有时会遇到视频文件损坏问题,下面分析的就是常见的情况:大疆DJI无人机GoPro运动相机MOV或MP4视频文件丢失之后(删除.病毒感染或者格式化等 ...
- 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointMission
大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...
- 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息
大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...
- 大疆无人机安卓Mobile Sdk开发(四)读取飞机的图片和视频并下载
大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...
- 大疆DJI Android Mobile SDK 开发问题汇总
大疆DJI Android Mobile SDK 开发问题汇总 前言 SDK Api ANR(调用DJISDKManager.getInstance() 死锁.无响应) ClassNotFoundEx ...
- 大疆无人机安卓Mobile Sdk开发(一)简单介绍
大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...
- 大疆无人机安卓Mobile Sdk开发(五)解决M300Rtk H20相机无法获取图片视频的问题
大疆无人机安卓Mobile Sdk开发(一)简单介绍 大疆无人机安卓Mobile Sdk开发(二)连接无人机,获取无人机信息 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointM ...
最新文章
- 高糊视频秒变4K,速度比TecoGAN快了9倍!东南大学提出新的视频超分辨率系统
- java猜数字游戏界面_用java来写一个猜数字游戏,要用到界面
- 将十六进制的字符串转换成整数
- 离合器二自由度扭转振动线性系统仿真分析
- 配置SpringMVC框架
- 目标检测性能评价指标mAP、Precision、Recall、IoU
- xmlspy php,XML Spy实例代码详解(图)
- 《人机交互技术》 第七章 Web界面设计
- 帝国cms二次开发留言板自定义字段教程
- 前端开发-CSS快速掌握上手知识详细总结
- 永中office linux卸载,永中office2012forLinux的安装卸载
- SpringBoot集成微信支付(二维码支付)
- Java基础篇--IO
- Cocos2d-x 九宫格 CCScale9Sprite
- 大文件MD5计算 C语言 (从OpenSSL库中分离算法:三)
- 云计算和雾计算的区别?
- 微信视频压缩画质怎么办?微信发视频怎么不压缩画质
- 五金行业:强行业性的进销存系统具体看三项
- asp.net保存图片
- android 获取cpu温度
热门文章
- Git学习之回退撤销
- 在线工具:电脑怎么提取图片中的文字?图片如何转化为文字?
- 初学前端需要掌握的HTML知识点
- Kali metasploit 更新以及问题 Unable to find a spec satisfying metasploit-framework (>= 0) in the set.
- cpu与主板的区别、独立显卡与集成显卡
- QT Android wifi自动重连开发
- 风变编程python18_如何看待风变编程的 Python 网课?
- Robcup2D足球学习记录【2020.01.18】
- 解开神经科学中的交叉频率耦合
- 十年经验的软件测试P7总监 给转行自动化软件测试六条学习建议