我拿到了梦寐以求的字节跳动和腾讯双offer!含泪整理面经

关于面试题

打个比方,如果把找工作理解成考大学,面试就是高考,市面上的“真题”就是模拟试卷。我们会很容易倾向于在面试前寻找对应公司的面试“真题”,重点准备,期待“押题”成功。但实际上,即使面试同一家公司,它会有不同部门,不同业务线,不同面试官,即使遇到同一面试官,他也不一定就每次考察完全一样的内容。想想高考中那些考的好的同学,他们肯定不是靠“押题”才能取得好成绩吧,他们大多靠的是平常积累及对知识点灵活掌握,那面试也一样啊。执着于搜题,把面试题当做重点进行“复习”,还不如自己划出“考纲”,各个知识点逐一检查掌握情况,复习的更全面呢。

我对于面试题的看法一直是相对保守的,这类文章一般只是内容搬运,它会存在一些偏差和误读,最重要的那就是几道题往那一扔,并没有产出有价值的东西。这也是为什么我上篇面试总结,会加了一些面试技巧,整理面试题时,也没提他们是出自哪家公司,就是不希望大家把题目区别看待。

说了这些并不是说面试题没用啊,而是希望大家不要迷信面试题,更多地去关注那些有质量有深度的技术文章。面试考核的是知识点而不是具体的某些题目,面试题的作用在于,衡量我们的知识掌握情况,便于我们查漏补缺,越说越像是针对一次“考试”了。

几年过去了,桌面开发已经基本死了,现在轮到Android开发了?

有没有发现,这之间有什么不同?桌面开发死的是整个生态,就像实体经济转向了互联网购物一样,整个生态全部死掉,导致了跟桌面开发的各种岗位都不再招人,使得无论开发、产品、运营都必须原有的SEO优化、寻找网站流量转移到移动端。

而现在的Android则不同,它并没有死,相反,移动互联网现在已经发展的非常成熟,并且随着5G的到来,机会将大大增加。

那为什么大家会觉得Android开发不行了呢?无外乎是因为现在Android原生Native开发在逐渐转型,因为Native开发耗时但无法跨平台,无法做到像RN\Weex\Flutter一样,写一遍代码,多端运行的效果。

资本都是逐利的,顾家辉曾说:不以营利为目的公司都是在耍流氓。面对如此高效的产品生产方式,如果你是老板,你会不选择吗?尤其是创业公司。

那问题来了,那为什么依然有Android Native开发呢?因为它是原生的,所有的交互与效率都是最高的,对于大公司而言,不仅要讲究速度,又要讲究APP的运行效率及各项指标。所以,大公司更偏向于Native开发,而小公司更偏向于快速开发。

因此很多小公司不再招Android Native开发,这就导致Android原生岗位的减少。对于初学者而言,小公司岗位少,大公司进不去,这就是为什么培训公司都不再培训Android的原因。这就出现了安卓已死的论调。所以说,并不是Android已死,是门槛高了而已。

现在培训公司喜欢培训H5,学会保就业的承诺永久不变。这就是因为RN\Weex\Flutter的语法与H5相似,学了H5,除了能做原有的WEB开发以后,跨平台语言RN\WEEX\Flutter使H5的岗位大大增加,所以并不是H5好学,也并不是因为它火,只是它就业门槛低了而已。

同样的,即便你从H5开始进入跨平台开发语言,你以为会了RN\Weex\Flutter就不需要Android原生了?只是Androd底层架构不变,Android原生永远是需要学习的,所有的上层跨平台应用都是靠原生控件来实现的。Flutter可能有所例外,但Flutter是用Dart语言来写的,大家都不会,谁也别看不起谁,而且Flutter可以与Android原生完美兼容。

从商家逐利的本质上看,跨平台开发是趋势,即便RN\Weex\Flutter哪一天都挂了,还是会出来另一个跨平台语言一统天下。这个世界上,唯一不变的就是变化。

所以,Android不会死,但Android的门槛会提高。想在Android领域成就一翻作为,除了Android原生也需要了解跨平台开发。如果你是新入门的同学,我建议你在了解Android基本使用后,以跨平台开发学习为主,先找到一份工作(毕业就校招进入大公司的除外)。如果你的Android从业者,我建议大家学习跨平台语言,使自己永远立于不败之地,不要等到哪一天黑天鹅来了,欲哭无泪。(黑天鹅全称为黑天鹅事件,指目前无法预知的突发事件)

最后

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Android架构师/技术专家?我总结了这 5大块;

我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 PDF(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。

Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言

高级UI与自定义view;
自定义view,Android开发的基本功。

性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。

NDK开发;
未来的方向,高薪必会。

前沿技术;
组件化,热升级,热修复,框架设计

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,腾讯文档可见;《Android架构视频+学习笔记》

当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。

不出半年,你就能看出变化!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值