22岁专科菜逼Android开发之路的2021年终总结

转眼已经到了2021年的末尾,回首这过去的一年,发现自己曾经定下的目标一个都没有完成。

前言

我是一个专科毕业的菜逼,大学的最后一年发现自己什么都不会,听说程序员赚的多,就趁着培训机构来学校讲课的机会报了个培训班。

在培训班的时候正好疫情来了,就全部改为在线学习,那段时间没人督促也没有好好的学技术,导致自己现在的基础很差。

等学完了出来也只能在二线城市找了个7.5k的工作,这期间边上班边还贷款还是挺吃力的。

虽说公司小,但好歹是个甲方,过年过节的福利是真的挺不错的,干了一年半这期间还给我涨了20%的薪水,过年还有三个月的年终奖,唯一我不太喜欢的就是里面的人挺卷的,尤其是我的老大,天天卷到8、9点钟,加班还没有加班费。

今年公司连续接了好几个项目,加班加点没日没夜的,终于把我的腰间盘给累的突出了,在医院看病的期间我还是下定了决心准备跳槽。

准备阶段

疫情向好、面试在即,还在迷茫踌躇中的后浪们,如何才能在面试中让自己脱颖而出,让面试官眼前一亮?

文章末尾我将分享几篇干货满满的面试笔记和资料给大家,记得一定要好好收藏哦!!
首先准备一份漂亮的简历

一份漂亮的简历就是你进入大厂的敲门砖。

网上有很多教程教大家如何写出一份漂亮的简历,这里我就不做重复劳动了,大家可以去网上直接下载。

今天我就要逆向思维讲解一下什么样的简历是糟糕的,这里大家一定要检查一下自己的简历有没有如下的毛病:

  • 薪资期望定得过高或者过低。我们在简历上填写的期望薪资,建议和投递的岗位薪资范围较为接近,懒人可以直接填面议。因为定得过高,面试官看到之后可能会加大面试过程中提问问题的难度。(你想啊,你定的薪资都比面试官高那么多,人家心里什么滋味?还不把你往死里问,看看你到底值不值这个价?)但是如果你定得过低,面试官可能直接就选择忽视你的简历了,毕竟工资又不是面试官发的,人家只是想招进来一个有能力可以背锅的,你定得那么低,明显是对自己水平没信心,也就不会考虑你了。
  • 对自己盲目自信,自己搞不明白的也往简历里写,什么都写精通。这也是非常常见的问题。简历最讲究的是真诚,会什么就写什么,不要为了凸显自己多厉害而胡乱往上写,否则害的还是你自己。你要知道的是,一般好一点的面试官都会简单结合你简历上填写的内容进行针对性的提问。因为技术可提问的点非常多,但是面试的时间是有限的,那么如何才能快速地考察一个人的技术水平呢?最简单的方式就是结合这个人的工作经历进行针对性的提问。其实面试最基本的一项任务就是验证你简历内容的真实性
  • 简历内容过于丰富,技能内容与岗位描述匹配度不高。我就经常在Android招聘岗位上收到很多奇葩的简历。这些人的技能树通常是:C,Android,后台,js等,也就是俗称的全干工程师。说真的,即使你真的全会,你写的这个简历也只是适合小厂的面试,因为大厂是不会去招一个什么都会,什么都不精的人的。你需要在简历中着重突出你区别于其他人的优势,最好的做法就是什么样的岗位投递什么样的简历,多做几套简历作为备选。
  • 工作经历过于丰富。例如3年待过3家及以上数量的公司。工作经历丰富固然是好事,但你也不能全都写到简历里去,选择2~3家较为有名的公司介绍一下即可,否则别人会对你的团队协作能力以及忠诚度提出质疑。
  • 项目经验过于简单或者论文化。无论你的项目经验是多还是少,列举3~4个即可。除此之外,项目经验切忌不要论文化,我经常看到很多人的简历上项目经验是大段大段的描述,加起来可能有2~3页纸...说真的,你写这么多,面试官反而不会看,因为想全部看完实在是太累了。这里你只需要简单介绍一下项目的内容、你负责的模块和担任的角色、涉及到的技术以及最后项目的成果等即可。
  • 技术博客或者github主页没有什么内容也写到简历里。记住技术博客或者github主页这一类的,本来都属于加分项,可有可无的,但是如果你写了,面试官誓必会满怀期待地点进去看,如果这个时候呈现给他的却是空白页或者寥寥几行内容的话,这种一落千丈的感受会给面试官留下非常不好的印象。
  • 简历中填写很多对求职无关的内容。与职位要求无关的内容就不需要写到简历里去了。因为你的简历是拿去找工作用的,任何一个与找工作无关的内容写到简历里只会浪费你简历的空间。例如你的一些兴趣爱好或者无关证件。

自我介绍要背得滚瓜烂熟

自我介绍可以说是面试的必要环节,无论你参加什么形式的面试,面试官一定会首先让你做一个简单的自我介绍,所以自我介绍这一关一定要准备充分,最好做到烂熟于心。

自我介绍不是简历的重复背诵。我们在做自我介绍的时候,一定要把握好重点,切忌过长或者过短。

自我介绍的过程,也是一个自我推销的过程。你可以把面试官当作你的顾客,而把你自己当作推销的产品。你要做的就是使用最真诚的方式,把你个人的工作经验、优点、能力与面试公司的岗位需求紧密结合起来,让面试官相信招这个人进来确实可以分担工作的压力。

那么我们在做自我介绍的时候,需要介绍哪些内容呢?下面我简单列举一些内容供大家参考:

  • 个人基本信息。个人信息的介绍要突出重点。我们需要把重点放在与 「公司需求」 匹配的信息上,如果该信息匹配或有关联,那么我们就说,如果完全没关联,那就一句话带过或者不说。
  • 工作经历。如果你的工作经历非常丰富,那么简单挑1~2家和目前应聘公司类似的简单介绍一下即可,其实底层的逻辑就是过去经历是否与目前应聘岗位相匹配或有关联。
  • 项目经历。项目经历不要讲太多,挑一个匹配的或者印象最深刻的重点讲一下即可,其他的可以一笔带过。项目经历可以简单从四个维度展开:项目的背景、项目的内容、你在项目中承担的角色和工作、项目的成果或者业绩。
  • 未来愿景。说一些积极向上的内容,进一步说明自身与岗位相匹配,描绘未来愿景,从而更好地打动面试官。(要让面试官觉得招你进来是非常有价值的,小伙子不仅是冲着钱来的,还是有追求讲情怀的)

自我介绍不易过长,准备2~3分钟即可。与此同时,你平时还需要多加练习,根据不同的公司、不同的场合以及面试的不同岗位,进行不同内容的自我介绍。

面试前多刷刷面试题

面试前多刷面试题,是对面试最起码的尊重。

虽然我在这里不提倡大家临时抱佛脚,但是适当地抱一抱佛脚也比那些什么都不准备,就直接裸面的人要好很多,至少你的态度是端正的。

临近年终,很多人开始蠢蠢欲动了,总有一些人啥都不准备,直接甩两膀子就去面试的。面试基本上是一问三不知,要么就是说之前看过忘了...更有甚者直接就说,我就是出来面个试感受一下面试气氛以及最新行情的...

拜托,能不能给予面试最起码的尊重?你来面试也是需要花费面试官时间的,简单准备一下不香嘛?万一你运气好,恰好这家公司职位扩充,降低面试要求了呢? 你这么随便,岂不是把白花花的机会全都给浪费掉了嘛!

下面给大家总结出来了一些面试常见的知识点,还有对应的PDF电子书,有需要的朋友文末有自助领取方式。

Android技术面试一般涉及的要素

Java基础

面试Android岗位,Java基础那是必问的。如果项目中使用kotlin比较多的话,可能还会问一些kotlin相关的问题。

Java, 作为一门基础语言,考核的是应聘者是否具备扎实的基本功。很多培训班或者非科班出身的人,经常会栽在这一环节。一般这个环节的问题答不上来的话,基本上是提前结束了。

那么常见面试的Java基础问题有哪些呢?下面我们简单列举一些供大家参考:

  • 1.Java集合类List,Map,Set相关的实现原理。
  • 2.Java线程池的实现原理和使用
  • 3.Java线程同步相关的知识点。
  • 4.Java锁机制,以及死锁产生的原因以及解决方案。
  • 5.Java反射、泛型、注解相关的知识点以及使用。
  • 6.Java类加载机制。
  • 7.Java虚拟机的资源回收机制以及算法。

22岁专科菜逼Android开发之路的2021年终总结_第1张图片

以上基本上是面试Android岗位的常见考点,所以我们必须重视对Java语言的学习和理解,即便你在平时工作中使用kotlin较多,也不能忽视对Java基础知识的巩固和学习。

Android基础

Android基础,不用说这是面试Android岗位必须要问的内容。要是连这个都答不上来,基本你的面试就提前结束了。

Android基础是任何Android面试都需要考核的内容。不过这也是按级别而定,一般高级开发工程师的面试,Android基础只是一笔带过。

那么Android基础有哪些呢?下面我们简单列举一些供大家参考:

  • 1.Handler机制以及相关知识。
  • 2.Activity和Fragment生命周期。
  • 3.Android四大组件相关的知识。
  • 4.Android进程间通信的方式。
  • 5.Context相关的知识。
  • 6.Activity的启动模式。
  • 7.Android动画相关知识。
  • 8.Android自定义组件相关知识。
  • 9.Android事件分发机制以及触摸事件冲突的处理。
  • 10.ANR产生的原因以及避免ANR的方式。
  • 11.内存泄漏产生的原因以及定位解决的方式。
  • 12.OOM产生的原因以及解决的方式。
  • 13.Android页面渲染机制以及优化方式。
  • 14.LinearLayout、FrameLayout、RelativeLayout和ConstraintLayout的理解和性能对比。
  • 15.Android各版本的特性。
  • 16.Android屏幕适配的技巧。
  • 17.MVC,MVP,MVVM的理解与实践。
  • 18.Android的主题、样式、属性相关的内容。
  • 19.JNI相关的知识。
    22岁专科菜逼Android开发之路的2021年终总结_第2张图片

以上内容是作为一名合格Android开发工程师所必备的知识点,也是常见的考点,请务必每条都要清楚掌握,
这样你在面试过程中才能游刃有余。

Android源码分析

Android源码分析,算是要求较高的考核。不过这在大厂面试中非常普遍,因为很多大厂对Android源码的分析和理解都有相当高的要求。

那么常见的Android源码分析有哪些呢?下面我们简单列举一些供大家参考:

  • 1.Android系统的启动流程分析。
  • 2.APP启动的流程分析。
  • 3.Activity的启动流程分析。
  • 4.Zygote进程的创建和启动流程分析。
  • 5.Window窗口创建和加载的流程分析。
  • 6.Dalvik和ART的理解。
  • 7.RecyclerView的源码分析。
    22岁专科菜逼Android开发之路的2021年终总结_第3张图片

阅读源码是一件相对枯燥的事情,如果平时工作中涉及不到的话就很难坚持下去,因此需要非常强的毅力。不过话又说回来,如果你能够熟练地掌握Android源码的话,那么就非常有机会进入大厂了。

Android进阶技能

这部分一般是对Android高级开发工程师的考核,主要涉及的点主要是一些性能优化,技术细节方面的问题。

要想成为一名高级开发工程师,性能优化以及架构设计永远都是绕不开的话题。做技术如果只是广而不深的话,是不可能成为一名高级开发工程师的。只有不断提升自己的不可替代性,才能提高自己的价值。

那么常见的Android进阶技能有哪些呢?下面我们简单列举一些供大家参考:

  • 1.App稳定性优化。(crash、性能以及体验等)
  • 2.App启动速度优化。
  • 3.App内存优化。
  • 4.App界面绘制优化。
  • 5.App瘦身优化。
  • 6.App安全优化。
  • 7.网络请求优化。
  • 8.WebView使用优化。
  • 9.RecyclerView的缓存刷新优化。
  • 10.AOP技术的原理和实践。
  • 11.gradle脚本持续集成技术。
  • 12.App进程保活。

22岁专科菜逼Android开发之路的2021年终总结_第4张图片

以上只是Android进阶技能的一小部分通用性技术,除此之外还有很多细分领域相关的进阶技能。总之,如果这项技术是你掌握而其他人普遍不了解的,那么它就属于进阶技能。

新技术研究

Android这些年的技术发展基本上已经趋向成熟,所以对于新技术的研究也并不是那么看中,可能面试官就是随口问一下,想要知道你的学习欲望强不强罢了。

那么有什么新的技术可以在业余时间进行研究呢?下面我们简单列举一些供大家参考:

  • 1.Android组件化。
  • 2.Android插件化。
  • 3.Android热更新技术。
  • 4.Android JetPack框架技术。
  • 5.Kotlin开发技术。
  • 6.Android Hook技术。
  • 7.AOP技术。
  • 8.依赖注入技术IoC。
  • 9.跨平台开发技术:ReactNative、Flutter等。

22岁专科菜逼Android开发之路的2021年终总结_第5张图片

上面的内容,其实很多已经算不上新技术了,如果你现在还不了解的话,那么你最好花点时间了解一下,否则我只能说你是真的out了。

开源项目源码分析

开源项目源码分析和Android源码分析一样,也是考核应聘者对原理的理解。如果仅仅只是会使用而不对其原理加以了解的话,那么你也只能算是达到初级水平,这样是无法进入到大厂的。

那么开源项目的源码分析我们应该怎么做呢?首先我们需要带着问题一点点阅读源码,搞清楚其内部的实现逻辑,然后梳理出其大致的设计架构,画出UML图,最后总结出其中运用到的设计模式和思想。

那么有哪些优质的开源项目值得我们去研究其源码呢?下面我们简单列举一些供大家参考:

  • OkHttp
  • Retrofit
  • Glide
  • LeakCanary
  • RxJava
  • ARouter
  • EventBus
  • ButterKnife
  • GreenDao
  • Dagger2

以上我列举的基本上都是我们平时开发过程中经常使用到的开源项目,认真研究和分析他们的设计思想和精髓,并积极运用到我们平时的编码当中去,可以让我们的技术得到质的飞跃!

算法

部分大厂对Android开发工程师的算法也是有一定要求的,这部分没有什么好说的,打开LeetCode去多刷刷题就可以了。

虽说Android开发工程师也需要掌握一定的算法,不过和那些专业做算法的相比肯定是没那么高的要求的,我们并不需要把LeetCode的每道题都刷一遍,只要把一些简单和中等难度的题刷一遍就可以了。

那么常见的Android算法题有哪些呢?下面我们简单列举一些供大家参考:

  • 1.各类排序。(尤其二分法插入排序、归并排序需要着重掌握其思想)
  • 2.手写反转链表、链表复制、链表合并。
  • 3.手写队列或者链表等数据结构的实现。
  • 4.字符串匹配、去重问题。
  • 5.双指针算法问题。
  • 6.数组查重问题。
  • 7.二叉树的遍历和序列化。
  • 8.贪心算法相关问题。

22岁专科菜逼Android开发之路的2021年终总结_第6张图片

一个好的算法可能极大地提升应用的性能,如果你平时有心的话就会发现在Android源码中也经常能看到算法的身影,感兴趣的可以阅读一下SparseArray的源码。

最后

如果你能够一直坚持看到这儿,那么首先我还是十分佩服你的毅力的。不过光是看完而不去付出行动,或者直接进入你的收藏夹里吃灰,那么我写这篇文章就没多大意义了。所以看完之后,还是多多行动起来吧!

以上这些内容均免费分享给大家,需要完整版的朋友,可以加我的技术交流群:34+5659+112,群内有很多Android大佬。

可以非常负责地说,如果你能够坚持把我上面列举的内容都一个不落地看完并且全部消化为自己的知识的话,那么你就至少已经达到了Android中级开发工程师以上的水平,进入大厂技术这块是基本没有什么问题的了。

你可能感兴趣的:(android程序员)