美文网首页Android开发经验谈
灵魂拷问:Android开发初期之后怎么提升?怎么才能叫精通?方

灵魂拷问:Android开发初期之后怎么提升?怎么才能叫精通?方

作者: 进阶程序员007 | 来源:发表于2020-10-16 12:37 被阅读0次

一、导语

看到这个标题点进来看文章的有3种人:第一种就是Android入门但是不知道如何进阶中高级工程师,第二种就是年纪或者说在这个行业发展觉得已经到头的人,不知道未来如何?该怎么转型,很迷茫!第三种就是,想在这个行业继续走下去,但是怎样提升学习速率,提高薪资!

无论你是哪种人都可以在文章中找到答案!

二、第一种,不知如何进阶型

为什么很多人会一直停留在两三年的水平上,而后一直在重复以往的经验?

我认为最主要的一点就是主观能动性,或者说兴趣,如果你对Android开发没有太大的兴趣,那么还是尽早换方向吧。有了兴趣,然后就是要有一个比较正确的钻研路线,不要这也搞那也抓,最后什么都没精通又好像什么知道。一个很好的例子就是我用过很多库啊

很多面试者以用过很多库为荣,你真的去了解过这些库么?

我觉得一个比较好的路线是,把日常开发常用的各种系统库,开源库,代码好好研究一遍,比如我用了butternife就要了解背后的apt,以及apt衍生出来的一系列库比如Hugo。当然这大部分情况是初级进阶的第一步。这个阶段应该是尽量很好的用技术完成业务需求。

第二个阶段,我觉得可以尝试去了解Android Framework比较细节的一些东西, 比如activity启动流程,顺便分析清除Activity stack的管理,比如了解Android的资源加载机制,顺便了解aapt是如何打包Android资源的;又比如Java的类加载机制,这里配合资源的加载机制,很自然的就可以去了解Android的hotpatch机制,插件化的实现,开一些这方便的开源库或者自己撸一个也就自然而然。这里我比较推荐

同学的一系列博客,分析Android各种源码很不错。这个阶段你可以用技术反哺业务,比如插件化和hotpatch就可以让业务更加灵活。

第三个阶段,横向扩展,到这个阶段并不是说比第二个阶段更加高级了, 而是对第二个阶段的一些补充,比如你是不是可以了解一下web开发,这样做hybrid开发的时候就会更顺手。是不是要了解一下这么火爆的ReactNative&Weex技术,甚至可以把他们的一些思想拿过来自己用,比如我司内部就有很多项目是用了JSCore和CssLayout来实现一些更轻量的动态化技术的。正如科学领域很多重大贡献都是在交叉学科领域出现的。技术上到了这个阶段甚至可以做到技术影响业务,技术驱动业务。

第二种 如何转型,迷茫型

如果你要转型,这里要注意的是,开发者的行业属性有两重计算机软件和所做软件所属行业。举个例子,猿题库的开发者,就有计算机软件和教育两个行业属性,而且,往往与你所做软件相关的行业属性更重要。

所谓职能,指的是某个职位所承担的任务作用和功能。比如软件开发工程师和研发经理,就是两种不同的职能(所以开发者升任研发经理,不是职位序列自然发展的结果,而是一种转型)。

我们把职能分为5类:管理、专业技术、自由职业、创业、投资。投资其实是一种综合性职能,它有管理、专业技术、创业几种特性。我们在这一节讨论转型分类时,暂不考虑它


第三种,如何提升学习效率

那么接下来,问题就变成了“如何提升自己在 Android 市场上的竞争力”。

1. 提升通用技术能力
The more things change, the more important it is to know the underlying principles.

半衰期长的技术要打好基础,也就是更加通用的技术。

一来通用技术如数据结构和算法、计算机网络、操作系统、计算机系统结构等,对技术的深层理解有很大的帮助,二来这类技术在不同的语言和技术方向上切换时是共通的。

2. 提升软实力
软实力实际上也是一项通用的技能,甚至比第一条更加通用。

良好的沟通可以缩短开会的时长、节省相互之间的沟通成本,也使得团队合作更加愉快。不错的文档表达能力可以省去不少的重复沟通。

懂得规划自己的时间,上班时能更有条不紊地完成任务,下班也能高效地规划业余时间的学习。

懂得反思:为什么这个任务预计五小时能完成,却变成了三天;为什么这个需求要这样做,这么做是最合理的吗,还有更好的方式吗?

对问题、业务和自身的更多思考有助于更好地发挥和展现你的技术实力。

3. 选择一个细分领域不断深入
个人认为一个较好的学习方式是先优先广度遍历,即粗略了解自己领域的各方面知识,然后优先深度遍历,即选择一个自己感兴趣或者觉得值得深入的方向深挖下去,等到这个方向学习研究得差不多了,再去深入下一个方向的技术知识。例如:

插件化技术、响应式编程、组件化框架、系统架构等进阶技术,承托着业务之下的基础框架,能够使得开发者在面对需求和功能变化的时候有更快的反应和更优雅的行动。

业务逻辑日渐成熟的形势下,用户体验越来越重要,突然的软件崩溃或是加载图标持续5秒,对于高质量应用都是阻碍。渲染速度、网络请求体验、I/O优化、热修复技术、耗电优化,都是性能优化需要重视的点。

Android现在细分的领域非常多,逆向安全、音视频、物联网、SDK开发等等,可以在这些领域中选择一个并不断深入。若是从时代背景的角度考虑,当下处于信息时代,用户接收和喜爱信息传播的形式一路从文字、图片、音频、视频,到了如今的直播。

音视频会是一个不错的选择。其中会涉及到音视频编解码和音视频同步处理、特效处理、合成等等技术,对于Android 底层源码的理解也十分有帮助。

福利

我这里有一套,系统学习资料,由于篇幅问题不展示太多,有需要的可以在我的【GitHub 】中领取,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…(欢迎免费领取,觉得不错记得,点个赞,支持一下!)

自行下载领取链接:【https://links.jianshu.com/go?to=https%3A%2F%2Fjq.qq.com%2F%3F_wv%3D1027%26k%3DBRZhpPkt

相关文章

网友评论

    本文标题:灵魂拷问:Android开发初期之后怎么提升?怎么才能叫精通?方

    本文链接:https://www.haomeiwen.com/subject/iwzapktx.html