前言
对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活度过一生,直到考研受挫,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了美团Android岗。今天分享这波面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!
基本介绍
我的情况:
去年 6 月毕业,学校 /专业是某普通二本软件工程,之前也没有工作经验(实习也没有)。
**时间线是这样的:**大三升大四的暑假+大四上学期的大部分时间在准备第一次考研,大四下学期在做毕业设计所以也没有找实习的想法,之后就毕业了。毕业后开始准备考研二战,失败。(考的科目是 政治 英语一 数学一 和 408,分数在 330 上下,主要是数学太低了,只考了 70 )
今年考研结果尘埃落定之后就开始准备往Android开发这个方向求职,2月底开始看面经、针对面试做准备、参加面试。面试过的公司数目也很少,除了这个 offer 以外只面过 3 家小公司(都跪了),大厂暂时没有敢想。这个 offer 其实也是面了许多次的(面挂了但是又被别的部门继续面这种情况),我边面试边学习加上面试的难度飘忽不定的原因吧,感觉
可能是后来的面试比较简单,所以顺利拿到 offer 。
大学时技能水平:
数据结构与算法:大学期间在 leetcode 做了 200 多道题,六月中旬到六月底这段时间为了准备面试怕手生,又刷了某个精选 list 里的 50 多题。
英语能力:六级 550 分。
基本开发工具的使用:如 Git 。
除了上面几项和我近几个月开始学习的 Java 以外,其他的技能主要就是来自大学课程了。前端、UWP 开发、go 、图像 cv 啥的都接触过,写过课程的项目,但是程度都实在太浅,而且有点久远所以基本忘了,又和我目前求职的方向无关,就不列在上面了。
在校期间没有深入地去往某个方向做准备,这一点我到现在也很惭愧。
美团招聘需求
Android开发工程师
美团对Android工程师候选人重点考核的专业知识及专业技能
- 专业背景:了解计算机基础知识,包括计算机原理、操作系统、网络、算法等;
- 技术知识:重点强调Java,其次是C/C++和数据结构,这些是最基本的要求,然后是Android开发的基础知识;
- 编码能力:具备一定的编码能力,包括边界条件、编码风格等。
美团面试经历
如上述美团技术团队招聘需求介绍那样,美团十分注重强调Java基础,因此面试拷问也从Java基础开始。
美团1,2,3面+HR面
一面java基础和安卓基础,问的很详细,但是都不涉及源码。
二面java基础:
1自我介绍+项目.
2String s1 = “abc” 与 String s2 =new String(“abc”)中,s1 == s2?为什么?
3是否了解JMM,说一下s1,s2各在JMM哪个地方存储.
4JMM中哪些区域可以多线程访问.
5java虚拟机的垃圾回收机制.
6弱引用,软引用.
7锁的类型你了解吗,比如对象锁,类锁,重入锁.
8写一下你知道的单例模式.
9我写了并发类型的,用了synchronized(A.class),面试官说这个写法效率低了,问知不知道一种双变量的写法。
10java线程池中的核心线程数与最大线程容量有什么用.
11假设java线程池最大容量为10,核心线程数为5,任务队列为2。
12当第1个任务来了放在哪里。
13第6个任务来了,放到哪里。
14第8个任务来了,放到哪里。
15sleep()方法与wait()方法有什么区别.
16调用sleep()方法后线程是否占用CPU资源Android.
1View点击事件是怎么传递的?
2如果事件传递到子View,子View返回false,这个时候的事件怎么处理.
3handler底层是怎么工作的?
4你知不知道ThreadLocal?
5假如我们在主线程新建10个Handler,现在handler1发了一个message,那么handler2的.
6dispatchMessage能收到吗.
7AsyncTask的底层是怎么实现的.
8怎么让AsyncTask实现并发线程池算法给定一个整型的有序数组num,和整数X,返回 num中大于X的最小整数的位置。比如num = {1,2,3,4,5,9,10,12},X = 7,则返回5,X = 1,则返回1.
三面java基础:
1自我介绍+项目介绍.
2说一下view的点击事件.
3.6个线程如果保证其他5个执行完了,第6个线程再执行.
4系统中哪些地方用到了缓存.
5浏览器缓存你了解吗.
6应用程序中哪些地方用了缓存算法一个int型数组[5,6,7,8,9,0,1,2,3,4],寻找int型变量x在数组中的位置,如果不存在,返回-1。(这题要求的时间复杂度小于o(n))
一共四面,问题太多,这里只添加内容做详实的2面和3面面经.
当然了我最终加入了美团…因为公司配车
三、拿下美团Android岗offer前,我做了些什么?
(1)准备简历
简历是门面,更是敲门砖,能否拿到大厂的面试机会,就要看自己的简历如何,抛开学历意外,大厂最看重简历是否有亮点,因此我们对简历内容要有准备,对自己的突出点,包括技术、个性上的亮点,要练习表达,避免临时组织语言。
(2)提升技能
实际上我有个美团的朋友很早之前就向我透露过,很多人认为大厂看重学历,但实际情况并不完全是,在美团只以能力论英雄。所以,在日常生活中,通过不断地学习,提升自己的能力,努力去拉进自己与目标值的距离,这是很有必要的,也是未来的必然趋势。
关于提升技能,我的做法:
万事俱备,只欠东风。剩下你要做的。就是把阶段二提炼出的武林秘籍打印出来。
每天早上,泡一杯咖啡,享受阳光洒在窗前的温暖。翻开武林秘籍,开背!
- ①阅读实战文档
Android实战开发电子书
- ②读一些源码
- ③读一些技术笔记
(3)猛刷面试题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OPh36jBB-1617885731082)(https://upload-images.jianshu.io/upload_images/25267696-c1f723f4b2cb0172.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
对于base不是太好的人来说,刷面试题实际上是最具有“急救”效果的办法,因此在面试阿里前,我是刷了不少面试题的,目的倒不是希望面试时能被问到原题,而是对大厂面试有一个相应的了解,清楚阿里面试会问一些什么,涉及到哪些技术栈等。
(4)b站是个学习平台
众所周知,b站是程序员最好的视频学习平台。而这一点,我竟然在最近才发现,还是通过同学的分享。在b站上关注了一个大厂up主大佬,一直在更新Android最新的一些进阶学习视频,还有时会分享些面经经验,强烈推荐大家关注一波!b站搜索:网易leo老师(https://space.bilibili.com/547363040)!
做个总结
很多学历不太好的人,可能对自己没有太大的信心,实际上任何事情都有“奇迹”发生,而这个“奇迹”关键还是要靠自己去创造。无论你是小白菜鸟,还是技术大牛,日常都不能够落下学习这件事情,一旦落后下来,就容易遭到淘汰。
以上我的经历希望能够给大家带来帮助,另外自己手头上的资料整理均可免费分享,需要这些资料的朋友,可以随手点赞评论支持下我然后点击这里获取!
转载:https://blog.csdn.net/Androidxox/article/details/115530919