美文网首页Android开发程序员Android技术知识
资深程序猿给大家 3 个走心的面试建议

资深程序猿给大家 3 个走心的面试建议

作者: 06fd4cf1f427 | 来源:发表于2019-07-01 22:34 被阅读73次

    面试如作战,我们看战争影视剧的时候,经常看到这些剧作往往主要聚焦于作战过程、战场战略,对战前准备给的篇幅往往很少。实际上,战前准备也是关键的一环,没有充足的粮草、车马、兵器的准备。别说赢得战争,投入战斗都不可能。

    这个道理在面试中也是一样。如果不做面试准备,就犹如不磨刀枪上战场,胜负更多则靠运气。尤其是对于刚刚毕业的大学生来说,成功的面试,往往基于充分的准备。充足的准备,有可能做到十发九中,面试一家成一家。

    那么面试之前,我们需要做哪些准备,才能做到胸有成竹呢?这个话题将从对于简历的准备、对面试公司的了解等方面来说。今天在这里给大家之后的面试提出3个走心的面试建议,希望对大家有帮助,也祝大家面试顺利~

    经常会有朋友私聊我帮他看下简历,发现了一些共性问题;除此以外,我偶尔面试一些同学,有一些个人的感受分享给大家。

    简历信息要直观

    简历首先要经过 HR 这一关,HR一般情况下是第一个决定你简历是否能往下投递的人。

    所以,我们首先需要站在他们的立场,思考他想看到什么就行了。

    对于基本信息:毕业院校,毕业时间,联系方式这些核心信息我们就不赘述了。

    我见过一个简历上面的项目经历,项目名大概是这样的

    • 2016-2017 BBV线上项目
    • 2017-2018 功夫线上项目

    扫了一眼,完全不知道是什么项目。

    你不能预期HR去花时间读你简历中的项目介绍,去推断你这个项目的类型...

    于是我咨询后发现,BBV是个区块链app,功夫是个餐饮类app。

    那么你不如就修改为下面的写法,更加直观:

    • 2016-2017 区块链app (BBV)
    • 2017-2018 餐饮类app (功夫)

    【知名项目除外,不要参考这一条。】

    简历上表达出专业技能

    1. 方便 HR 查看技能匹配度

    任何面试岗位都有要求,部分 HR 也会关注简历与发布岗位的匹配度的。

    这里也有个小技巧:你可以灵活的匹配这个岗位的要求(但不要把不会的写上去)。

    2. 面试问题的主要来源

    面试官,主要通过交流、提问,来确定你的技术深度、广度,以及对该岗位的匹配程度。

    那么,提问问题哪来呢?

    当然是从你的简历内容中来。

    所以你简历中要明确表现出专业技能的掌握情况:

    例如这样:

    专业技能

    • 熟悉Android热修复、插件化、dex,arsc等相关技术
    • 熟悉Android 常规的事件分发、自定义控件、动效等相关
    • 熟悉面向对象,在意封装、继承,和接口设计
    • 熟悉Android性能优化常规手段,有一定的实战经历
    • 熟悉Android 四大组件相关framework代码
    • 熟悉编写gradle plugin,有一定的实战经历
    • 熟悉Https在Android上的适配、以及应用防破解相关知识
    • 了解NDK开发,有过一点JNI开发经验

    如果你项目比较出彩,也可以将专业技能拆分到项目介绍中去。

    这样你可能会遇到一个很 nice 的面试过程:

    A:看你做过XXX,说说怎么实践的。
    B:我在项目中这么实践的,而且遇到过以下几个问题,是这么解决的。
    A:我也遇到过,我是这样解决的,不过感觉你的方案好像也不错。
    AB: 开心的深入交流下去。
    ...

    但是,如果你没有写专业技能。

    那么遇到好点的面试官,可能会跟你交流项目,从你的陈述中去确定你用到哪些技术才能进行发问。

    当然,很多时候面试还挺紧张,一问一答,项目介绍也很简单就过去了。

    面试官就很郁闷了,问啥呢?

    那只能问他比较熟悉的东西了,可能面试官主要是做插件化相关的,而你主要是做组件化相关的,这种情况就可以能造成你俩不在一个频道了,非常吃亏。

    很可能面试流程就变成了:

    A:你有没有做过 XXX。
    B:没做过。
    A:那你有没有做过 XXX。
    B:没做过。
    A:(内心)这B到底做了哪些事...
    B:(内心)问的什么屌问题...
    ...

    当然,千万不要写自己没有深入了解过的技能,凡是你列出来的,会默认你对此有掌握有一定的深度,而不是被提问时,回答:

    • 这个我就用了一下...
    • 这是我同事接进来的...
    • 源码我还没来得及看...

    对于第三库原理回答要有针对性

    对于回答问题,在回答出问题的同时,尽可能关联到自己所经历的具体的项目场景

    下面我说一个真实的体验,关于第三方库原理,基本上面试都会被问到。

    比如问你图片加载框架 freso 的原理:

    有的同学回答是这样的:

    “首先根据 url,看看有没有缓存,有缓存从缓存中取,没有 build 一个 request,放到线程池执行。”

    乍一听好像也没错,但是,任何一个完备的图片加载框架不都有这个流程么。

    所以,问你一个开源库,除了回答基本原理流程,你心里要明确知道这个库的核心架构与特点,设计的比较好的地方,可以扩展的地方。

    如果项目中还针对做过优化、监控等就更好了。

    比如刚才问到的 fresco:

    • 你可以说说他的整体设计架构;
    • 你可以说说他的图片内存管理机制,在不同的版本手机上,然后深入下去;
    • 你可以说说他的Producer/Consumer 机制,以及如何利用这个机制去做扩展,项目中的定制;
    • 你可以说说根据自己业务情况做了哪些优化;
    • 甚至说一些它的缺点;
      ...

    所以,对于第三库的原理,希望你能掌握:

    1.基本原理流程;
    2.整体的架构设计;
    3.做的比较好的地方,以及这些地方设计与原理;
    4.结合项目的定制、优化、扩展;

    其实这个建议,也能反推出另一个问题:

    如何学习开源项目源码?

    很多同学学习一个开源库源码,花费了非常大的力气去梳理代码执行流程,然后终于衔接起来,长舒一口气就结束了,那么就有点可惜了。

    根据上面建议的回答可以看出来,梳理清楚执行流程只是第一件事。

    你要去深入发现:

    1.核心的架构设计是什么样子的?
    2.和其他类似开源库相比有什么优势?
    3.这些优势是如何做到的?
    4.哪些部分可以定制,方便我们日后进行扩展?

    最后,虽然有很多优秀的简历模板,各种面试技巧,但是千万不要舍本求末,始终要牢记个人履历才是关键,希望大家随着工作年限的增长,履历也越来越丰富

    希望本文对你有所启发,有任何面试上的建议也欢迎留言分享给大家。

    好了,今天的分享就到这里,如果你对在面试中遇到的问题,或者刚毕业及工作几年迷茫不知道该如何准备面试并突破现状提升自己,对于自己的未来还不够了解不知道给如何规划,可以加一下下面的技术群来看看同行们都是如何突破现状,怎么学习的,来吸收他们的面试以及工作经验完善自己的之后的面试计划及职业规划。

    这里放上一个两千人的技术交流大群:Android架构设计(185873940)

    PS:群内有许多技术大牛,有任何问题,欢迎广大网友一起来交流,群内还不定期免费分享高阶Android学习视频资料和面试资料包~(如下:)

    偷偷说一句:群里高手如云,欢迎大家加群和大佬们一起交流讨论啊~

    最后

    如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。

    再推荐一篇文章,具体的架构视频,面试专题,学习笔记都在这篇文章中:“寒冬未过”,阿里P9架构分享Android必备技术点,让你offer拿到手软!

    相关文章

      网友评论

        本文标题:资深程序猿给大家 3 个走心的面试建议

        本文链接:https://www.haomeiwen.com/subject/arhocctx.html