在知乎上看到一个问题,程序员如何提高自己,Android开发初期之后怎么提升?怎么才能叫精通?方向在哪?
很多程序员都有想过这个问题,这是一个“月经”问题。
有些人在思考,思考者然后没有然后了
有些人根本不思考,得过且过
有些人,已经做出了改变,并仍坚持着很多爱程序员哪怕是工作在忙也会抽出来一些时间,来学习,来搞副业,来提升
早上上班到公司去看一些相关的技术帖子,中午把午休时间缩短半个小时,去逛逛知乎,晚上下班两个小时去学习,1~2个小时写文章。我个人算不上什么优秀,但是可以作为参考。
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 有哪些方向,列举几个常见的:
如果你不知道怎么学习,我给大家提供一个方向,进行体系化的学习!
除了上面的学习路线,还给大家整理了一份Android进阶学习资料,主要为安卓相关知识点及面试资料为主,在这个PDF中,通过详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这个PDF中有所收获。一些基础不好的,这里也有一份安卓基础资料包,帮助巩固基础。
以下是这份PDF主要内容:
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:
以上内容均放在了开源项目:【github】 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...
不用多说,相信大家都有一个共识:无论什么行业,最牛逼的人肯定是站在金字塔端的人。所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。