字节跳动安卓开发实习生面试分享

背景

我目前是大四学生,保研了但是想要找实习充实一下自己。从今年2月份左右开始,学校老师给我布置了一个写安卓app的任务,于是借此机会学习了一些安卓知识。

也就是学了一些皮毛,但我自己依然厚着脸皮投了简历,去面试了字节跳动的安卓开发实习岗,结局当然不出意外地凉凉了。

但是!字节跳动面试官人也太好了吧!在这里必须要夸一下!和他聊完感觉学到了不少东西!!!最愉快的一次面试经历!!!

面试前

面试地点在北京中航广场,头条矮楼。从去年开始到现在,断断续续面过4,5家,字节跳动的等待面试者人数是我见过最多的,可谓壮观。一进大门,右手边全是等着面试的人,在他们的目光注视下我随便找了个位置坐下。

我约的是下午3点,2点半到了,所以还有挺长一段等待时间。就听到坐在身边前后左右几个女士聊天,她们是来面测试岗的,约的是两点,但快三点了也没进去,我一听有些忐忑,难道我要等到四点多?

但是3点03分的时候,两个看起来30左右的面试官叫我名字,让我和他们进去,嗯,还挺准时的。

和他们走过一片嘈杂(真的是很嘈杂,感觉面试那天公司里好像有啥大活动,都很躁动)的办公区下了一层楼,到了他们的餐厅。有些震惊的是,一整层的餐厅被当做了面试场地,好多好多面试官和面试者分散在各个餐桌,看来字节跳动真的急迫想要招到更多人手啊…

两位面试官(我第一次碰到两个面试官面我)随便找了一个餐桌坐下,其中一个面试官解释说他是主面,另一位是旁听的,然后就开始了面试。

面试中

主面试官长得就比较和善,嘴角一直带着温和的笑意。

问:“看你成绩还不错,那你觉得哪一门课你学得比较好呢?”
我听完有点懵,我感觉我属于那种考完试就会自动删除所学知识的人,很多东西当时学会了之后也会很快忘记…思考了一下,答:“数据库比较好一点。”

问:“我看你做了一个项目,那你说说你这个项目中涉及到的数据库内容吧。
答:“我做的这个项目,数据都存在后端了,没有涉及到数据库。”
面试官露出了惊异的表情,问:“你们没有存在本地的数据吗?
答:“比如密码,和用户名这种,我是拿sharedpreference存的,其他数据就是填好直接提交到服务器了,本地没有存储任何数据。”有些窘迫。
“这样啊”面试官理解地点点头又道:“那比如网络不好的情况下,数据不就没有了。”
“这个情况确实有,但我们就没管了”我这么说着,更窘迫了,觉得自己太菜了。
但是面试官,好像也没有很在意,就温和地笑着说:“那你们应该在本地建数据库保存一下的。”我连忙快速地点头(唉)。

问:“那再问问基础性的吧,数据库怎么提高查询速率?
答:“索引”
问:“如果一次性插入100条数据怎么办?不用for循环这种形式
答:“我们当时数据库课设,数据量都比较小,就是insert一条一条插入的,这个不太清楚…”
问:“没听说过事务吗
答:“啊,这个有点印象,但是当时就是放在最后一章,简单讲了讲概念,什么原子性之类的,没有实际运用过。” 我非常窘迫。
面试官却很理解的点了点头说:“确实,大学课本和工作区别还是很大的。”
哇,第一次见到为面试者说话的面试官!

问:“那你对计算机网络和操作系统的理解怎么样呢?
答:“计网感觉就是偏向硬件,链路传输等感觉学的时候有些抽象,理解得不是很好。操作系统也是。”
现在回想自己说得,唉,我都不好意思写在这里。

问:“行,那我还是问点基础吧,你说一下进程和线程的区别
emmm,这个问题真的可以算得上是面试必考了,我面过三家都问了这个问题。
回答得比较流利,面试官竟然说了一句很好?!
第一次听到点评答案的面试官。

问:“进程之间的通信方式?
这个就尴尬了,操作系统学过,很基础的问题,我完全没想起来。
提示:“socket知道吗?还能再想起其他通信方式吗?
我就在那儿emmmm…
面试官就放过我了。

问:“那接下来咱们做两道题吧,你也别紧张
于是递给我了几张白纸。
接着问:“青蛙跳台阶,一次可以跳一个,或者两个,问n个台阶几种跳法
我知道这个是斐波那契数列,但是我好久没看算法了,维持着我学过就忘的秉性,我做了比较长时间才做出来……(真想捶死我自己)

但是,面试官很有耐心的等着我,看完我答案居然好脾气的说,嗯,做对了。但是也没有问我第二道题了(哭)。估计嫌我太费时间了。

然后接着开始了提问。
问:“你做过安卓项目,说说你做项目中比较熟悉的东西。”(大概这个意思,记不清了)
我好像主要提到了okhttp,但是也没有很深入地说。
面试官又问了我一些关于handler的问题,和网上的一些面经提到的比较一致,比如handler的作用,以及在子线程中如何使用handler等。因为看过一些,所以这部分回答得还行。
好像还问了hashmap,以及它线程是否安全,该如何线程安全地使用,有点记不清了。

问:“你有用到recyclerview吗?具体使用方法?
答:“用到了,我是通过视频教程,学了一些基本的使用方法,创建适配器,然后绑定数据,设置点击接口这样。”感觉可能讲得比较浮于表面吧,面试官就是轻轻点了点头。

问:“那你除了通过视频学习,还有什么学习方式呢?
答:“会看一些博客,书籍。”
面试官稍微皱了皱眉说:“没有看过官方文档吗
答:“这个确实没有。”
那你应该看一下的,博客有些散,而且不够新。
“好的!”我重重点头。

问:“说一下二叉树的层序遍历
回答之后,问的问题大概就是这样了。

问:“有什么想问我的吗
答:“学习安卓的方法”(毕竟我比较菜,也还在自学阶段,问不出啥高深问题)

面试官说:“多读官方文档,可以自己模拟环境比如多线程并发等,多看网上大型的源码,多练习。
大概就是这样。

面试后

面试官送我出去的路上还问我毕业之后怎么打算,听我说要接着上研究生,像是替我松了口气似的。唉,大概觉得我这水平找工作有点困难吧…

然后又和我说,当时我提到okhttp如果能对比一下其他方法也算是亮点,看东西还是要深入。

我非常感激地点了点头,说了再见。
出了大楼,居然觉得阳光无限明媚,心情非常愉悦。虽然面试没有通过,但也算是取取经,回去自己好好学吧!

PS. 每次面试完,都想把本科上过的基础课,什么数据结构、计网、操作系统重新学一遍,唉!

你可能感兴趣的:(面试)