作者:安辉
链接:https://zhuanlan.zhihu.com/p/20810699

1、初级工程师小姜之前完全没接触过Android开发,是个应届生,他的待遇是13k,然后小姜以校招的身份进入了百度,然后小姜需要怎么学习才能成为初级工程师呢?这个时候,小姜对编程基础、数据结构、C语言都有一定基础,Java语法什么的也都掌握的比较好,Android才有java语言,无奈的是小姜并不会搞Android。小姜首先需要购买一本Android入门的书籍,为了更快地学习Android,小姜业余时间也都用来一边看书一边照着书中的例子敲代码,结果2周时间小姜就把这本书学了一遍。看完这本书后,小姜对Android的历史、结构、代码规范等都有了一个大概的了解,并且,小姜已经可以写出一些简单的Activity了。这个时候在小姜眼里,Android开发很简单很好玩,通过在xml中摆放一些按钮文本框什么的就可以做一些界面了。小姜开始跟着他的技术导师做需求,一些简单的小需求小姜自然是不在话下了。突然有一天来了一个需求,该需求要求小姜在Activity中为一个button加一个动画效果,小姜慌了:“完全没接触过,书上也没有讲,怎么办呢?”小姜冷静了下,打开了百度搜索,输入“Android 动画”,打开前几个链接,小姜恍然大悟,照着网上的例子把需求给实现了。后来导师告诉他:“学好Android,官方文档是必须看的,既全面又权威”。然后小姜如获至宝,花了一年时间把上面的guide和training都看了一遍,并且他还动手抄了几个小例子。有一天,小姜又需要做一个动画相关的需求,这可难不倒小姜,它熟练地打开了百度一下,你就知道,输入“Android 动画”,突然他楞了一下:”总不能每次写动画都要百度一下吧!“,于是他在CSDN开了一个博客,把动画相关的知识点都写上去,为的是后面再写动画相关的代码就不用百度去搜了,事实如何呢?后面再写动画相关的代码,小姜的确不用再去百度搜了,因为通过写一篇动画博客,他把动画相关的细节都已经记住了,这样他就可以不用再去参考任何文档了,后来小姜还学会了把一些琐碎的不方便放在博客上的东西写到了印象笔记上面,什么时候忘了10秒钟以内都可以快速找回来,而不是花10分钟去再次搜索一遍。这里总结一下,Android入门的时候,需要有一本入门书,好好学习书中的内容,同时花一年时间把Android官方文档中的training和guide看一遍,同时通过写博客和记笔记的方式来做总结,建议让自己的每篇博客都有价值些。通过一年时间的学习,相信每个人都可以达到中级工程师的水平。技术要求:基本知识点比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画等常见技术书籍推荐《第一行代码 Android》、《疯狂Android》
2、中级工程师小姜经过一年的努力学习终于成为Android中级工程师了,月薪变成了17k。到了中级工程师,已经可以在公司里干很多体力活了,但是一些很重要的任务小姜还不能一个人承担起来,这个时候小姜需要学习的内容就很多了,如下所示:AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;事件分发:弹性滑动、滑动冲突等;玩转View:View的绘制原理、各种自定义View;动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;懂性能优化、熟悉mat等工具懂点常见的设计模式学习方法阅读进阶书籍,阅读Android源码,阅读官方文档并尝试自己写相关的技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突。如何阅读源码呢?这是个头疼的问题,但是源码必须要读。阅读源码的时候不要深入代码细节不可自拔,要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释,在看不懂源码时,源码中的注释可以帮你更好地了解源码中的工作原理,这个过程虽然艰苦,但是别无他法。如何玩转自定义View呢?我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太多了,各式各样的绚丽的自定义效果,如何学的玩呢!我们要透过现象看本质,更多地去关注自定义view所需的知识点,这里做如下总结:搞懂view的滑动原理搞懂如何实现弹性滑动搞懂view的滑动冲突搞懂view的measure、layout和draw然后再学习几个已有的自定义view的例子最后就可以搞定自定义view了,所谓万变不离其宗大概再需要1-2年时间,即可达到高级工程师的技术水平。我个人认为通过《Android开发艺术探索》和《Android群英传》可以缩短这个过程为0.5-1年。注意,达到高级工程师的技术水平不代表就可以立刻成为高级工程师(受机遇、是否跳槽的影响),但是技术达到了,成为高级工程师只是很简单的事。技术要求:稍微深入的知识点AIDL、Messenger、Binder、多进程、动画、滑动冲突、自定义View、消息队列等书籍推荐《Android开发艺术探索》、《Android群英传》
3、高级工程师小姜成为了梦寐以求的高级工程师,月薪达到了20k,还拿到了一丢丢股票。这个时候小姜的Android水平已经不错了,但是小姜的目标是资深工程师,小姜听说资深工程师月薪可以达到30k+。为了成为Android资深工程师,需要学习的东西就更多了,并且有些并不是那么具体了,如下所示:继续加深理解”稍微深入的知识点“中所定义的内容了解系统核心机制:了解SystemServer的启动过程了解主线程的消息循环模型了解AMS和PMS的工作原理能够回答问题”一个应用存在多少个Window?“了解四大组件的大概工作流程…基本知识点的细节Activity的启动模式以及异常情况下不同Activity的表现Service的onBind和onReBind的关联onServiceDisconnected(ComponentName className)和binderDied()的区别AsyncTask在不同版本上的表现细节线程池的细节和参数配置…熟悉设计模式,有架构意识学习方法这个时候已经没有太具体的学习方法了,无非就是看书、看源码和做项目,平时多种总结,尽量将知识融会贯通从而形成一种体系化的感觉。同时这个阶段对架构是有一定要求的,架构是抽象的,但是设计模式是具体的,所以一定要加强下设计模式的学习。关于设计模式的学习,最近一本新书推荐给大家《Android 源码设计模式解析与实战》,既可以学习设计模式,又可能体会到Android源码中的设计思想,我最近也在阅读此书。技术要求:稍微深入的知识点系统核心机制基本知识点的细节设计模式和架构书籍推荐《Android开发艺术探索》、《Android 源码设计模式解析与实战》、《Android内核剖析》
参考自:Android学习路线指南

小姜的Android之路相关推荐

  1. Android 之路30---UI基础控件

    导读 1.TextView 2.Button 3.Android各种控件的监听器 4.EditText 5.ImageView及ImageButton 6.Android 中Xml文件引用资源的方法 ...

  2. (Android小应用)在Android中实现多线程断点下载(连载二)

    前面已经讲了通过多线程下载网络文件的一部分核心代码,下面继续做我们的项目 当然如果我们做小一点的Android项目的时候可以先做界面,然后根据需要来扩展所需要的功能,当然有的时候我们宁愿先实现业务,业 ...

  3. 闲聊机器人实例四:python实现小姜机器人(检索式chatbot_sentence_vec_by_bert_bert句向量)

    bert构建生成句向量,再计算相似度,匹配问答库中的标准问题.为什么使用bert倒数第二层输出构建句向量. 小姜机器人.python.tensorflow.chatbot.dialog.bert中文短 ...

  4. 自然语言处理nlp小姜机器人(闲聊) nlp_xiaojiang-996station GitHub鉴赏官

    推荐理由:自然语言处理(nlp),小姜机器人(闲聊检索式chatbot),BERT句向量-相似度(Sentence Similarity),XLNET句向量-相似度(text xlnet embedd ...

  5. 闲聊机器人实例二:python实现小姜机器人(检索式chatbot_fuzzywuzzy)

    小姜机器人.python.tensorflow.chatbot.dialog.fuzzywuzzy.搜索.检索式.生成式.聊天.闲聊.对话.问答.多轮.单轮.开放.封闭.任务.垂直等等描述,都属于自动 ...

  6. esxi虚拟服务器网络搭建,小姜学网络(使用VMware ESXi 5.5搭建VMware虚拟化平台一)...

    小姜学网络(CentOS的minimal版本网络以及安装vmware tools) 小姜学网络(先电IaaS云平台基本环境配置二)附带完整代码 某职业院校有30余台服务器支撑着全校所有信息化系统的运行 ...

  7. mysql 手工配置_小姜学网络(MySQL数据库的手工安装与配置)附代码

    完成小姜学网络(先电IaaS云平台基本环境配置二)附带完整代码中所有内容,即先电IaaS云平台基本环境配置,或者从小姜学网络(先电IaaS云平台基本环境配置一)附带完整代码的镜像开始 涉及节点: co ...

  8. 闲聊机器人实例三:python实现小姜机器人(检索式chatbot_sentence_vec_by_word_词向量句向量)

    word2vec词向量构建生成句向量,再计算相似度,匹配问答库中的标准问题. 小姜机器人.python.tensorflow.chatbot.dialog.fuzzywuzzy.检索式.生成式.聊天. ...

  9. 闲聊机器人实例一:python实现小姜机器人chatbot_xiaojiang聊天(概述)

    小姜机器人.python.tensorflow.chatbot.dialog.检索式.生成式.聊天.闲聊.对话.问答.多轮.单轮.开放.封闭.任务.垂直等等描述,都属于自动问答领域.而且已经有了比较大 ...

最新文章

  1. Python Logging模块实现运行的程序写入 日志
  2. python程序设计案例课堂第二篇_Python程序设计案例课堂第二篇核心技术第十章图形用户界面...
  3. 鼠标监听类适配器改良
  4. Memcached 运行状态
  5. 学习Spring-Cloud –编写微服务
  6. Hadoop 系列之 1.0 和2.0 架构
  7. Latex常用功能模板集合
  8. (2020全新)UGNX二次开发(零基础入门)到提高全套视频教程_NXopen-UG二次开发_新浪博客
  9. python下载所有 XKCD 漫画
  10. 在家自学html,怎样在家自学英语口语
  11. mysql删除命令历史记录_MySQL历史命令记录清除
  12. 暑假多看看英文原版电影
  13. 影视后期调色一般都会用到什么?
  14. freeswitch ws php,针对FreeSwitch的呼叫中心接口
  15. 采用抓包的方式逆向获得谷歌翻译的API
  16. VS2010+QT4.8.5 +FastReport教程
  17. 电商黑马,集体倒在2019!
  18. 新媒体管理师证书培训、发证单位详解
  19. 控制鼠标定点移动及点击
  20. 阿里内部第一本“凤凰架构”,手把手教你构建可靠大型分布式系统

热门文章

  1. sync.Pool 使用
  2. 计算机关机时出现蓝屏,关机蓝屏,教您电脑关机蓝屏怎么解决
  3. Python轻松实现PDF格式转换(附详细源码)
  4. 2015年华为实习生机试样题(记票统计,计算麻将的番数,Word Maze(单词迷宫))
  5. MacBook Air 2014 安装NVME硬盘并纯UEFI安装和引导Win7
  6. 华为计算机黑屏怎么办,华为笔记本升级后黑屏怎么回事
  7. wps文档怎么做链接
  8. Android 实现图片倒影效果
  9. 2021高考体检成绩查询,2021年重庆高考体检报告结果查询时间及查询网址入口
  10. 父亲母亲-山里老房子