我应聘的是Android职位,因为我之前做了一些android项目,像是mini-linkedin, dribbble,简历上相关经验还蛮多的,所以简历关顺顺利利就过了。感谢带我做项目的九章的郭靖老师。
然鹅,最后还是跪在四面,好可惜啊,没有看到junyu!!!是次不错的经历!总结一下,跟大家分享一下经验。
一面:
1.先问技术,都是基础。
Andoroid内存回收机制、如何解决OOM、线程创建的方式、多线程的通信、还有一些java异常相关,比如在try catch中的catch中再次throw exception 、finally等。(建议多看看handler原理、WindowManager等)
2.接着就是算法题,在线编程,哈哈,这种体验还是第一次。
考了了两道算法题,比较简单。
第一道题就是斐波纳契,不过需要大数处理 ,直接用java的bigInteger就行。
ps:其实在Android优化方面关于斐波那契数列的计算是有很多种方案的。
题目描述:http://www.lintcode.com/zh-cn/problem/fibonacci/
参考答案:http://www.jiuzhang.com/solution/fibonacci
第二道加油站问题,在LintCode上刷到过,很简单的,偷懒贴个链接。LintCode题库蛮全的,数量也多,基本涵盖所有IT公司会面到的算法题,还是更有针对性的准备面试更有效点。
题目描述:http://www.lintcode.com/zh-cn/problem/gas-station/
参考答案:http://www.jiuzhang.com/solution/gas-station/
二面:
1.项目介绍:围绕简历问了一些我简历上的 android 项目,面试官对我的 Dribbble 项目很感兴趣,问了好多问题。因为我都是实实在在做过的,答得也比较好,感觉面试官挺满意的。
2.算法题:
第一道全排列问题
题目描述:http://www.lintcode.com/zh-cn/problem/permutations/
参考答案:http://www.jiuzhang.com/solution/permutations
第二道判断二叉树是否为平衡二叉树
题目描述:http://www.lintcode.com/zh-cn/problem/balanced-binary-tree/
参考答案:http://www.jiuzhang.com/solution/balanced-binary-tree/
那天发烧了,头昏昏沉沉的,大概真的要烧坏了,一开始我竟然用非递归中序遍历,幸好过了一会,突然惊醒,用递归实现很简单,想想真是后怕。有兴趣可以自己去LintCode上找来做做。
二面也顺利的过了~
三面:
1.Android 技术问题
Activity的四种启动模式和事件分发机制
这个我上Android班的时候,郭老师都有讲过,觉得自己运气好好。
2.写代码
第一题:转换字符串到整数
题目描述:http://www.lintcode.com/zh-cn/problem/string-to-integer-ii/
参考答案:http://www.jiuzhang.com/solution/string-to-integer-ii
第二题:买卖股票的最佳时机
题目描述:http://www.lintcode.com/zh-cn/problem/best-time-to-buy-and-sell-stock/
参考答案:http://www.jiuzhang.com/solution/best-time-to-buy-and-sell-stock/
另外,LintCode上有它的系列题,可以都看看。
后来接到一个声音很好听的小姐姐通知我进行4面面试,超nice。
四面:
在一个下午进行了四面,面试官很严肃,先是让我聊聊网络编程,又让我讲讲J2EE,面试官一副什么都不知道,让我讲给他听的样子,感觉他不太满意。出去的也很懵逼,说不出来有哪里不对,就是感觉蛮差的。
果然四面后就收到了拒信,感觉有点可惜啊。总结一下,就是豌豆荚对算法和代码要求都蛮高的,算法也比较经典,建议多刷题。另外,多利用闲暇时间做点 android 相关的项目,比较容易通过简历关,而且面试的时候,也会问到这些项目的。