Android app 开发能力一般,但是足以胜任一般 app 开发的任务(因为确实有段时间未做公司正式项目的 app 开发,但是也不是说已经荒废了技能);
Android frameworks 方面比普通开发者了解更多;
解决问题,学习实践新技术的能力不错(无论是从第一次编译 AOSP 到后来整个 ROM 的开发,发布。还是从对机器学习完全陌生,到现在能够描述常见机器学习的算法,使用 Tensorflow 实现一些这方面的需求)。
说到昨天的面试,面试官几乎是按照他所准备的 Android 面试题一一提问。如:View 自定义,handler 机制,内存泄漏等。我的表现则让自己非常不满意,他问的这些我大部分都能答上,但是我自己所组织的语言,描述的结果却差强人意。大部分是因为我自己表达能力的问题,我觉得这些问题如果是作为笔试题目,我能够更从容的回答。我更期待的是对于我自己项目经历的说明。因为这是我和其他应聘者不一样的地方。而面试官却完全没问我简历上的项目经历。虽然最后我还是自己硬讲了一下,但面试官也并未有兴趣,我讲的也很干瘪。最后面试就这样结束了。
我自己的想法:自己准备不充分,没能干净利落地应对这些“ Android 标准面试问题”。至少这些基础问题应该能够一两句话就讲清楚。完全没有体现出自己区别于其他应聘者的地方。我认为自己能够又更快又稳的做好开发工作,能够深入的研究框架,源码,解决一些疑难问题,而我要怎么才能让面试官也这样认为?
关于网友最后这句“我认为自己能够又更快又稳的做好开发工作,能够深入的研究框架,源码,解决一些疑难问题,而我要怎么才能让面试官也这样认为?”
他的困惑在于如何展示自己的亮点以弥补不足(准备面试题不充分)。这是个学问,我认为是远超你背题的意义
1、无论我们是做前端 /后端 /框架 /底层硬件 /算法,我们所服务的最终是一个手机 app。所以我们务必要有一个成品 App 作为展示(非 demo )。这比一通把面试官唬懵比的胡诌更能打动他(对方水平越低,这个越有效)。最好同时有一个竞品作对比,凸显优势(竞品当然是你自己选择了)。如果对方开始问我们是怎么实现的。这就到我们的主场了。
2、我们要有除了 App 开发以外的特长。上述网友提到了 TF,正好可以用上
3、我们同时需要面试预演。没有人的话自问自答,有人配合我们的话更好。目的就是,把话说清楚。说起来简单,但是很多初次面试的人连话都说不好。这直接影响人第一印象。对于技术面试来说,更需要注重用词。配合 1 使用效果更佳
要不要去刷题 /背面试题。我认为是要的。(上面说的是一个准备不充分的情况)
1、面试更加踏实,还可以作为自己临时的应答储备
2、彰显态度。“花很多时间去背题”本身就是对面试的重视,至于效果如何另说。
3、对自己有的知识查漏补缺,巩固深化。
怎么看都是好事情。如果面试官看出你刷题并认为刷题是一个不好的点,那是他境界还太狭窄。
Android 技术的发展。在人才市场来看真的是头重(前端)脚轻(后端),会有这种窘况也是正常。而上述网友三年技术经验,我觉得视野应该不仅局限于 Android。
很多人会觉得Android技术深度不深,技术栈不庞大,Android职业发展有限,这个真是大大的误解。
先说技术上,Android的技术栈随着时间的推移变得越来越庞大,细分领域也越来越多,主要有Android应用开发、逆向安全、音视频、车联网、物联网、手机开发和SDK开发等等,每个细分领域都有很多技术栈组成,深度都足够精深,就拿所有细分领域通用的Android系统底层源码来说,就会叫你学起来生不如死。
再说职业上,确实Android应用开发很难升任CTO,一般的CTO主要是后端,这主要是两个原因:
不过我们忽略了最重要的一点,如果我们是做后端的,一定能做到CTO吗?我想也是很难的,所以不要眼睛只盯着高处,先想想自己能达到什么程度,站在半山腰就说山下面的风景不开阔本身也不合理啊。
Android不热门了,很多Android开发已经转行了,有的正走在转行的路上,还有的迟疑不决,到底要不要转呢?我们来分析下。
每个人的自身情况不同,转的方向也会有所区别,转人工智能相关开发肯定是最好的,毕竟风口上的猪也能飞,跟着风口无可厚非。只可惜人工智能相关对学历和算法要求很高,最起码得是个硕士吧,而且这只是低配。那么大多数Android开发可以转的方向主要有前端、后端和python等等。我大概说一下:
1.转前端,这个是我认为最好转的一个方向,前端的理念很多都和Android类似,也可以作为Android的延伸,向大前端发展,如果对界面感兴趣的可以转前端试试。
2.转后端,后端这个就是完全的转行了,看似Java大家都会,但是后端的技术栈可不是只有Java,各种框架绝对叫你头大,很多人强调后端技术深,各种处理高并发看似十分有技术含量,不过这只是为数不多的公司在做。如果想要稳定的可以转后端试试。
3.转python,python最近真是很火,因为他跟人工智能发生了关联,其实大部分学python的没有搞什么人工智能相关,基本都是在搞爬虫。追求浪潮的可以转python试试。
转行有两种我认为是正常的,一种是行业消失或者没落了,个人无法施展才华。另一种是兴趣不在本行,因此转一个自己感兴趣的。而现在大部分转行纯属是为了跟风,为了那点钱,而忽略了长期的发展。我们来看看下面的图。
从图中可以看出,大部分人在35岁前是在加速期,35岁后是上升或者衰落期。以Android开发转前端来说,假设一个Android高级A同学转行前端会变为前端初级,这时从事前端的人都在加速提高,A同学要想赶超前面的拥有同样加速度的人是不可能办到的,这就导致他在转行前期极为被动,A同学还要保证在35岁前成为前端专家或者Leader才有可能在35岁后不进入衰落期,当然这时A同学的Android基本也就荒废了,很难成为专家。如果还想要在技术领域走的更远,就不要轻易的进行转行,如果想要转越早越好,越快越好,因为其他的竞争者都在加速提高,没人会停下等你的。
一个开发的质变可以理解为在一个领域的大幅提升,或者是不相关领域的跨界,举个例子:可以在Android领域由高级质变为了专家,或者是由一个高级开发升到了Leader,再或者跨界开始做了一些技术相关的培训、演讲、出书等等而被人所熟知。
凡是能帮助35岁后进入上升期的都可以看做是一次质变,而转行很少是质变,更多的是倒退回到原点重新出发,形象点来说,就是换了个不同的砖头接着搬砖而已(高技术含量的除外)。因此我们更应该去追求质变,而不是平行或者倒退,一次倒退可以承受,多次倒退就很难在35岁后进入上升期。
看到这里,如果你还是想转行的话就不要看下去了,我们来说下Android如何提升竞争力。
Android现在细分的领域非常多,前面说到的有应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK开发和智能电视盒子开发等等,在这些领域中选择一个并不断深入。比如音视频,在8年前我刚入门Android时,音视频就是闷声发大财了(PC端),工资高的令人乍舌,现在在移动端,音视频更是青出于蓝,是一个非常好的选择,如果想要入门可以看看何俊林《Android音视频开发》。
知识半衰期指的是:随着知识更新周期变短,知识裂变速度加快,一个知识落伍的周期。知识半衰期长的职业都是越老越值钱的,比如英语老师和外科医生,知识更新慢并且几乎不会落伍。这一点我们程序员是绝对比不了的,我们的大部分知识半衰期是比较短的,一个框架短短几年可能就会被淘汰,这也导致程序员需要不断的学习新知识,而我们每个人的时间和精力是有限的,那么根据知识半衰期,有策略的进行学习就变得尤为重要。
上面的半衰期图不完全准确,但是却值得参考,如果你是其他的技术领域也可以参考这个半衰期图。这个图不是告诉我们不要去学RN和小程序,而是结合自身工作尽量学习半衰期长的知识。
现在的社会,技术分工越来越细,越细就意味着大部分企业(小作坊除外)需要专精的人才(最好是精通一门通多门)。你会发现身边脱颖而出的技术人大多都是靠一门技术,却很少看到会一堆技术却都不精通的冒出来。好比在武侠的世界,高手对决都在同一个时间段拿出看家武学,如果看家武学都不精,分分钟被虐,剩下的武学也无需拿出来献丑了。联想到现实版本就是去大公司面试Android,结果Android技术了解不深,被各种虐,剩下的前端技术、后端技术、python什么的,面试官也没兴趣了解了。
所以并不是你会的技术越多越好,一定要做好减法,先专精一门,然后再去学别的技术。
最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。
还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
Android 基础知识点
Java 基础知识点
Android 源码相关分析
常见的一些原理性问题
希望大家在今年一切顺利,进到自己想进的公司,共勉!
码相关分析**
常见的一些原理性问题
[外链图片转存中…(img-Ks7DcAVA-1643875225464)]
希望大家在今年一切顺利,进到自己想进的公司,共勉!
本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录