数据结构
-
链表的是否相交 当时提供了几种解法,然后自己给自己挖坑了
-
如何判断交点
面试时都考察哪些
一、简历是否真实
这其实是面试第一要务,面试的过程其实就是看简历是否属实的过程,因为能到面试环节,说明这个人是符合要求的,不满足要求的早就被剔除了,如果他真的如简历描述的那样,100%会招过来,如果人人都如此,那就不需要有面试这种过程了。
需要注意的是这里的真实有三层含义:
-
如实描述自身经历,很多人只在一些大项目里做一个很小的螺丝钉,但简历里往往夸张这段经历。
-
不知道自己不知道,常见于简历里各种“精通”开头的描述,因为知识体系与视野的局限,明明只是了解很浅却夸口精通,很多时候他并不认为自己说的有问题,而是真的以为自己已然精通,有点井底之蛙的感觉。
-
简历里的真实要与你的期望相匹配,一门技术了解到怎样的程度才算精通,很难有定论,所以这里的“真实" 只能是候选人与面试官标准之间的契合,这种有主观运气成分,也许面试官水平不够错误判断了你,也不用感到不爽,面试何尝不是种双向选择呢。
二、技术的深度
技术的深度一向是面时光最看重的部分,当今任何一个技术领域都非常宽广,一个人要同时掌握那么多知识并且都深入几乎不可能,那都需要拼学习效率与工作年限了。而你曾经做过的东西,正在做的东西,是绝对可以了解得更深入的,一个对技术有好奇心,有技术热情的人,都不会仅仅停留在这个东西挺好用,而是会忍不住去探究它背后的技术原理,即便不是亲自去看源码,也会花点时间了解别人整理过的经验,所以单凭考察技术上的深度,就可以考察-个人是否对技术有热情 ,是否有技术好奇心等等这些很多大牛认为的所谓“优秀程序员的特征”。
之前曾看到过一句话:“一个人对他所做的事情了解得越深,他就能做的越好”。放在这里再合适不过了。
三、技术的广度
深度是有了,还需要广度吗?我个人的理解是:深度是必要条件,广度是加分项。同样的有技术好奇心的优秀程序员,也不会满足于仅仅局限于自己的一亩三分地,工作之余,也会想要尝试一些其它的领域和方向,因为投入问题也许不够深入,但很多领域知识你知道与不知道,对你个人知识体系的形成关系很大。
比如你要实现一个功能, 在你当前熟悉的技术领域上很困难或者效果不佳,在你就要放弃时你的同事告诉你,这用一个简单Sqi语句就可以实现啦,为什么要搞得那么麻烦?这个例子虽然举得很蹩脚,但是我想意思大家应该已经明白了。知识越有厂度,头脑里的技术体系就越备,同样的问题,你就可以想到N个解,思考一下就得出最优解了 。
如果你听都没听过一些东西,就会经常说出“这个好难搞啊”、"这根本就不可能”其实有的时候真是知识的局限问题,所谓的从0到1难,也是这个意思。
四、逻辑思维能力
这也是一些面试官比较看重的一点,这里并不是指那些臭名昭彰的脑经急转弯问题,而是通过交流观察,判断一个人表达观点逻辑是否清晰,回答问题是否有章法,这个很难描述,但如果你细心观察,你会发现很容易通过一些简单的交流,就可以看出一一个人是否逻辑清晰。
有时候你会觉得某个人表达沟通很不错,其实不是沟通的问题,是他说出去的话,经过了他大脑的条理清晰的整理,让你很容易就能明白。这种习惯不是一朝一夕就能养成的,所以面试过程中这点装不出来。
另外一个人如果逻辑清晰,而且反应又敏捷,语速很快,那是大大的加分项,恭喜你,距离offer不远了。

面试前系统复习的重要性
我也已经做了好几年开发了,还记得刚出来工作的时候觉得自己很牛逼,现在回想起来也蛮好笑的。懂的越多的时候你才会发现懂的越少。因为如果你的知识是一个圆,当你的圆越大时,圆外面的世界也就越大。
工作将近8年,似乎一直都在救火式的学习。遇到问题,才着急忙慌的上网查,边学边用,这种方式诚然是100%学以致用的,但是这种头痛医头脚痛医脚的方式并不会对自己日后解决新问题有多少助益。
面试新工作时我们难道可以以此作为核心竞争力吗?
福尔摩斯的神探能力也许是通过破解一件件错综复杂的案件获得的,但是促使她破案的绝不仅仅是对犯罪现场的敏锐观察,他的推理很大程度上取决于他对某些领域的系统知识的掌握以及独到见解。处理问题的能力很重要,但是这个能力需要有专业及系统化的理论知识作为支撑。
不管是往深了学,还是横向扩展知识的广度,重要的是得找到那个圆心,然后以或大或小的半径去打磨围绕这个圆心的各种技能。这样,找工作时才能底气十足,才能有望在某一个领域成为专家。
面试需要具备哪些技能?
-
Java基本功,这个是必备知识。如果说面试到时很少用,并不代表后面项目不会用到。而且,如果基本知识都掌握不好,说明还有很多提高的空间。
-
Android基本知识也是要的。如果连android基本知识都理解不深刻,那我估计想开发出一款好的软件也没那么容易。
-
面试的问题不常用或是比较难的,其实,说明面试官想对你做深层次地考核,答得上来是加分项。
-
面试官也很忙的,面试题大多也是网上找到。
-
有时候,需要的并不是标准的答案,而是看你的学习能力、知识广度、分析问题的思路、解决问题的技巧等等,这个才是面试官关心的。
面试复习路线参考
- Android学习路线图
首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!

- 模块化学习资源
接下来是每个模块我整理出来的文档学习资料,帮助大家更细致化的学习。
《Android汇总复习资料—Java》

《Android汇总复习资料—Android》

《Android汇总复习资料—Android扩展》

《Android汇总复习资料—Kotlin》

《Android汇总复习资料—Flutter》

《Android汇总复习资料—算法》

除了上面的学习路线,还可以额外的配合以下方式系统学习,效果翻倍~
1.用心刷题,加深印象
可以说每一个位程序员在面试前夕都会以刷题来记住面试考点,但是这些都是有重复性的。一味的刷题只能称之为低效复习;
因为题是死的,面试官是活的,面试官会根据你的开发经验而随机改动面试题;而我们刷题是为了梳理出自己的技术栈,理出面试题背后的原理和逻辑,并加深印象。所以说,死刷题带来的效率并不大,重要的是理解出面试题背后所涵盖的原理。
**建议:**面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,Android技术栈的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

2.看视频进行系统学习
业务写多了,日常的工作流程也就形成了。大概率的程序员在工作几年以后就会忘记最基础的知识点,导致技术栈非常零散,这对我们的技术提升是非常不好的,我们做到的是要以点连线,覆盖成面。
所以,关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,有深入的也有基础的。
但是,唯一的缺点就是免费的容易过时。
这里我自己也珍藏了好几套视频,有需要的我也可以分享给你。
3.读源码,看实战笔记,学习大神思路
最后
总而言之,Android开发行业变化太快,作为技术人员就要保持终生学习的态度,让学习力成为核心竞争力,所谓“活到老学到老”只有不断的学习,不断的提升自己,才能跟紧行业的步伐,才能不被时代所淘汰。
在这里我分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。



还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
…(img-lGBmx04K-1715413885864)]
[外链图片转存中…(img-9ZNqSpdc-1715413885865)]
还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
3184

被折叠的 条评论
为什么被折叠?



