美文网首页Android开发Android进阶之路Android高级进阶
一个程序员的"月经"问题:Android开发初期之后怎么提升?家

一个程序员的"月经"问题:Android开发初期之后怎么提升?家

作者: 小小小小怪兽_666 | 来源:发表于2020-12-05 16:06 被阅读0次

    前言

    在知乎上看到一个问题,程序员如何提高自己,Android开发初期之后怎么提升?怎么才能叫精通?方向在哪?

    很多程序员都有想过这个问题,这是一个“月经”问题。

    有些人在思考,思考者然后没有然后了
    有些人根本不思考,得过且过
    有些人,已经做出了改变,并仍坚持着很多爱程序员哪怕是工作在忙也会抽出来一些时间,来学习,来搞副业,来提升

    比如我是这样安排的:

    早上上班到公司去看一些相关的技术帖子,中午把午休时间缩短半个小时,去逛逛知乎,晚上下班两个小时去学习,1~2个小时写文章。我个人算不上什么优秀,但是可以作为参考。

    然后我们来对问题分解一下

    Android 开发 :

    分成

    1. "开发" 一般的开发技能
    2. "移动应用开发" 移动应用开发相关概念思想
    3. "Android 开发" 特指与 Android 开发直接相关知识技能

    正如你可能所想的那样,这样的问题不像1 + 1等于2那样,有一个简单确切的答案。真正答案因人而异。

    下面我以自己几年的Android 开发经验,与你分享一二。

    就按我上面所分解的几个方面来说一说:

    一:开发技能

    你可以看成是一般的编程技能,这方面你可以从:

    编程语言的熟练掌握
    面向过程编程思想
    面向对象的思想
    函数式编程思想
    设计模式
    算法与数据结构
    网络编程,TCP/IP 协议
    重构
    版本管理(Git 等)

    等方面的检查和提高自己,更详细的技能树,自己搜索

    二:移动应用开发

    你可以看成是 App 开发,估计这可能是你更感兴趣的,这方面你可以从MVC 这成三个方面来对照检查下:

    M:数据层,移动应用数据结构特点
    数据存储:SQLite数据库,文件存储
    数据格式:XML 格式,JSON格式 序列化与反序列化
    数据查询:移动应用一般数据库主要是 用SQLite

    (说回来,单是 SQLite 数据库,就可以花不少时间来深入学习下,因为对一个应用来说,数据基本是核心)

    V:视图层

    移动应用界面特点
    移动应用构建界面常用方法
    移动应用交互特点
    移动应用动画
    系统 UI 系统特点,优点,缺点及局限

    C:控制层

    移动应用控制层特点
    控制层的生命周期
    多线程,UI 线程,后台线程

    再加一层:

    E:事件层

    事件处理,触控事件,手势,事件响应链

    三:Android 开发

    工具篇 - 工欲善其事,必先利其器
    Android Studio 掌握用得怎么样了?
    Adb 及相关工具会用吗?
    Gradle 构建系统呢?
    文档篇 - 看 Android 官方是怎么定义开发各种技能的。

    相信常看 Android 开发者官方网站,你会收益良多,我下面写的也不必看了。

    系统篇

    Android 多线程编程,异步编程特点 - Loop,Handler,IntentService,Broadcast,MessageQueue
    Android UI 框架特点,优势和不足
    然后你再按 MVC 将 Android 各部分再分析分析,总结总结。

    那么,我们平常如何提升自己呢?

    第一点,根据自己的专业,无论是前端或这是后端,都可以相对应的去看一些视频,因为这是对某个方面知识快速了解的好办法,相比书籍和文档,视频要更精彩一些,而且花费的时间相对比较少,让大家的注意力更集中一些。国外的或者国内的都有,不想花钱可以去b站或者YouTube上看,很多质量也是比较高的。

    第二点,可以综合的去了解一下其他语言,Android工程师不能光只会Android,可以去了解c++,kotlin方向的一些知识,有时候也不能盲目的去追求,哪个比较火学习哪个,这是随波逐流的做法,根据实际情况,最好是在公司能学以致用。

    第三点, 多做项目,多去练习。敢于尝试自己专业的其他领域,熟能生巧,多尝试几种不同的编程语言,能给我们提供不同的编程思维视角,站在更高的维度看技术。如果在练习的途中,能够举一反三就阔以了。

    第四点,多去分享和交流。一些中大型公司,部门内部都会有一个技术分享会,你可以对自己专长的方向研究一段时间以后,相关的技术演示给大家看。线上可以来直播或者把自己学到的东东录制为教程,或者参加一些技术等会线下论坛等。

    分享是一个很好的实践,同时也会刚你暴露出来一些不足之处,大家都知道。我们程序员不善言谈,说话紧张,表达能力,或者逻辑思维能力都有待于提高,这些都是需要提高的地方。即使将来一天不做程序员了,弥补了这些不足之处也会是一笔巨大的财富。

    做好规划,每天进步一点点,一年下来,你可能就比别人进步了好多,不管别人怎么想怎么说,干就是了。毕竟这个社会是现实的社会,很多人像我一样家里没矿,这个时候只能靠实力说话了。

    如何学习?

    接下来来看看有一些进阶学习的方向:

    钻研技术:

    首先来看看 Android 有哪些方向,列举几个常见的:

    • 应用层开发,日常业务开发,主要还是原生开发,就业方向基本饱和,大部分只招高级工程师;
    • 游戏开发,相比应用开发更吃香,有 Unity-3D 等游戏引擎;
    • 跨平台,比如 Flutter、RN,从成本上考虑,跨平台是个不错的选择,我们 Android 有必要密切关注下;
    • 安全开发,一些对安全性很高,比如银行项目,熟悉 Https、支付密码安全、应用加固等;
    • SDK 开发,将应用里的部分功能独立了出来,封装成 SDK 提供给合作伙伴使用;
    • 音视频开发,比如音视频直播/点播功能,则需要了解音视频编解码的传输协议,编解码方式等;
    • 图形开发,比如美图、天天P图,对图形处理要求十分高;
      Framework 开发,手机厂商定制手机为主,比如小米、魅族等;
    • 驱动开发,同上,更多是在和 Linux 打交道;
    • 如果你对技术感兴趣,想做到专家级别,可以在以上这些方面深究下去,总之,劳资有技术,不怕没饭吃。

    如果你不知道怎么学习,我给大家提供一个方向,进行体系化的学习!

    除了上面的学习路线,还给大家整理了一份Android进阶学习资料,主要为安卓相关知识点及面试资料为主,在这个PDF中,通过详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。

    帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这个PDF中有所收获。一些基础不好的,这里也有一份安卓基础资料包,帮助巩固基础。

    以下是这份PDF主要内容

    • Android 核心技术:介绍 Android 开发中常用的核心技术,比如自定义 View、Handler,以及一些开源框架的原理实现,来夯实你的底层能力。只有底层能力足够出色,之后的进阶之路才会更加轻松。
    • 常见问题剖析:介绍一些项目中常见的疑难问题,使你能够对现有项目做出合理的重构优化。

    知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:

    《486页超全面Android开发相关源码精编解析》 《960全网最全Android开发笔记》 《379页Android开发面试宝典》

    以上内容均放在了开源项目:github 中已收录,大家可以自行获取(或者关注主页扫描加微信获取)。

    不用多说,相信大家都有一个共识:无论什么行业,最牛逼的人肯定是站在金字塔端的人。所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。

    相关文章

      网友评论

        本文标题:一个程序员的"月经"问题:Android开发初期之后怎么提升?家

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