【一篇文章搞懂,实战分析

开头

学习能力,尤其是自学能力,你啥时看到那些有名的程序高手在论坛上问“学习XX该看什么书,如何快速学习XXX,学习XXX有什么代码推荐”之类的问题,他们想学什么很快就能自己找到相关资料。这个行业发展太快,技术淘汰的速度也很快,3年不学新东西就可能落伍了。

动手能力,都是看书看资料,当别人还在纠结看什么书,还在纠结书里的字句是什么意思的时候,有些人的几百上千行代码都已经能运行了。

耐心和毅力,做程序员兴趣固然重要,写自己喜欢的代码那是相当愉快的事情,但是程序开发中无论如何还有大量乏味无趣的事情,要能坚持,咬牙把这些做完。

表达能力,能在大庭广众下,把自己的想法逻辑清晰流畅地讲出来,让人听懂。

那么技术呢?技术不重要,有了以上几种能力,市场上需要什么技术,很快就能掌握了。

最后再说说工资的事,记住两句话:

工资不是老板对你过去贡献的回报而是对你未来贡献的预期。

现任老板不可能给出让你满意的工资,下一任老板才会。

1-2年走的弯路

大学期间
实践得晚:其实在大学我就通过导师接触了Android,但是在当时选择多的时候Java,c++,这些让我硬是工作飘了一年我才才正式从事Android开发。从头学起的这过程中看了一些关于 android方面的书籍,多数时候也只是停留在纸面上,在配置开发环填和开发过程中遇到一些问题导致自己不能坚持下来,想想那时真傻,有啥问题都不知道用谷歌搜搜,只知道按照书上的来,就算用百度搜一下也好啊,实践得晚最大的弊端是之前花时间看 android方面的资料都算白费了,因为这中间一直是断断续续,看看远没有实践来得印象深刻,没有真正实践的开发过app,很多东西基本都忘记了,浪费了不该浪费的时间。
该学哪些知识

  • 掌握Android 四大组件知识,深入了解相关生命周期,对于Application、Fragment、Intent常见的开发知识也必须掌握。
  • 掌握Android 基本布局和控件的属性和使用,常用布局有LinearLayout、RelativeLayout、>ConstraintLayout等,控件有- TextView、ImageView、RecyclerView、ScrollView等。
  • 对Android的资源访问使用有基本了解,了解Android针对不同国家、语言、屏幕、API的适配原理。
  • 掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。
  • 熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。

如何避免
在大学期间如果有项目经验,无疑对你后面找工作是有优势的。所以我建议在大一开始就一个提前规划好,自己的发展方向,Android,Java,c++。有了目标,大学就朝着这个方向去学习,多接触外面的人和事不要故步自封,在学校就是宅,打游戏。这些后来积累下来的人脉,都是可以帮助到你的,这个就是圈子!

2-4年走的弯路

在工作中
基础学科没学好,知识不牢固: android是多个基础学科结合的复合型产物(高级语言java、操作系统编译原理、算法与数据结构、设计模式等等),由于是从win32程序出身的,后来做项目直接学 android,java基础这些只是看了几本书,导致踩了很多没有必要踩的坑,比如在 finalize方法中关闭资源、没有关闭文件流等等,没有好基础学科最大的弊端是踩了很多没有必要踩的坑。
该学哪些知识

  • 熟悉SOLID基础设计原则,掌握23种设计模式。
  • 对于研发语言特性java/kotlin有深入理解,如反射、动态代理、apt等。
  • 对Android架构有基础了解,对apk结构和打包原理有深入了解。
  • 对于Android各个版本特性有基本了解,如MD设计、权限管理、doze模式等。
  • 熟练掌握各种研发调试工具,如git、gradle、mat、layout inspector等。
  • 掌握Handler\AsyncTask原理,熟悉多线程开发。
  • 对绘页面制原理有初步理解,能够实现一个复杂自定义控件。
  • 能够熟练掌握开源库的使用,如图片库(Glide\Fresco)、网络库(Volley\okhttp\Retrofit)、工具* >>*
  • (Dagger\RxJava\EventBus)等,能够对这些常用的库进行二次封装。
  • 熟悉应用常见的优化方法,避免编写内存泄漏的代码。

如何避免
既然已经存在了这个问题,基础不牢靠那就补基础吗?基础这块视频都讲的比较全面系统,觉得自己基础不过关的可以去看看他的视频!还有有资料,比没资料好,系统的资料比有资料好。资料收集,导图的制作也是加强我们对知识技能熟悉的过程!对了,有自己博客,GitHub也是面试时的加分项哦!
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4-6年走的弯路

跳槽时/转行
跳槽时一定要注意,离开这家公司你会失去一些什么,到下一个公司你能得到些什么,在这段时间里您不能承受之后的花销,我就在家里蹲了几个月,无奈~别只看薪资,这只是一部分因为在boos大多数都是夸大的!
转行记得分析行业前景,以及自己现在掌握的技能是否能让自己能够短时间内,换到这个行业

  • java
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  • Android
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  • c++

    上面都是阿里的,很明显c++待遇最好,因为他要求的知识技能也高,所以希望大家注意一定记得贴合,符合自身的一些情况,再选跳槽行业!

该学哪些知识

  • 掌握java高级特性,如JUC、线程池、NIO\BIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。
  • 对Android运行环境有深入理解,理解Android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。
  • 掌握热修复原理,各大厂商方案的优缺点。
  • 对于Android事件分发有深入理解,重点掌握触摸事件机制。
  • 深入理解Android绘制原理,理解VSYNC和surface机制和窗口原理。
  • 深入理解Android动画原理,包括补间动画和属性动画。
  • 对于Android安全机制有基本认知,理解Android安全原理。
  • 深入理解端上设计范式思想,如mvc\mvp\mvvm\clean-arch等。
  • 理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
  • 对新技术敏感(,理解掌握下一代架构dynamic feature等。

学习福利

【Android 详细知识点思维脑图(技能树)】

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

![](http

点击领取完整开源项目《安卓学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

s://upload-images.jianshu.io/upload_images/14735202-e79ae5bfd9eced94.png?imageMogr2/auto-orient/strip|imageView2/2/w/817/format/webp)

详细整理在GitHub可以见;

Android架构视频+BAT面试专题PDF+学习笔记

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

18156601)**

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值