一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图。另一份 Android 开发学习路线图。可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiaohua的呼吁下,我花了些时间,把这篇大牛的推荐清单编辑成了Markdown格式,方便大家浏览,学习。
有一些链接可能还不是特别准确,因为我只能根据图片上的书或者资源的名字去Google可能的书籍,所以链接上有什么不对的,欢迎大家评论指出,我会及时更正。请参考原文:另一份 Android 开发学习路线图 帮助修改。谢谢。
基础工具部分: 中文手册,我猜测是Maven中文手册,可是我并没有找到这样的资源,欢迎知道的朋友告诉我;
Android部分有 『第三方库集合』,我没能找到资源地址;
书籍我大多是给的豆瓣链接,如果觉得不合适可以替换一下;
关于Markdown表格
本来我一开始整理了一份表格版本的, 用 Mou 写的,表格内的换行用
标签处理的,但是在DiyCode上来发的时候,发现Markdown表格内部不支持
标签换行,所以就只能整理成平铺的文档格式。Markdown对于表格的支持不是很强大。
程序设计
一、java
(a)基本语法(如继承、异常、引用、泛型等)
Java核心技术 卷I(适合入门)
进阶
Effective Java中文版(如何写好的Java代码)
Java解惑 (介绍烂Java代码是什么样的)
(b)多线程、并发
Java并发编程实战 (系统全面的介绍了Java的并发,如何设计支持并发的数据结构)
(c)Java 7
Java程序员修炼之道 (详细的介绍Java 7 的新特性)
(d)Java 8
写给大忙人看的Java SE 8
函数式编程思维
(e)Java虚拟机
深入理解Java虚拟机 (并不是那么难,Java程序员都该看看)
(f)性能优化
Java性能优化权威指南 (后面的章节好像用处不大,前面有些部分还是值得看)
二、算法与数据结构
算法时间复杂度、空间复杂度的基本认知
熟悉常用数据结构:链表、队列、散列表、树等;
递归、分支等基本思想;
常用算法应用:排序、查找、比较等
数据结构与算法分析 (涵盖面比较全、示例是Java语言)
算法设计与分析基础 (实用主义的典型、偏算法设计)
编程珠玑 (实践型算法数据)
三、操作系统
对Linux/OS的基本认知
Linux的常用命令
鸟哥的Linux私房菜
Linux内核设计与实现(原书第3版) (很精炼的语言描述清楚了内核算法)
四、网络
Http/Https
TCP/IP
图解HTTP
图解TCP/IP
进阶
TCP/IP详解
五、Android
四大组件(服务、广播、ContentProvider、页面容器)
基础UI组件(ListView、ViewPager)
异步任务机制(AsyncTask、Handler、线程池)
布局优化(层级、绘制、碎片化处理)
图片加载(Bitmap、缓冲区)
UniversalMusicePlayer (通过学习一个音乐播放器的代码能很快了解四大组件)
Android Training官方课程
Android一些重要知识点解析整理
Android UI/UX库(各类常用组件及扩展组件的集合)
Picasso 、 Glide (两个图片加载库)
The Google I/O 2015 Android App (Google大会官方的App,适合学习各类实现)
Android开发技术前线 (定期翻译、发布国内外Android优质的技术、开源库、软件架构设计、测试等文章)
进阶
第三方库集合 (列举了常见的各方向第三方库)
软件工程
一、基础工具
IDE、Git、Maven
AndroidStudio
Git权威指南中文手册
二、软件质量
代码整洁
码质量
码重构
编写可读代码的艺术 (来自Google工程师,专注于代码可读性)
代码整洁之道(使用面向对象+敏捷开发原则编写清晰可维护的代码)
重构-改善既有代码的设计 (学习改善已有代码)
重构手册 (改善代码的实际操作)
三、设计模式
23种常见设计模式
大话设计模式
Head First设计模式(两本入门级的设计模式书籍)
进阶
设计模式-可复用面向对象软件的基础(设计模式在实际中的应用)
四、敏捷开发
解析极限编程
敏捷开发的艺术
进阶
敏捷软件开发-原则、模式与实践
五、专业开发
序员职业素养
更高效、更实效
程序员的是职业素养
程序员修炼之道-从小工到专家
六、思考人生
黑客与画家 (硅谷创业之父Paul Craham 的文集,主要介绍黑客及优秀程序员的爱好和动机)
一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本的更多相关文章
- 一个老鸟发的公司内部整理的 Android 学习路线图
基础工具部分: 中文手册,我猜测是Maven中文手册,可是我并没有找到这样的资源,欢迎知道的朋友告诉我: Android部分有 『第三方库集合』,我没能找到资源地址: 书籍我大多是给的豆瓣链接,如果觉 ...
- 在程序内部跳转到下一个页面 和 向另一个servlet发起跳转
request.getRequestDispatcher("/success.html").forward(request,response); request.getReques ...
- .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器
使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言 Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...
- 关于公司内部的Nuget服务
简介 公司内部搭建的Nuget服务,私有安全,局域网,速度快. 使用方法 VS -> 工具 -> 库程序包管理器 -> 程序包管理器设置 -> 程序包源 -> 新增以下配 ...
- 公司内部搭建git服务器
前言 因为gitHub上的项目是公开的,不适合公司内部项目放在上面,而私人的需要收费,这绝非是我们愿意的.所以找了个跟gitHub很相似,但是又免费的gitLab.现在将搭建gitLab过程记录一下留 ...
- Rafy 领域实体框架 - 公司内部培训视频
本月给公司内部一个项目做架构重构,其中使用到了 Rafy 框架.所以我培训了 Rafy 领域实体框架的使用方法,过程中录制了视频,方便其他同事查看.现在把视频放到园里来分享下,有兴趣的朋友可以看看,有 ...
- 搭建公司内部的NuGet Server
随着公司业务慢慢的拓展,项目便会越来越来多,很多项目会依赖其他项目DLL,比如一些底层的技术框架DLL引用,还有各业务系统的也有可能会有引用的可能. 项目多,交叉引用多,如果要是有一个DLL更新,那就 ...
- 公司内部培训SQL Server传统索引结构PPT分享
公司内部培训SQL Server传统索引结构PPT分享 下载地址 http://files.cnblogs.com/files/lyhabc/SQLServer%E4%BC%A0%E7%BB%9F%E ...
- 使用mvvm框架avalon开发公司内部运营管理系统的一些心得
接触avalon差不多有一年时间了,当时是看前端大牛司徒正美的博客才了解到还有这么一个高大上的玩意,然后就加入了avalon的讨论群.从群里零零散散的了解了avalon的一些特性,感觉很强大,感觉思想 ...
随机推荐
- RTT设备与驱动之PIN设备
单片机的PIN有2个基本功能:GPIO和AFIO,其中gpio的常用功能: 1 输入:上拉.下拉.模拟.浮动 2 输出:上拉.下拉.推挽.开漏 3 中断:上升沿.下降沿.双沿.高电平.低电平触发 RT ...
- GO WEB
1.第一个坑的就是,错误信息如下: 比较常见的错误“Connection reset by peer”,该错误和“Connection reset”是有区别的: 服务器返回了“RST”时,如果此时客户 ...
- 宋宝华: 关于Linux进程优先级数字混乱的彻底澄清
宋宝华: 关于Linux进程优先级数字混乱的彻底澄清 原创: 宋宝华 Linux阅码场 9月20日 https://mp.weixin.qq.com/s/44Gamu17Vkl77OGV2KkRmQ ...
- OpenStack Weekly Rank 2015.08.10
Module Reviews Drafted Blueprints Completed Blueprints Filed Bugs Resolved Bugs Cinder 5 1 1 6 12 Sw ...
- 4.JavaScript
1.简介 JavaScript 是一种轻量级的编程语言,是一种动态类型.弱类型.基于原型的脚本语言. JavaScript,通常缩写为JS,是一种高级的,解释执行的编程语言.JavaScript是一门 ...
- easyui datagrid 动态加载数据 渲染问题,表格错位问题
$('#dg').datagrid({ url:'datagrid_data.json', columns:[[ {field:'code',title:'Code',width:100}, {fie ...
- Shader笔记
1,渲染队列值小的先渲染,值大的后渲染 2,zTest,zWrite zTest:LEqua zWrite:On 则:zWrite中,深度值小于深度值缓冲区的值会被通过 参考:http://www.c ...
- 学习html5 app项目开发
这周因为部门接了个小的html5 app case,所以从事android开发的我就接下了这个项目.与其说是项目需要,其实更大部分是我自己想要做html5 app,因为我对这个全新的平台已经好奇很久了 ...
- selenium中Alter等弹出对话框的处理
昨天使用selenium做自动化测试,发现部分页面会弹出alert对话框,找了写资料,大概的意思就是要给弹出的对话框做出相应,不然,后续的处理会失败. _driver.SwitchTo().Alert ...
- System Center Configuration Manager 2016 必要条件准备篇(Part4)
步骤4.重新启动Configuration Manager主服务器 注意:在Configuration Manager服务器(CM01)上以本地管理员身份执行以下操作 打开管理命令提示符并发出以下 ...