如何作一名有高度的移动开发工程师

2019年对应程序员来讲,是一个多灾的年份,不少公司都进行了不一样比例的优化和裁人。最近是找工做的高峰期,从不少同窗的面试经从来看,如今只会单纯写业务代码的人找工做特别难,好比不少大厂的面试官都会针对性能优化的细节,考察你是否真正搞懂底层的机制和原理。环境的要求愈来愈高,因此咱们也要积极转变,踏踏实实的学习。前端

如何成为一名 Android 开发高手,是不少Android开发人员的终极理想。做为一名Android开发工程师,除了须要掌握基础的Android知识,可以熟悉的进行应用开发以外,了解Android 系统层、Linux 内核层再到硬件层的优化路径,也是想要成为 Android 开发高手的必备技能。程序员

以前,我写了一篇《Android开发初级中级高级怎么划分》的文章,将Android开发进行了初级、中级、高级和专家的划分,当时思考的是层层递进,并非说掌握某项技能你就是专家了。面试

作一名有高度的工程师

做为一名技术工程师,无论你是从事前端开发仍是后端开发,T 型技术人才理论都比较适合,所谓的“T”指的是横向和纵向两个维度。纵向解决的是深度问题,横向解决的是广度问题。而且我比较推崇先有深度再有广度,由于技术都是一通百通的。小程序

做为一个有高度的移动开发工程师,须要能纵向深刻,也要能横向全面地思考每个问题。好比说,咱们须要实现一个数据埋点上报系统,团队但愿治理数据的准确性和实时性问题,若是站在客户端的角度上看,就是思考如何去实现一套数据不会丢失、实时性高以及高性能的埋点上报组件。咱们知道,这里面的进程模式、存储模型、同步机制等都很复杂,要作一个高可用的上报组件确实须要具有必定的技术深度。后端

可是若是站在更高的角度上看,你会发现上报组件的优化并不能从根本上解决团队的数据问题。埋点的规范是什么?埋点的流程是什么?产品、研发、数据、测试几个团队对于数据有哪些痛点?咱们须要梳理一个埋点从产品定义、客户端埋点开发、测试验证、后端数据处理、数据展现和监控的整个过程。针对团队的数据治理,咱们须要体系化的思考每个点的问题,从更高的角度去全局考虑。浏览器

单一终端到跨端

做为一个诞生了10余年的移动操做系统,Android的发展经历了石器时代,农耕时代和电气化时代,如今Android系统已经很是完善,资料和框架也不少。缓存

回想一下,由于当时 Android 系统的不成熟和不完善,反而造就了一个百花齐放的移动开发时代。在这个时代里,咱们总能够找到不少优化的点,而且持续打磨。随着应用业务复杂性和要求的提高,单纯在客户端的单点优化已经知足不了业务的诉求了,好比在直播、小程序这样的复杂场景。
在这里插入图片描述
此时,咱们第一步就是要跳出自身客户端的角色限制,从更为全局的角度看问题、思考问题。你须要明白,客户端的实现只是其中一小块内容而已。性能优化

假如你接到一个提高H5页面打开速度的任务,极致优化的基础是咱们能深刻研究浏览器的渲染原理和缓存机制,可是前端和后端可以作些什么,又应该作些什么呢?除此以外,页面哪里产生、如何发布、发布到哪里、如何下载、如何解析、如何渲染、如何衡量和监控页面的性能,这些所有都是咱们须要思考的问题。架构

从平台到中台

相信不少搞过Android开发的同窗都搞过组件化,所谓组件化,指的是可编译成单独的app,通常只负责单一业务,具有自身的生命周期。
组件化只是客户端技术最基本的抽象的体现。怎么理解呢?以性能组件为例,虽然咱们收集了应用各个维度的性能数据,可是这些数据在后台如何聚合、如何存储、如何分析、如何报警,咱们并没提供解决方案。app

每一个接入的应用仍是要花很大的力气去搭建一整套系统,为了解决这个问题,集成式服务化的建设开始出现,好比以 Google 的 Firebase 为表明的各个开发者平台。为了解决应用不一样的场景,咱们不断地孵化出不一样的服务平台,此时中台的概念被提了出来。

什么是中台呢?简单的理解就是把这些分散的平台又统一为一个超大的平台。有人会想咱们是否是在开历史的倒车?还记得当年咱们将一个庞大的系统分拆成各个子平台是多么的艰难。事实上,这里中台的“统一”,更可能是面向开发者层面的,例如都使用同一个帐号、不须要重复注册、平台之间互相闭环等。

在国内,阿里的中台是作得最好的。固然腾讯、头条这些公司也都意识到了它的重要性,最近都在积极调整组织架构,成立了专门的中台部门。可是不管是中台仍是平台,都是靠无数大大小小的优化点堆积起来得,它们都须要慢慢地积累,很难在很是短的时间内建设得很是完善。

关于中台,能够参考阿里的《从平台到中台【上】》《从平台到中台【下】》

总结

经历了10余年的打磨,Android和iOS早已过了爆发期,如今更多的是走向平稳,因此移动应用也更多的专一在性能和优化上,若是你既有技术深度,又要有广度那确定是会受人追捧的。

因此对于工做年限不是好久的开发者来讲,是应该先钻研深度,仍是扩展广度呢?
我建议你应该至少先在一个技术领域付出大量的精力,深刻钻研透彻,而后再去思考广度的问题。

这是由于经验丰富的程序员学新的东西都很是快,由于如今已经不那么容易出现太多全新的技术,所谓的新技术其实都是旧技术的从新组合和微创新。成长是没有捷径的,只有深度原理,了解它的实现流程,你才能走的更远。

因此不管你是在初创团队,仍是在大厂,都要在业余时间坚持学习,持续探索本身的技术深度。这样在未来,不管是初创团队内部的晋升,仍是跳到大厂,这样努力的经验均可以成为将来无数次面试、加薪的一大亮点。

相关文章
相关标签/搜索