一个程序员的“月经“问题:Android开发初期之后怎么提升?家里没矿,只能靠自己了!

一个程序员的“月经“问题:Android开发初期之后怎么提升?家里没矿,只能靠自己了!_第1张图片

前言

在知乎上看到一个问题,程序员如何提高自己,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开发初期之后怎么提升?家里没矿,只能靠自己了!_第2张图片

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

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

如何学习?

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

钻研技术:

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

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

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

一个程序员的“月经“问题:Android开发初期之后怎么提升?家里没矿,只能靠自己了!_第3张图片

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

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

以下是这份PDF主要内容

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

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

一个程序员的“月经“问题:Android开发初期之后怎么提升?家里没矿,只能靠自己了!_第4张图片

 

一个程序员的“月经“问题:Android开发初期之后怎么提升?家里没矿,只能靠自己了!_第5张图片

 

一个程序员的“月经“问题:Android开发初期之后怎么提升?家里没矿,只能靠自己了!_第6张图片

以上内容均放在了开源项目:【github】 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...

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

你可能感兴趣的:(程序人生,Android,程序员,Android,Android开发,进阶学习,移动开发,技能提升)