三战985硕的转行之路加面经分享

个人情况介绍

本人为某末流985工科硕士,找工作时,经常在牛客网找面经刷题,为回馈牛客,写下这篇分享贴,也算是对我求学生涯的总结。
说来令人感慨,我的考研之路异常曲折,每次都觉得自己能十拿九稳,结果每次都阴差阳错,失之交臂,第一次因为那年目标院校大幅度提升初试线,导致差一分未过线,第二次换了学校,初试分数超复试线40多分,但是复试拉胯也未能上岸,直到第三次又换了个学校才最终如愿。虽然耽误了两年时间,但现在想来那段时期也让我明白了自己到底想要什么以及怎么去争取。

秋、春招之路

研究生期间,因为所在教研室有许多秋招的师兄师姐,所以也亲眼目睹了工科专业的就业艰辛,当时大家的普遍薪资都在15w左右,并且好的研究所,企业都会要求本科学历。我清楚的知道本科普通一本的我,想要在两年后的秋招里签一个目标企业十分困难。我的目标很简单,就是薪资与发展前景,我并不在意地理位置,哪里给的薪资高就去哪里,当时并没有考虑过性价比,work life balance等等这些因素,总觉得大不了攒点钱去个轻松点的城市过完一生,现在想来当时的自己还是年轻。

研一时了解了计算机行业的普遍薪资,那时候觉得算法岗又不累,工资又高,于是就准备转算法(又单纯了。。),在一个学期内断断续续学习了吴恩达的机器学习课程,当时觉得这些算法跟线代,优化知识联系很紧密,也能很快接受这些知识。将算法课程看完之后,发现自己路走错了,网上铺天盖地宣传算法岗诸神黄昏,难如登天,大量科班毕业生纷纷转开发。我又审视了自己的条件,自己非科班出身,也不可能去实习,难道还能竞争得过科班大佬吗。于是我就放弃了算法岗,准备转开发。

开发岗只是一个概括,包括前端,后端,移动端,测开等等,但当时的自己一头雾水,身边也没有可以借鉴的人,只能硬着头皮往下学,当时只知道自己要学java,不知道自己要用java来做什么,学习也仅限于java se知识,对于数据库,各种框架等等一概不知。说起入门课程,我一开始跟着廖雪峰,how2j学习,这是两个对新手很友好的网站,大家可以作为参考。

研二的时候因为疫情在家呆了停久,再加上家里人生病,于是将近有半年的时间一直赋闲在家,学习落下了很多,这中间也看了很多学习路线与经验贴,直到6月份秋招提前批开始,我才真正的开始系统学习,当时给自己定了一个年薪20w的目标,但只掌握了java se知识,对于招聘需求里要求的标准差的很远。并且由于非科班,简历上没有可写的项目,于是在慕课网上买了一个关于秒杀的实战课程,直到后来才知道秒烂大街。7月8月一直在学习实战课程,框架,数据库,每天写几道算法题。同时也在准备简历,一开始投的是本专业公司,到了9月份才有胆量投递互联网公司,这里希望大家不要像我一样,尽量早做准备,早投递,早拿offer。9月以后开始海投,当时很多简历过不了筛选,算法也很烂,基本上过不了笔试这关,唯一进入面试的大厂只有网易,好未来倒在了一面,网易后来也在倒在了二面。后面就是漫长的投简历,做笔试阶段,也参加了一些学校的线下招聘,结果都不太理想,直到10月份才签到了深圳的一家不知名公司,当时给的薪资是15*15-16。到这里我觉得不能再这样海投了,消耗精力是一方面,自己也没空进行总结提高,只能是越面越烂。因为手里有了一个保底的offer,于是我就停止投递。

由于在秋招见识到了后端的艰难形势,并且通过浏览各种帖子了解到客户端并不像后端一样竞争惨烈,觉得自己还是要转客户端为妙,虽然也有很多人唱衰客户端,但对于当时的我来说并没有太多的选择,我个人对岗位要求不多,能让我实现秋招目标就可以接受。于是从11月开始专心学习客户端。一直到1月份,把郭霖的第一行代码过了一遍,并跟着做了书里的项目,同时也在刷一些算法题,直到寒假。

寒假期间仅仅看了左程云算法书里的几道常见面试题,到了年后2月底开始正式投递简历,当时给自己定的目标是年新30w,在春招期间并没有像秋招时那样海投,只投了一些有名气的公司,包括腾讯、字节、美团、滴滴、顺丰、vivo、陌陌,其中滴滴的面试由于时间冲突放弃了。春招给我的感觉并没有秋招那么难,投递的公司基本上都过了笔试,可能是跟岗位选择有关,也有可能是春招竞争并没有那么激烈,最后拿到了美团、顺丰、vivo的offer并选了美团。下面是部分面经,希望能给提前批或者秋招的同学一些借鉴。


面经总结

腾讯一面 50分钟

1.MVVM与mvc、mvp架构的区别与联系
2.mvvm用到的设计模式
3.viewmodel的实现原理
4.viewmodel怎么更新数据的
5.安卓的线程通信
6.looper阻塞为什么不会造成ANR
7.广播里怎么执行耗时操作
8.阻塞多久会出现ANR
9.开发遇到的一些异常,怎么处理
10.线程安全的队列有哪些
11.concurrenthashmap详解
12.fragment的生命周期
13.安卓里解决多线程冲突的方法
14.volatile详解、synchronized详解,两者区别
15.activity生命周期
16.onStart与onResume解释
17.安卓中进程间通信方式
18.内核态与用户态
19.redis原理
20.redis怎么保证原子性
21.TCP传输中header里的字段
22.http状态码
23.Java GC机制
24.进程、线程、协程的联系与区别
25.死锁的必要条件
26.银行家算法
27.TCP拥塞控制
28.四次挥手详解
29.TCP与UDP区别
30.TCP怎么保证可靠传输
31.DNS解析过程
32.TCP报文里的字段 
33.算法题:计算二叉树的高度(递归与非递归两种方式)

腾讯二面,35分钟

1.mvvm,mvp,mvc
2.详细介绍项目
3.网络传输层的协议
4.TCP报头
5.TCP三次握手,为什么三次
6.linux内存管理机制
7.虚拟内存与物理内存
8.常用数据结构
9.堆排序原理

vivo一面 45分钟

1.面向对象三大特性,多态怎么实现
2.静态方法与变量是否可以继承,原因
3.Java代理是否用过,怎么实现
4.Java异常详解
5.项目中遇到的异常
6. 线程安全的队列
7.类加载的过程
8.类加载器,双亲委派模型
9.对象生命周期
10.判断对象是否可以回收的方法
11.有哪些GC roots
12.Java引用类型
13.抽象类与接口区别,各自优缺点
14.Java线程间通信,volatile详解、synchronized详解
15.线程的状态
16.进程、线程、协程
17.死锁怎么造成的
18.线程池详解
19.线程池怎么做到线程复用
20.thread local详解
21.Java泛型,泛型擦除机制
22.TCP与UDP区别,优缺点
23.TCP可靠传输机制
24.介绍http协议
25.https请求流程
26.b树、b+树、红黑树
27.红黑树怎么增加、删除节点
28.输入一个URL到网页显示的过程
29.localhost 与127.0.0.1的区别
30.MVVM、MVC、MVP的区别与联系,各自优缺点
31.activity的生命周期
32.安卓中的数据存储,sharedpreference详解

字节一面 1小时

1.进程、线程、协程
2.进程间能共享内存吗
3.安卓中挂起函数怎么实现的
4.安卓中实现多线程的方法
5.线程池详解
6.线程池设计模式,怎么自己设计一个线程池
7.handler详解,是否会内存泄漏,泄露的原理
8.匿名内部类,原理是什么
9.Java GC算法
10.Java引用类型,弱引用的作用,引用队列。
11.安卓图片缓存,加载
12.安卓中的布局,布局优化方法,常用标签
13.安卓四大组件
14.activity四大启动模式
15.onnewintent方法
16.本地广播
17.jetpack组件
18.viewmodel设计模式,mvc,mvp,mvvm介绍
19.retrofit的具体实现,其中接口的作用,注解的作用
20.hashtable,hashmap与concurrenthashmap详解
21.哈希冲突解决方法,
22.算法题:随机生成不重复的100个数0-99

字节二面,50分钟

1.https详细介绍
2.get与post区别
3.请求状态码
4.cookie与session
5.Java内部类
6.泛型擦除机制
7.Java内存回收
8.GC roots
9.Java加锁方式
10.线程安全的单例模式(双重检测),为什么要两次判断,volatile作用
11.安卓的事件分发机制
12.算法题:获得二叉树的最大宽度,写出最优解

字节三面,50分钟

5道代码题
1.写一个泛型方法,实现删除数组中的元素功能
2.写一个单例模式
3.返回二叉树的第k大数
另外两个记不得了,代码写的很差,所以三面卒。。。


顺丰一面,30分钟

1.面向对象三大特性与面向过程区别
2.怎么判断对象相等,equals详解
3.抽象类与接口区别
4.Java跨平台的原因
5.JVM,GC算法
6.安卓view绘制流程
7.view怎么确认位置与大小,测量模式
8.常用的viewgroup,与view区别,在事件处理过程中有什么区别
9.安卓事件传递机制
10.listview详解,缓存机制与recyclerview区别

顺丰二面,15分钟

1.项目详细介绍
2.安卓中的listview与recyclerview
3.安卓中的网络请求方式
4.项目中的设计模式


陌陌一面,40分钟

1.项目介绍,难点
2.看代码说运行结果
3.栈帧的概念
4.锁的概念,加锁原因
5.进程、线程、协程
6.activity四大启动模式
7.事件分发机制
8.mvc,mvp,mvvm架构
9.用过的设计模式
10.线程安全的数据结构
11.app编译过程
12.http协议介绍
13.https求解过程
14.TCP三次握手,可靠传输机制
15.快排的事件,空间复杂度

陌陌二面 ,30分钟

1.Java字符串详细介绍
2.JVM内存详细介绍,对象,变量等存储位置
3.OOM,怎么解决
4.进程、线程、协程
5.创建线程的方式
6.线程池详解
7.线程生命周期,状态
8.循环引用,怎么避免
9.内存泄漏,怎么排查
10.mvc,mvp,mvvm架构,怎么选用合适的架构方式
11.安卓的网络请求
12.安卓中的数据存储方式
13.fragment与activity间的通信
14.activity启动方式对fragment的影响
15.域名劫持
16.http header介绍
17.get与post区别
18.跨进程通信方式


美团一面,1小时

1.安卓项目介绍
2.mvc,mvp,mvvm架构
3.jetpack组件
4.lifecycle介绍
5.viewmodel实现原理
6.retrofit介绍
7.retrofit怎么实现多线程
8.线程池详解
9.多线程会遇到什么问题
10.死锁的条件,手写一个死锁代码并运行出来
11.怎么避免死锁问题
12.可重入锁
13.安卓怎么进行ui操作
14.安卓点击事件的处理
15.下拉刷新原理
16.安卓存储方式
17.contentprovider介绍,能实现耗时操作吗
18.service介绍,生命周期与contentprovider区别
19.https请求过程
20.算法题:返回第k大的数,先说下你能想到的方法,再选一个最优方法。

美团二面,50分钟

1.Java入口函数
2.方法签名
3.方法修饰符
4.static关键字详解,说下自己知道的关键字
5.Java基本类型
6.字符串详解
7.字符串的常用操作
8.Java io
9.Java异常介绍,是否所有异常都需要捕获
10.对Java抽象的理解
11.接口与抽象类区别
12.类编译过程
13.介绍对安卓中intent的理解
14.自定义view过程
15.介绍service
16.service与activity通信
17.输入URL到返回页面的完整过程
18.怎么加速http连接
19.虚拟内存
20.线程并发会遇到哪些问题,怎么解决
21.详细介绍自己的项目,项目可以有哪些改进的地方
22.算法题:二分法查找目标数

个人总结

关于求职的感想:1.早做准备很重要,提前实习是一个很好的选择。2.要多跟人交流,学习,由于我自己前期学习时很少跟人沟通,走了许多弯路。3.经验贴最好不要看太多,选择一个适合自己的坚持下去。对于校招生来说,转行没想象中那么难,我给自己每天分配的计算机学习时间大概在2-3小时左右,其它时间还是要做自己的课题,所以我能做到的,相信你们也可以,而且肯定能比我做得更好。
回顾整个研究生期间,自己求职目标经历了算法岗->后端开发->安卓开发的转变,从这一方面看,我总是在逃避遇到的困难,想着走捷径跨过去,也希望自己以后能改正这个缺点。但不管怎么样,我算是实现了预定的目标,虽然拿的是白菜价offer,但是我已经比较满足了,人的欲望是无止境的,我深知自己的水平,接下来就是好好工作,思考以后的路怎么走。
最后推荐一些我觉得不错的学习资料给大家,如果能帮助到你们就更好不过了。
1.计算机网络:《图解http》
2.算法:《图解算法》,《程序员代码面试指南》,《剑指offer》,力扣,牛客网刷题
3.Java:《深入了解Java虚拟机》,《Java并发编程之美》
4.数据库:《mysql必知必会》
5.安卓:《第一行代码》
还有一些大佬的公众号或者网站:Javaguide(知识点非常全面),狂神说(推荐spring框架),敖丙,Java3y,编程指北,帅地,labuladong算法小抄(这个有争议),郭霖,阮一峰,廖雪峰等等。
文章写的比较匆忙,水平不高请大家见谅,希望你们都能找到满意的offer,加油!
#安卓工程师##面经##腾讯##vivo##字节跳动##校招##顺丰科技#
全部评论
请问学完安卓的第一行代码后,深入学习安卓有什么好的资料吗
1 回复 分享
发布于 2021-06-01 00:40
感谢分享!!
点赞 回复 分享
发布于 2022-01-20 16:33
老哥,你秋招签了不需要交违约金吗
点赞 回复 分享
发布于 2021-09-20 16:54
楼主有兴趣加个微信吗。。想和你聊聊。我和你情况一毛一样。共鸣啊
点赞 回复 分享
发布于 2021-07-02 16:41
答主很励志,谢谢分享~
点赞 回复 分享
发布于 2021-05-29 15:54
好佩服你
点赞 回复 分享
发布于 2021-05-28 20:34
和我的情况太像了,马上秋招了,去年十二月开始学java,现在也只会javase,转行太难了
点赞 回复 分享
发布于 2021-05-17 23:47

相关推荐

04-17 09:32
门头沟学院 Java
刷到这个话题,心里一下子就揪了一下。作为双非计算机本科,今年在杭州跑春招,前前后后面了20多家公司,从最开始的意气风发,到后来的0offer焦虑,被父母问起工作找得怎么样时,我换了无数种回复方式,从最开始的嘴硬撒谎硬撑,到后来的坦然坦诚相待,才终于明白,我们纠结的从来不是怎么回这句话,是怕父母失望,也怕自己的焦虑让他们隔着千里跟着操心。最开始春招的时候,我跟父母说的最多的一句话是:“放心吧,挺顺利的,投了几十家,好几个都在面试流程里,应该快有结果了。”其实那时候,我投出去的简历80%都是已读不回,好不容易拿到的几个面试,也全在一面就挂了。每天在出租屋里,睁眼就是刷招聘软件、背八股、刷算法,晚上焦虑到凌晨三点还睡不着,可爸妈打电话来,我永远都是那句“我挺好的,面试都挺顺,你们别瞎操心”。我记得有一次,我刚挂了一家公司的终面电话,HR跟我说部门HC锁了,岗位直接取消了。挂了电话我坐在地板上,烟一根接一根地抽,心里堵得慌,鼻子一酸,眼泪还是没忍住掉了下来。刚好我爸打视频过来,我赶紧抹掉脸,掐了烟,清了清嗓子挤出笑脸接了。我爸第一句话就是:“小子,工作找得怎么样了?别给自己太大压力,尽力就行。”我还是习惯性地嘴硬:“挺好的,刚才还面了一家,聊得特别投机,大概率能进下一轮,offer估计快了。”我爸在视频那头笑着点头,跟我说“我儿子肯定没问题”,可挂了视频之后,我抱着头蹲在地上,心里的包袱重得喘不过气。那时候总觉得,作为男孩子,就得自己扛住所有事,跟家里说不顺,只会让他们跟着白担心,可越撒谎硬撑,我心里的石头就越沉,好像自己连一句“我不顺”都没脸跟他们说。真正的转折点,是有一次我妈给我发微信,她打字慢,一条消息拆成了好几段发:“儿子,你爸总说不让我多问,怕给你压力。我们不是催你找工作,就是怕你一个人在杭州,受了委屈、遇到难处都自己憋着。你不用跟我们报喜不报忧,就算找不到工作,家里也养得起你,大不了就回家,不用自己硬扛。”看到那句话的瞬间,我绷了几个月的情绪彻底崩了。那天晚上,我跟我爸妈打了两个多小时的电话,把春招里的委屈、面试挂掉的挫败、投简历石沉大海的无力、对未来的迷茫,全都一股脑说了出来。我以为他们会失望,会念叨我不上进,结果我爸只是说:“多大点事,春招本来就卷,面不上不是你不行,是机会没到。杭州待着不顺心就回来,家里的房子永远给你留着,房租不够了就直接说,别委屈自己。”从那之后,父母再问我工作找得怎么样,我再也不嘴硬撒谎了,我会如实跟他们说:这周面了5家,2家过了一面,2家挂了,还有1家在等结果,挂掉的是因为分布式这块没答好,我这两天正在补;最近刷完了剑指Offer,八股也重新过了一遍,之前踩过的坑都整理好了,再面试肯定能答得更顺;也会跟他们说,有时候投出去的简历没回音,也会焦虑,也会怀疑自己,但每天都在按部就班准备,没摆烂。我发现,当我不再报喜不报忧,坦然地跟他们沟通我的现状之后,心里的包袱一下子就轻了。原来父母想要的,从来不是你拿到了多好的offer,赚多少钱,而是想知道你在外面过得好不好,有没有按时吃饭,有没有受委屈。他们能接受你的平凡,也能包容你的不顺,比起你撒谎骗他们,他们更怕你什么都不说,一个人在陌生的城市硬扛。当然,我也不是什么都跟他们说。太细碎的糟心事、面试里遇到的奇葩事、深夜里的极端焦虑,我会挑着说,不会把所有的负面情绪都倒给他们。毕竟隔着千里,他们除了跟着担心,也做不了什么。我会跟他们说我的不顺,更会跟他们说我的进步:今天面试手撕算法一次就过了,这周投的公司有一半都给了面试邀请,之前没弄懂的技术点终于啃透了。现在,我终于拿到了杭州一家互联网公司的后端开发offer,拿到offer的第一时间,我就给爸妈打了电话。他们在电话那头比我还激动,我爸当天晚上就拉着我叔喝了两杯,逢人就说我儿子在杭州找到工作了。回头看,春招这一路,父母的那句“工作找得怎么样了”,从来都不是追问,是关心,是牵挂。我们总想着,作为男孩子,要成为家里的顶梁柱,要成为父母的骄傲,不想让他们看到我们的狼狈和不顺。可我们忘了,父母从来都不需要我们完美,他们只希望我们平安、开心、好好照顾自己。所以啊,不用纠结怎么回,不用硬撑着撒谎,也不用不耐烦地转移话题。愿意报喜不报忧,就跟他们说一句“一切都顺利,你们放心”;愿意坦诚,就跟他们说说你的近况,好的坏的都说说。父母永远是我们的退路,从来都不是我们的压力来源。
父母问你工作找得怎么样,...
点赞 评论 收藏
分享
一、当前进展字节跳动-- 接offer了,我是宇宙厂孝子(点名表扬,流程又快【从hr捞人到oc 10天】,面试官又和善,hr也很好,非常有活人感!!)三、已投递(待筛选 / 无回应)包括但不限于:网易雷火、虎牙、东方财富、中兴、搜狐、睿联、腾讯云、携程、滴滴、华为、Capgemini、腾讯、小米、联想(等127+ 都没有任何动作)整体体感:大厂简历筛选周期长 + HC 不稳定,无回应是常态。四、未通过(部分)一面挂:阿里国际(全在讲ai,没有一点关于UX)盒马 (2个面试官压力面)龙湖 (第一次面试,完全不知道该说什么)二面挂:同花顺(我非常感谢同花顺的二面面试官,告诉了我我到底为什么一直过不了面试,根据他的指导我学到了很多)简历挂:HSBC,小米,华为 等其他:Method、Pendo、Revolut、Trainline 等海外岗位五、主动放弃Canonical(忘记了)美团(时间冲突)海康威视(方向不匹配)安克创新 (拿到offer后才来的)米哈游(流程太慢了,一面后自己放弃)阿里云(我是宇宙厂孝子)六、整体数据总投递:约 200 家有实质面试:7 场进入终面:2(字节,阿里)已挂:120七、一些复盘(重点)打穿一条线 > 广撒网200 家里只有字节走到终面。资源有限时,把最有希望的机会打透,比同时维护多条线更有效。AI 项目基本成为门槛多场面试中被明确反馈“项目偏传统”。有实际 AI 产品 / 工具设计经验,明显更有竞争力。表达习惯必须刻意训练某些口头表达问题在多场面试反复出现。不做预设替换,是很难现场改掉的。项目叙事必须统一同一个项目讲出多个版本,会直接影响可信度。面试前一定要统一“最优版本”。海外 + 国内并行性成本时差(伦敦 凌晨2–4 点面试)对状态影响很大,
点赞 评论 收藏
分享
评论
40
142
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务