其他分享
首页 > 其他分享> > 简历打水漂,真不是你学历低;往往是技术深度不达标,这份Android面筋赶紧收藏

简历打水漂,真不是你学历低;往往是技术深度不达标,这份Android面筋赶紧收藏

作者:互联网

简历打水漂究竟是没包装好还是技术不够?

现在正是金三银四的旺季,很多有求职、跳槽打算的人最近都在完善更新自己的简历,打算趁此机会换到心仪的环境。

但是程序员相较其它工作岗位略有不同,最注重的就是技术。但是很多程序员会产生一个误区,觉得简历包装的好了,自然能有很多面试,反而不太重视自己的技术深度了,对自己的技术认知也不够。

结果简历发出去,面试邀请寥寥无几,只恨自己怀才不遇。

如今面试已经不是多年以前了,准备过程中一定要准备回答各种深入的理解、扩展。

但凡只要是你简历上写到的技术,你最起码要准备好回答以下这些问题:

1.该技术原理是?
2.做过哪些针对某些场景的优化?
3.哪些模块可以根据场景扩展?

如果你连原理都没掌握好,那这个技术点最好不要写到简历上。

所以,现在做面试准备,对于一些技术点,可以按照以下方式对自己进行考察:

1.该库的常见API使用;
2.该库在API层级的扩展,比如okhttp可以通过添加拦截器做一些事情;
3.该库的原理,可以考虑分哪些模块,每个模块具体行为;
4.该库的原理层级的优化,这方面很多优化都是根据特定场景的,从大的面上肯定该库做的已经够好了;
5.该库的原理层级扩展,比如修改某个模块替换实现;比如cache模块修改为DiskLruCache等。

一般最少能完成到第三点,最好能够完成第四点。

什么样的程序员是公司所需要的技术人才?

就我之前的工作经验来说,一个具有如下特征的Android程序员是公司所需要的:

  1. 具有本科及以上学历(名校更好)
  2. 具有2年及以上的工作经验(名企更好)
  3. 技术扎实,有技术追求和工作激情
  4. 良好的沟通和协作

在上面的四条中,其中第3条是最为重要的,即技术,技术是决定能否通过面试的最重要最直接的原因。一般来说,越是大公司,其对技术的要求就越高,尽管部分岗位并不需要那么好的技术,但是为了对候选者做出区分,其面试过程仍然会面试一些稍微深入的话题,相信大家都有所体会。

这里做下总结,理想的候选者应该是这样的:

  1. 扎实的技术功底,有技术追求
  2. 态度、沟通和为人都很好
  3. 2年左右工作经验
  4. 名校、名企、高学历(加分项)

由此可见,技术是面试结果的决定因素。那么到底技术掌握到什么程度才能比较轻松地通过面试呢?说了那么多,好像和Android没有一点关系,下面就开始以Android为例来分析下面试过程所需的技术。

Android面试过程所需要掌握的技术

一场面试都有一个流程,拿Android面试来说,面试内容不可能全是Android问题,里面应该会有编程基础相关的问题。我对Android面试中的问题做了下分类,如下所示:

一般来说,一个Android应用开发岗位是不需要太强的数据结构和算法的,但是这并不意味着候选者可以完全不懂数据结构和算法,所以数据结构和算法大家还是要稍微了解下,由于它不是必须的,所以就算面试过程中回答的不好也没关系,只要后面的Java、Android相关的问题能够完美回答就好。

接下来主要描述下面试过程中对Android技术的要求。在我对Android的理解这篇文章中,我对Android的技术类别做了一下划分,如下所示:

对于大部分面试者来说,大家的目标岗位应该是中高级,
中级岗位(T4)需要掌握的知识点是:基本知识点、深入知识点;
高级岗位(T5)需要掌握的知识点是:基本知识点、深入知识点、基本知识点的细节和系统核心机制。

Android面试需要准备内容的大致划分:(括号内为重要程度,最多5颗星)

细分:

以下细分内容,网络等计算机基础方面还不是很全面,持续更新中。
我会逐步更新各个知识点相关博客或资源,如果需要,建议关注。

Android

Java

设计模式(六大原则:SOLID + 迪米特)

算法、数据结构

排序

字符匹配:KMP算法
二分查找
二叉树遍历、翻转、重构;二叉查找树
红黑树
AVL树、哈夫曼树、B树(一般)

网络

基本是围绕OSI七层模型展开,首先是各层的功能、每层有哪些协议。

深入主要考察应用层和传输层:
应用层:

传输层:

操作系统、数据库

线程状态及其切换
线程、进程区别
(数据库重要程度相对低一些,正在整理中,后续会更新)

大家结合自己对Android的学习过程以及面试经验,在面试中遇到的问题是不是都是包含在上面的5个分类之中呢?对于1和5相信所有人都没有问题,但是对比2、3、4中的内容,大家是不是都能很好地Cover呢?换句话说,如果2、3、4中的内容大家都能很好地掌握,面试中的问题还能难倒我们吗?在前面的分析中提到,技术是觉得面试是否成功的关键因素,那么在面试前要做的就是把技术搞好,同时注意沟通和态度,这样的话通过面试岂不是很简单的事?

如何逐个突破Android面试中所需的技术

这里主要是指上面2、3和4这三个类别中的技术,说实话,这并不是一件很简单的事。

那么到底如何学习呢?

可以自己去网上找一些博客、书籍,进行各个知识点的突破,要有耐心,找到一个心仪的工作非一日之功。

首先要阅读源码,因为面试中的很多问题需要从源码中找答案。

其次要主动学习平时工作中遇不到的一些技术,由于项目的原因,我们不可能通过公司的项目来解除到Android中所有的重要技术,尤其是一些规模不大的项目来说,这个时候要主动去学习。也许有人要问:”我怎么知道哪些东西是需要主动学习的呢?“这的确是个问题,但是我在前面的分类中做了一些举例,大家可以先尝试学习下那些技术,它们都是很重要且时常在面试中出现的技术问题。

另外学习的过程中要注意积累,比如写博客、记笔记都是可以的,同时在Github上做开源也是不错的选择。

另外,为了更好更快地学习Android面试中所需的技术,大家可以先去阅读一下《Android开发艺术探索》,书中对前面的2、3和4类别中的技术细节做了详细深入的讲解,通过这本书可以达到立竿见影的效果。(而且这本书的内容也很适合面试)

下面我先提出几点重点,是面试官基本必问的问题,请一定要去了解!

知识系统化

系统化其实就是当你把一整个相关的知识都看过看懂之后,进行总结和建立各模块之间关系的过程。

每个人大脑“操作系统”是由概念和概念之间的联系的过程。系统化一方面可以加深知识的记忆,另一方面提供了另一个角度去理解这些概念,加大了概念的深入程度。

建议多做记录、总结,多在各模块、各学科之间建立联系,抽取统一适用的知识和智慧。

一点建议:

最后平时学习不知道怎么建立体系的,可以参考下我下面提供的面试复习路线:

面试系统复习路线参考

其实,对于学历普通也没有耀眼光环的人来说,进大厂就靠一条,那就是:技术实力。但是很多人在小厂待习惯了,总是用小厂的标准来衡量大厂的要求,屡次面试受挫,于是得出了一个结论:面试造飞机,入职拧螺丝钉。

接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用

帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这份资料中有所一些收获。

这里给大家提供一个方向,进行体系化的学习:

首先是超级详细得不能再详细的Android开发学习思维导图,因为图片实在是太大了,所以我就只把二级目录的内容放出来,更加详细的你们可以点击这里

接下来就需要梳理知识,提升储备了! 

1、看视频进行系统学习

前几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频,有需要的我也可以分享给你。

2、进行系统梳理知识,提升储备

客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

系统学习方向:

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

3、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

4、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

还有耗时一年多整理的一系列Android学习资源:Android源码解析、Android第三方库源码笔记、Android进阶架构师七大专题学习、历年BAT面试题解析包、Android大佬学习笔记等等。

以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

大家都有了以上相同的教程,但是人和人之间的区别在于:别人有颗更强大的内心,可怕的是比你聪明的人比你还要更努力!!

当你下定决心,准备前行的时候,剩下的只有坚持了。。。

标签:知识点,打水漂,技术,面筋,学习,面试,源码,Android
来源: https://blog.csdn.net/YoungOne2333/article/details/115471431