前言
瞧一瞧我的过往经历,往昔曾栖身于一家规模较小的公司,平日里从事些零零散散的杂务,难以确切界定所干的究竟是运营范畴还是产品领域,总之哪边有需求便前往哪边。
随后,我发觉不能够再持续这样下去了。去年9月起始学习Android,历经6个月的时长,获取到了字节跳动的Offer。
你要选对那个方向,然后坚定不移地持续走下去时,你届时就会察觉到,你跟身边之人会渐渐地就此拉开了差距。
你是否也与他那时所处的状况一样,鉴于钱数多、发展态势良好,正处于纠结之中或者已然做出决定转向安卓系统,时而左看一本读物,时而右瞧一份材料,忙碌到头发变白,最终却落得一场空的结局。
随后,我向他询问是怎样达成的,他宣称,你需筹备两样事物,其一为扎实的基础,其二便是项目经验。
他将Android的学习划分成了5个部分,这是基于他要掌握扎实基础的情况。
1、Android 核心技术,这是基础不用说;
2、企业常用的开发框架,这是工具必须会;
3、理解分布式架构,这是硬技能;
4、玩转微服务架构,这是最新潮流;
5、搞懂性能优势,这是加分项;
假设你要达成某事,首先务必准备好十足的耐心,还有坚韧的毅力,与此同时,在这一个过程当中,你还得備有一份条理清晰的学习资料,以及一个氛围良好的学习圈子,不然就会出现状况,自己却浑然不知。文中给出查看免费领取资料方式!
当下,于我的公众号(开发星球)内,有诸多伙伴给我留言,往后不久便会迎来秋招,无论是那些打算更换工作的人,还是刚刚毕业的大学生处于自身当下阶段,都欠缺一个系统学习的方向。
为了达成这个目的,这篇文章的用意就在于给众人解决此项问题,使大家能够顺遂地通过秋季校园招聘的面试。
下面我将以我的去年秋招的经历,给大家一些建议!
目录面经
(一)自我介绍
楼主本科以及硕士阶段就读在西安的某所211院校,所学的是计算机应用技术专业,学术方面所取得的成果主要包含,以第一作者身份发表的SCI二区论文一篇,还有专利三项,主要的研究方向为安卓安全,以及安卓开发,还有深度学习。
本科时的本人,那时没有明晰的目标,大三之际加入了考研的队伍,在获取某校优研资格的情形下,因自身缘故选择了考本校的研。看着同寝室的哥们去了西交,好朋友去了东南大学,心里着实不是个滋味。刚进入研究生阶段时便下定决心要好好努力,在找工作之际进入大厂!
应聘的岗位是安卓开发岗,秋招的最终去向是字节跳动。
(二)秋招的Offer总结
总共有三十多家公司被投递了,起码有九家公司的录用通知被拿到了。结果呈现出以下几种情形:
1.拿到offer的公司:
OPPO,字节跳动,浦发银行,蘑菇街,美团,中兴,小米,CVTE,360,华为,于12月9日从池子里捞取出来。
2.在offer池的公司(池子深的看不到底啊):
新浪微博。
3.笔试未通过的公司:
拼多多、猿辅导、大疆、滴滴。
4.面试未通过/无反馈的公司:
多益网络、腾讯(九面)、网易雷火、阿里。
5.自己拒绝后续面试的公司:
虎牙、科大讯飞、贝壳找房、快手、商汤科技。
(三)校招公司
这一部分内容,是针对自己参与校招的多数公司所做的阐述,其中,oppo、字节跳动、美团属于这些公司,关于它们的面经,在我的这篇以“2019校招字节跳动、美团、oppo安卓开发新鲜面筋”为题的帖子里,已经有比较详尽的说明了,后续就不再重复讲述这些面经了,要讲一些其它不同方面的内容:
3.1.oppo
两次开展具备专业性的技术方面问询面试,再加上一回人力资源相关面试,秋季校园招聘里的第一个录用通知,OPPO所秉持的核心价值理念是本分,对于OPPO而言,内心充斥着感恩之情。从给予提前批次同学的优惠举措起始,一直延伸到后续校园招聘时薪资调整……无疑充分表明这是一家富有人性化且坚守本分的企业,祈愿贵公司的未来发展能够越来越好呀。
3.2.字节跳动
字节的流程是一轮笔试接下来是三轮面试,之后还有一轮HR面试。笔试有五道题,我答对了2.4道。一面的面试官,也就是我的首次面试的面试官,所提问题偏向基础,会顺着面试者的思路耐心引导,让面试者颇多收获,起码不再惧怕面试;面试内容涵盖Handler、线程通信、内存泄漏、垃圾回收以及引用类型等方面,手撕代码的题目是斐波那契的变体。二面时长大概半小时左右,谈论了项目以及相关基础知识,这一回没有手撕代码。面试时,有一位技术面试官,他处于这场面试的三面环节,神情严肃。此轮面试所涉及的知识点众多,涵盖了ActivityManager、四大组件、View绘制以及与项目有关的内容。而且,在面试过程中还有手撕代码这一环节,要求编写的代码题目是Leetcode中难度为mdium的670题最大交换。最终,在7月底的时候收到了oc,到了8月5日又收到了意向书。
3.3.浦发银行
去西安现场面试的是浦发银行,我成为了首个面试者,六位面试官呈一排就座,面试所涉范围较广,涵盖死锁、银行家算法、JVM 调优、热修复、数据结构相关基础等等,笔试在一大机房开展,笔试题目有跳台阶、最长回文子序列、连续整数最大和。
3.4.蘑菇街
蘑菇街的一面将重点置于基础方面,该公司的面试官具备可以十分耐心地去解答问题的能力,在面试过程中手写了冒泡排序,其整体难度偏向于简单;蘑菇街的二面着重关注项目以及工程能力,像V1签名与V2签名的差异等方面的问题,在二面时手写了最长回文子串;蘑菇街的三面是项目加上手撕代码环节,在三面中手撕了两个代码,其一为单向链表的倒数第k个节点;其二是对于升序排列的整数数组,要从中找出两个数,使它们的和为某个给定的sum,输出其中一个解就行。蘑菇街随后再次组织了 offer party,所报的薪资堪称具备显著吸引力,已然达到了 ssp 的水准,对此心怀感激之情,致以深深的感恩之意。
3.5.美团
美团对基础深度极为看重,此情形能从我的那篇《2019校招字节跳动、美团、oppo安卓开发新鲜面筋》里的问题瞧出来,美团遭遇了这样一种状况:8月26日完成技术三面,8月28日完成hr面,然而一个月时间始终没有拒信或者意向书,向官方邮箱反映了一番,又重新约我进行三面(面试官确实相当不错,花费20min给我介绍了公司的技术路线、研究方向等诸多内容),貌似是他们工作失误致使拖了一个月给忘掉了,接着重新推进三面往后的流程,最终我也拿到了offer。要是HR始终都没有回应,那自身务必得发邮件去询问询问,不然就会出现像我这样的状况,这样讲是一种建议。
3.6.中兴、CVTE
中兴没啥可讲的,一面的时候讲述了一下有关项目,二面转而侧重于综合测试。CVTE是技术面有两轮面试,二面的面试官之人很不错,朝着我展示了公司的相关产品,然而报价比预期要低。
3.7.小米
小米最初进行面试的是北京的那个IOT部门,在HR面通过获得oc之后,我表示想要换到南京的MIUI部门,因此额外增加了一轮面试环节。其中,一面的时候把项目彻底剖析了一番;二面则深入地考查了Volatile关键字相关、设计模式相关以及多线程这个方面、多进程通信这个方面。加面的具体情况没能留下深刻印象,只是记住了两道题目,第一道是这样的:有64匹马,存在8个赛道,要以最快的方式找出跑得速度最快的4匹马。
(https://blog.csdn.net/u013829973/article/details/80787928),(2)存在着 +1、-1、*2 这三种操作,询问从整数 A 到整数 B 的最少操作次数,建议:在 oc 的时候不要再去更换 base base base 了,因为加面是非常麻烦的。
3.8.华为
华为HC今年减少,特别是cbg部分,由此引发一个问题即门槛提升,增添了手撕代码环节,面试难度稍有增大,华为的老师年龄似乎偏大,普遍带有一点优越感,总共存在两轮技术面、一轮业务主管面,流程三轮目前已完成,当前状态处于offer池中,一面进行了手撕:两个字符串,求最长公共子串,二面进行了手撕:(1)一个string数组和一个字符串,若string数组的每个string都在字符串里有出现,那么返回计数器的数值。举例来说,存在一个string数组,它包含“hello”,“epoll”"Kevin"这些元素,其中字符串是lloephki,返回的值为2 ;有两个数组,第一个数组是【2,0,1,2,0,1】,第二个数组是【2,1,0】,要得到按照第二个数组进行排序后的第一个数组,也就是最终结果是【2,2,1,1,0,0】。
3.9.腾讯
腾讯进行了九次面试,有过捞起已挂掉的,挂了又被捞起来的情况,其中两次最终到了三面环节,一次到了两面阶段,只能讲没有缘分了。
WXG方面,先是询问基础知识,接着进行二面,其中包含对项目的剖析以及代码的现场编写。剖析项目耗费了两个小时,而现场编写代码则用了一小时的时间。通过此次经历,明确了自身存在的薄弱之处,第一是项目中存在瑕疵的地方需要加以改进,第二是算法方面的能力有待进一步加强,第三是博客需要全面整改,将那些水平不够的博客予以删除。
CSIG:一二轮交叉面之后到第三面挂掉了。
第二天,是TEG中CSIG三面挂掉之后的日子,实在不想去回答问题,紧接着一面的结果便是凉凉了。
PCG:三面问题偏实践和发散,自己答得不好,挂掉了。
3.10.阿里
关于阿里的那些问题,相对而言更加呈现出一种发散的态势,这些问题偏向于业务方面,偏向于应用场景范畴,最终呢,在经历了三面之后,收到了拒信。
3.11.商汤科技
面试体验最差的公司且没有之一
(四)技术栈
4.1.Android基础
对于应届生,大多数的公司更看重基础和源码一些。
拥有书籍,其中有第一行代码这本册,存有Android开发艺术探索这一著,涵盖Andoir进阶之光的相关部分。
涉及知识点:
Activity的启动模式,以及它的生命周期,还有特殊情况下那种特别样态的生命周期。
存在着用于进程间通信的方式,比如Bundle的运用,还有AIDL的运用,以及Messenger的运用等情况存在方式上的使用和各自具有的优劣势。
3.Binder(源码)。

四个方面,针对这款软件的广播接收器展开,分别有静态注册,动态注册,还有分类等等。
有关View的事件体系,View的相关工程流程以及自定义View。
6.View动画、帧动画和属性动画。
7,它是一种消息传递机制,其中包含Handler的源码工作机制,还有AsyncTask的源码,另外也有HandlerThread的源码。
8.针对Android的有着三级缓存情况的策略,要用怎样的方式才能实现高效加载Bitmap呢?涉及到ImageLoader、Picasso、Glide(其源码)、Fresco。
9.Android的插件化技术。
其中包括,性能优化里的ANR优化,内存泄漏的原因以及优化,ListView以及RecyclerView的优化和它们之间的区别,还有布局优化等等。
11.JNI和ndk相关。
12.Frgment的生命存续阶段,相较于Activity所具备的益处。
第十三条,网络加载框架,有Xutils,有Okhttp(源码),有Volley,还有Retrofit。
14.Service的生命周期、两种启动方式。
十五,数据存储,有文件存储,有Sqlite,有SharedPreference,还有LitePal。
16.ContentProvder的写法。
17.线程池的分类、写法和优势。
18.MVC、MVP、MVVM。
目前能想到的就这么多。多写多练多看源码是提高之道。
4.2.Java基础
书中,有《Java语言程序设计基础篇》,还有《Java语言程序设计进阶篇》,此进阶篇作者 是Y.Daniel Liang ,另外还有《深入了解Java虚拟机》,以及JavaGuide一本。
涉及知识点:
Java基础包含,三大特性,接口抽象类存在区别,拆箱装箱是一种情况,==和equals有区分,hascode与equals也有不同,static关键字有其特性,final关键字有其特点,异常处理是一方面,还有基本数据类型。
Java容器,也就是List、Map以及Set这几类啦。ArrayList在扩容以及源码方面,LinkedList的源码,Vector所涉及的方面,它们之间存在着区别;HashMap的源码,HashSet与之比较以及Hashtable,它们有什么区分;ConcurrentHashmap的实现的方式,HashSet能够保证不重复的具体做法。
Java并发方面,存在着关于进程以及线程的区别,还有并发与并行的区别,另外涉及死锁以及如何进行避免,同时包括sleep和wait方法,对于sychronized、volatile关键字要有所了解以及清楚它们之间的区别,还有Java内存模型,线程池,锁的分类。
Java内存区域被称作JVM,JVM有着垃圾回收,存在类加载过程,还有类加载器。
4.3.数据结构
书籍:《数据结构-用C语言描述》
涉及知识点:
栈跟队列,二叉树的遍历查找,哈夫曼树,红黑树,图的深度优先遍历,图的广度优先遍历,查找,顺序查找,折半查找,哈希法查找,九大排序的时间复杂度、空间复杂度、稳定性。
4.4.计算机网络:
书籍有,名为《计算机网络》的那本,是谢希仁所著第七版的上篇部分,还有JavaGuide。
涉及知识点:
TCP/IP的结构跟功能是怎样的,三次握手以及四次挥手的情况为何是这般模样,TCP与UDP之间存在着怎样的区别,流量控制、拥塞控制以及滑动窗口是怎么回事,从url输入开始直到显示主页的过程是怎样的,状态码是什么情况,HTTP长连接跟短连接是怎样的,Session以及Cookie是怎样的,Http1.0和Http1.1的差异在哪里,Http和Https的区别是哪种情况。
4.5.操作系统
书籍:Github的CS-notes
涉及知识点:
线程与进程的区别,读者和写者的问题,死锁的条件、预防(互斥占有且不循环等待)、检测以及避免(银行家算法),虚拟内存,分段和分页,页面调度算法(最近最少使用、先进先出、最优等)。
4.6.设计模式
书籍:《大话设计模式》
涉及知识点:单例模式;工厂模式等。
4.7.算法
书籍:《剑指offer》、Leetcode探索之腾讯篇。
(五)简历
能算得上一份好的简历 的,是那种 建立,于平日里 认真去积累 之上的,且 与求职所抱意向 相吻合 的简历。下面 是 我的 一些 建议:
其一,别采用那种花哨的模板,其二,搞技术的要尽可能让格式简洁起来,其三,内容得丰富些。
清晰而明确地将个人信息书写齐全包括,姓名,注明哪一年毕业,电话号码,电子邮箱地址,以及CSDN博客链接或者Github链接等。
3.求职意向、受教育经历要写清楚。
你需要按时间、项目名称、项目内容、负责部分、完成情况来对项目内容之实习经历予以说明,这里的实习经历要求至少是互联网排名靠前的公司,不然只会降低自身的Level,对于科研成果,要指明是哪个区第几作者。
第5点,要是曾经获得过诸如互联网+比赛、数学建模大赛之类的奖项的话,那自然是挺好的,但若没有这些奖项,写拥有奖学金的情况那种感觉也是可行的,毕竟能拿到奖学金,这也表明不会太差劲到哪里去。
6.专业技能被划分成了解、熟悉、精通这三个等级,通常不要去填写精通,技能重点在于精而非数量多,有些同学急切地想要把所有语言都写上去...。
贴一个别人的简历。
(六)建议:
1.未雨绸缪,厚积薄发。
研究生所从事的研究方向,极有可能和找工作时的方向并不契合,在踏实地去完成导师所布置的任务之际,务必要挤出时间来思索自身的方向,要和学长以及同学展开较多的交流,在完成项目的进程当中寻觅到兴趣点,厚积薄发意味着在Github、CSDN上均存在相应的贡献,唯有厚积方可薄发。
2.项目为主,基础为辅。
一方面,得有契合工作方向的项目,这项目得具备难度以及创新点,那种简单的CRUD项目可不行;另一方面,要在计算机基础方面多花精力,Android基础、Java基础、计算机基础知识等,一个都不能少。
3.放平心态,冷静大方。
复习得把心态放平,别因今天有同学拿到了这个公司的offer,明天又有同学拿到了那个公司的offer,就出现情绪波动,进而影响自身效率。要保持一颗平常心,争取答出真水平。面试是个互相选择的过程,回答面试官问题时,要尽可能礼貌客气,尽可能有理有据,尽可能深入底层,尽可能全面概括。不过,要是碰到某些苛刻的面试官(比如*汤某面试官,别扯什么压力面),就得勇于怼上去。
4.及时沟通,面试总结。
应与HR及时开展沟通,要是未及时沟通,就有可能出现一个月后某团对我进行加面的状况,倘若HR面一周后能及时予以询问,大概不会出现加面情形;某米进行HR面时,自己表示想把工作城市base从北京变更为南京,随后却又有加面情况,哎..这不应该呀。每场面试结束后,均务必聆听至少一遍,再总结一遍,如此才会有成长(挂掉的面试听起来实在是太过痛苦啦)。
5.刷题刷题再刷题...刷面经。
提及算法,要是平日里积累并非那般丰富,那就将剑指offer以及Leetcode腾讯篇、头条篇刷上两三遍,如此便差不多牢固了,毕竟大部分的手撕代码只会给予面试者十几分钟的时长去书写,其难度也会相对地低一些。起始阶段能够去刷一刷面经,在此也要多谢牛客平台以及众位大佬的面经帖。
6.坚持就是胜利。
想想自己那两年半的研究生生涯,刚踏入实验室时满心不适应,如今成了项目组的小组长,一路走来实在极为不易。考研时做出的选择,给学姐帮忙干杂活的经历,被分配到好多个项目之中等等,种种情况又苦又累,然而终究坚持下来了。并且我能够讲,在每一个项目组里,都始终在认真积极地去解决问题,从来都尚未抱怨过。山重水复之际怀疑道路不通,柳暗花明之时发现别有洞天。坚信量变会引发质变,美好的事物终究将会发生。
感恩,感谢。下一站,字节跳动,我来了!
学习进阶
这个文件夹当中包含三十多本,面向Android小白到Android高级架构师的,必备学习电子书籍,文中所提及的大部分书籍,都被整理在了文件包里面。
大厂必备今典高频面试题合集,里面大概有50多份面试题。
如果想要得到上面整套学习Android高级架构师的资料,那就给我发私信【学习】啦!

CopyrightC 2009-2025 All Rights Reserved 版权所有 芜湖人才网 本站内容仅供参考,不承担因使用信息、外部链接或服务中断导致的任何直接或间接责任,风险自担。如有侵权,请联系删除,联系邮箱:ysznh@foxmail.com 鄂ICP备2025097818号-15
地址: EMAIL:qlwl@foxmail.com
Powered by PHPYun.