昨天面试美图,将整个过程记录一下。
收到美图面试通知的那天晚上,我一夜没睡。
因为我一整个晚上都在和蚊子打架,直到第二天早上6点才渐渐睡着。
第二天复习,准备面试。
第三天早早起床,一路风火赶往厦门,面试约的是下午两点,我大概一点十分到厦门软件园二期。
一路上看到很多公司,比如前同事所在的美亚柏科,还有4399、美柚、纵横集团,还有给了我offer的易联众。
美图在厦门软件园二期有好多个办公地点,我一开始走错地方,跑到6号楼去了。
刚到公司时,填了一下应聘表格,在外面休息区坐了一会儿,然后HR拿了一份笔试题给我,当时前台旁边的两间洽谈室都有人在进行面试,于是HR让我到楼下旁边的咖啡厅门口做题。
笔试
一、选择题
1234题我忘了。
5、整型数组8个元素,要选出最大的和第二大的元素,至少需要进行几次比较?
A、7 B、8 C、9 D、10
二、编程题
1、选择排序
2、二分查找(即折半查找)
3、将一组数的一个或多个数按照原来的顺序换到该数的末尾,称改变后的数列为原来数列的旋转数列,如“123456”的旋转数列包括“234561”、“345612”、“561234”等。若给定数列S、T,和它们的长度lengthS、lengthT,试判断T是否是S的旋转系列,如S=“2345”,T=“3452”,返回true。(题目描述可能不够准确,但大概意思就是这样)
三、简答题
1、px、dp、sp有什么区别?以及它们的作用。
2、什么是ANR?如何避免?
3、Activity的启动模式及应用场景。
4、什么是内存泄漏?内存泄漏产生的原因是什么?试举例说明。
5、Android事件分发机制。
做笔试题时,身后几个其他公司的大佬在商谈,谈融资谈规划,聊游戏行业聊明星主播,商业气息在身后风起云涌。
做完笔试题后,拿给HR,在洽谈室等了几分钟,然后一个面试官走了进来。
下面的面试题没有严格按照面试官问我的先后顺序来写,完全根据我的记忆,想到哪个先写哪个,但大致的问题顺序没错。
一面
1、自我介绍
2、编程题为什么没做?简答题不是应该更难吗?
(笔试时间一开始说30分钟,开始答题后延长到50分钟,我做完时已经超过了14分钟,所以共用时64分钟左右吧。选择题做完后,我是把编程题跳过,先做简答题了。在做简答题时觉得答题纸不够用,我还让HR帮我多拿了一份来,但是到后面发现时间不够,所以我简答题也写得很简略,新的答题纸就没用上,编程题只写了思路。或许是我做得太慢了,简答题花了太多时间了吧。)
3、Android线程间通信方式,以及需要注意的地方。
(AsyncTask、Handler、新建Thread或实现Runnable,需要注意的地方我只回答了需要注意避免内存泄漏)
4、讲一下四大组件。
5、广播注册方式有嘛两种?有什么区别?动态注册方式需要在AndroidManiest.xml注册吗?
6、平时都在学习什么技术?学习方式?有做过什么练手项目吗?(有个练手项目,是完全模仿种子习惯的设计、配色和动画效果,只进行了UI的模仿,功能都没实现)
7、介绍一下第三个项目(旅游出行助手)
8、有考虑过上线吗?为什么不做上线?(我答两点:数据来源暂时依赖第三方、应用内的推荐系统做得不够好,只用到协同过滤,推荐效果不好,而且没有用户历史行为数据,存在冷启动问题)
9、有个人职业生涯规划吗?
10、掌握哪些语言?(聊到python,因为最近买了些机器学习的书)
11、三方协议签了吗?(我回答,签了。。。)
12、让你学一些新技术,你会去学吗?比如iOS、python等。(我从个人兴趣和公司项目需求两个角度来聊,从个人兴趣来看,得看是学什么技术;从公司项目需求来看,我会去学,就像我在实习公司做的事情一样,项目需要,那我就去学)
13、如果你适合产品经理岗位,相比编程,你会选择哪个?为什么?
…
一面结束后,等了几分钟,另一个面试官走了进来,开始了二面。
二面
1、自我介绍
2、编程题为什么没做?简答题不是应该更难吗?
3、5分钟手写冒泡排序
4、学Android多长时间了?
5、项目:
1)介绍一下整个项目
2)团队一共几个人?如何分工的?你在团队里的角色是什么?
3)Android端,你负责开发哪些模块?
4)为什么需要市场调研?怎么进行调研工作的?
5)相比同类产品中的优秀竞品,你们的产品有哪些做得比较好的地方?(我从受众、研发内容上的创新这两个角度讲了)
6)A项目x功能,有考虑到路线问题吗?(没有,我还另外自我吐槽了A项目的y功能,及当时考虑到的不完美解决方案。)
…
6、讲一下Bootstrap和jQuery这些你用过的前端框架的特点和区别
7、你第一次接触这些前端框架时,是怎么学的?
8、聊一下Android进程间通信方式有哪些?聊一下Binder机制
9、你知道的协议有哪些种类?(我从应用层、传输层、网络层简要地介绍了一下HTTP、FTP、SFTP、TCP、UDP、IP这些协议位于哪个层,各自是干什么的。忘了讲HTTP和HTTPS的区别,TCP与UDP的区别,也忘了讲TCP三次握手过程了,唉。)
10、你投的是Android实习岗位,那你是更希望?(我当然说更希望是校招offer了。)
11、为什么从上家公司离职?
12、有参加我们的福州站校招吗?
13、在做过的这些项目中,你遇到的最难的技术难点是什么?(回答了滑动冲突的解决。)
14、你有什么问题要问我吗?时间关系,只能问1个。
(我:在之前的面试经历中,有个面试官问我一个问题,我觉得挺有意思的,就是在项目开发过程中,前面的那些需求和设计都弄好之后,在编码阶段,正式的团队开发是怎么开始一个Android项目的呢?)
加油!
2018/05/05