Android 开发经验

前言

专栏的其他文章都针对 Android 面试不同的方面做了很深入的剖析,我就主要说说10月到11月小米面试前后的一些总结吧!当然,我不会透露任何的面试细节,即便是我说了,对大家也没任何帮助,因为面试面的是内力,不是要你给出每一个问题的标准答案,而是要你给出这个问题的你的、自己的答案

作者简介

首先简单说说自己的经历,13年一个普通二本学校软件工程专业毕业,12年去了一家外包公司(实打实的做外包项目),太累,趁毕业辞职回了学校。13年毕业稀里糊涂和几个哥们开始自己创业,不到一年,团队解散。然后到了我上一家公司,从一个人独立的做项目到组建移动端团队,其中也有参与的产品目前每月可以收入上百万。但是,今年年中,我突然发现这3年多时间自己变化甚微,不仅仅是收入,还有技术、能力……甚至都开始迷茫了,接下来到底该往哪里走,继续技术深入?目前的平台没有需要;直接转管理?个人对管理这个东西还是比较敬畏,不希望别人做我的小白鼠耽误了别人,当然我也反感做别人的小白鼠(这也是离职的一个因素)。上一个家公司能给的就只有平淡的稳定,所以这个时候我开始反思是不是应该去经历一下大公司、大平台,此前觉得进了大公司后面还是要自己出来,何不就直接就在创业公司打拼呢!现在想想,有一个很重要的自身因素是非常重要的,那就是积累(业务能力、高度等等的能力),如果没有积累,就得不到信任,这是一个很残忍的现实,关于这点,我就不再深入了,相信在小公司工作过几年的同学都有自己的认知。因此,我决定找工作了!

关于简历

面试首先要提到的就是简历,简历这个东西真的是一个很深奥的事情,为什么深奥,其实是对像和我这样的人深奥:学历不好、工作经历不好。当然,这和目前技术研发人才需求的大环境也有关系,而且上述两点会越来越影响简历的通过性。说一个真实的事情大家就有概念了,这是一个前同事私下告诉我的,他比我先一年多离开公司,然后到了一个大厂(一个大电商),他现在也负责招聘面试,如果社招简历不是硕士,都会往后排排,虽然这不是公司规定,但是他们实际就是这样操作的。是不是很吓人?他自己都觉得吓人。说了这么多,那怎么办呢?学历不好、工作经历不好就别指望找到好工作了?当然不是,其实面试还是考的内功,简历只是一块敲门砖,如果你的内功深厚,并且能够很好的体现在简历上,那么简历真的只是一个简历而已。大家应该注意到了,上面提到了两点:

  1. 将能力很好的体现在简历上
  2. 内功深厚

如何将能力很好的体现到简历上其实不是一个理工科同学擅长的技能,所以要多写多改多请教,多找找有经验的朋友帮你看看,即便是没有这样的朋友,相信大家也有能力和渠道去接触到这样的人。另外关于简历的格式网上有很多文章,前面专栏里文章也有提到过,这点就不再深入了,有一点很重要的我觉得应该加强一下大家的警惕,就是用过,但是知道不深入的技术点一定不要写在简历上,一般大公司面试有一面一定是简历面,也就是按照你简写上写的技术点问,如果发现你写了,但是又说不出来很深的东西,那就相当减分了,所以这一点一定要注意。总之,简历不是你面试通过最关键的东西,最关键的是第二点:内功

关于内功

一个怎样的Android工程师才能进入到大厂呢?下面几个方面往往是需要具备的

基础

要想拿到大厂的offer,基础好是一个硬性条件,对于计算机相关专业毕业的同学来说,这些基础就是你大学所学的课程,如果不是计算机相关专业毕业的同学,那么就需要在基础知识这个方面下足功夫了,具体来说下面的东西必须掌握:

  1. 操作系统原理(里面有一些计算机组成原理的知识需要简单掌握)
  2. 网络原理

如果你没有掌握这些知识,或者之前学过,但是忘了怎么办?学啊!怎么学呢?去网上找一些大学的公开课,我是看的清华的,至于哪一个学校的适合你,就只有你自己判断了。可能大家会有疑问,面试会问这些知识吗?直接问的很少,但是只有你了解了这些知识,才能更深入的了解一些技术和知识。举两个例子吧,第一个,如果要做Android里的网络优化,你不知道网络里面的一些原理,你怎么知道怎么优化?如果你不知道UDP和TCP的详细区别,技术选择时,你怎么知道选择哪一个作为你通讯的协议?关于网络还有一个出现概率很高的问题就是TCP的三次握手和四次握手,其实它就是网络原理里面的知识。第二个,操作系统中,内存是发挥什么作用的,又是怎么工作的,知道这些,你再去了解Android的内存管理就信手拈来了。

数据结构和算法

数据结构和算法其实是分开的东西,我们需要先掌握各种数据结构,再去加深算法,数据结构和算法其实也属于基础,但是它现在越来越重要,所以我就单独拿出来说了。数据结构怎么深入同样我也推荐大家去看清华或者浙大《数据结构》公开课,特别是清华的,值得反复研究。至于算法,首先要做的就是动手,LeetCode上直接干!第二阶段就是要总结各种算法的思想和套路,像递归、动态规划等这些算法都是有套路的,在LeetCode上也有按数据结构和算法分类的筛选,大家可以针对性练习和总结。当然,对于一个Android程序员,能做到每天在LeetCode上刷题就非常不错了,所以一定要坚持,等你坚持到一定的时间,你会发现你越来越游刃有余,我从15年底开始在LeetCode上刷题,目前已经刷了200多道了,小米的面试也非常注重算法,还要能写。而且对一些特别注重算法的公司,算法这块的考核非常严苛,对,就是严苛,而不是严格。

设计模式

设计模式中包括了设计原则,其实对于Android开发人员来说,设计模式就那23种,知道并了解这些设计模式是第一个阶段,仅仅是到这个阶段是不够的,一般面试也不会问你某个设计模式的概念,而会让你具体的说说你对某一种设计模式的深入了解和使用,它的优缺点,所以,第二阶段就是要运用它们,其次要和Android源码中运用到设计模式地方进行结合学习。例如建造者模式,Andoird中的Dialog创建就使用到了,还有像单例模式、适配器模式、观察者模式等等都是在Android中非常常用的设计模式,也是在面试中出现频率很高的。

Java

Java我就来直接一点了,如下:

  1. Java集合(HashMap一般必考,通读源码很有必要)
  2. 反射
  3. 多线程
  4. IO、NIO(可选)
  5. 泛型
  6. JVM相关,如内存的管理、内存的回收、类的的加载等等
  7. Java异常

大家可能觉得这些自己多多少少都了解,但是当问到细节就不知道了,所以对于上面的知识还是需要系统的认知,项目中没有机会深入就自己一个一个突破,比如Java集合,首先对集合要有一个宏观的认知,这是我之前总结的一张关于Java集合的图:

Android

它就是我通过查看集合的源码一步一步画出来的,等我画完,我脑袋里也有了一个清晰的认识。然后从常见类的源码开始动手,如HashMap,循序渐进,逐个击破。从这点也可以看出,我们对每一类知识一定要深入的了解,而不是泛泛的知道,比如Android的一些热修复框架,其中就是JVM中类加载和反射等技术。又比如并发中,线程池和ThreadLocal这些都是必要掌握和熟练使用的知识,也是面试经常会被问到的。

Android

Android其实要说的不多,对于一个有工作经验的Android程序员来说,基础的一些Android技术大家都是掌握了的,而如果要做一个加分的Android程序员,下面的Android技术就需要深入了解了:

  1. Android View的绘制和流程
  2. Android触摸事件分发机制
  3. 性能优化(网络、内存、电量、UI)
  4. 常见Android源码,如Handler、AsyncTask等等
  5. 熟悉Binder原理
  6. 了解一些Framework常见知识,如AMS

同样的,这些都是要系统的掌握和运用。


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容

  • 记早年的一次面试:面试官:说说你对Handler的了解?我:new 一个handler,然后在某个线程里发送mes...
    王二蛋和他的狗阅读 391评论 0 0
  • 前言 以下建议是结合自身经验与网上多篇博客总结而成 控制好每一张图片的大小,因为它们将影响apk的体积(和UI多交...
    Tongsr阅读 802评论 1 3
  • 这篇文章更多的是对于混乱的中文资源的梳理,并补充了一些没有提到的重要参数,希望大家不会踩坑。 1. 简介 1.1 ...
    LeoinUSA阅读 23,786评论 5 61
  • Charles❤️的情書。印度偉大的詩人泰戈爾有本著名的詩集《新月集》,那是風華正茂時泰戈爾寫的詩集,詩篇里充滿對...
    courtlike阅读 141评论 0 0
  • 【声明:】本文是作者(蘑菇v5)原创,版权归作者 蘑菇v5所有,侵权必究。本文首发在简书。如若转发,请注明作者和来...
    蘑菇v5阅读 185评论 0 0