今天讲一个 Android 开发小刘的故事。

年前他和大学同学聚会,和几个在BAT的同学聊了聊技术,发现自己在创业公司这几年,完全是吃老本的状态,没有什么机会精进技术,同样是工作了三年,和同学的差距却越来越大。

     ▲图片来源于网络,侵删

但真正让他受打击的是 3 月份的一次面试…

“面的是一个大厂,面试官问了很多问题,一大半的问题我都是一知半解,回答上来问题也是特没底。

大概回顾了这场面试:上来先是问了Java基础知识,jvm、字符串、集合、线程、四大组件等,这部分还算是Easy。第二部分开始复杂了,主要是设计模式、原理方面的问题

像是:

你说你做过自定义View,那麻烦说一下为什么Activity中有dispatchTouchEvent();?

View的测量过程

你说你当初用了volley,那你在技术选型时有什么考虑?你知道volley有什么缺点吗?为什么有这样的缺点?

okhttp的原理是什么?相对之前的网络请求框架的优势是什么?

主流的热修复技术都有哪些?各自的原理是什么?各自的优缺点是什么?为什么你采用这个方案而不是别的?

我之前工作上经历的少,加上自己技术储备浅薄,到这部分时我就感觉自己快凉了。面试到最后,问了设计方案相关的,当时已经懵了。。。。进入大脑怠机状态

面完后他说,觉得自己在技术上欠了很多债,最惨的是,在这之前他根本不知道。

小刘的经历,正是很多1-3年的Android工程师的困扰,想够一够 2、3w月薪的岗位,但在底层技术上却有很大的问题

做了几年的Android,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。

都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。

技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到架构师/ Android 技术专家?这 9 大能力是你一定要修炼的:

当然,想要深入学习并掌握这些技术能力,并不简单。

关于如何学习

做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 10 小时用来学习,不出半年,你就能看出显著变化。我每天还会额外抽出1-2个小时的时间锻炼身体,这样我的一周就比别人多了接近24小时的时间,日积月累下来,其他人再也不可能超过我。

我以我自己为例,但确实还是有很多人即便想,也不能做到像我一样,或是因为加班,或是朋友聚会……

我要说的是:如果没有很好的自律性,没人指导,盲目自学大概率就是浪费时间精力,因为不仅效率低、学习没有体系,学完了也很难找到满意的工作。毕竟面试时还是要层层深挖,不到不行不会停的。

之前就有粉丝跟我反应,说到平常自学是在博客上找相关的内容,结果过后不久还是忘得一干二净,面试时也只能回答出一点皮毛。

我就回答他,这是因为掌握的知识不成体系,你感觉到你缺什么才去学什么,并且网上的博客大多对原理只字不提,你知道该这么做却又不知道为什么,平常在项目中也不常用到,会忘记是肯定的。

如果你像当年读书那样学习试试,那些数学方程式哪怕一直没用,你看上一遍又能完全掌握,那些文言文的之乎者也,你根据语境也能看出门道,所以我常说,大多数程序员的根本问题是没有系统化的学习,他们了解的知识根本不成体系化。

如果你想更系统地学习Android,那么我推荐你一份《Android开发核心知识点笔记》:

如果你需要的话,可以 点这领取

包括有:

  1. Java知识点汇总
  2. Android知识点汇总
  3. Android扩展知识点
  4. 性能优化知识点汇总
  5. Android开源库源码分析
  6. Kotlin知识点汇总
  7. 设计模式汇总
  8. Gradle知识点汇总
  9. 计算机网络基础
  10. 常见面试算法题汇总

这十个板块,后续还会补充更新更多相关内容

相信你可以从中获益

目前正在利用下班时间补充修正,如果你看到有哪里不对的话,还麻烦私聊告知我一下,我马上去修改~

整套内容大致对标阿里P7、腾讯T3,通过体系化学习帮你完成Android进阶

除此之外,也有很多粉丝反应最近面试越来越难了,面试官总会不断深挖到底层,总能遇到自己不会、不懂得知识点,于是我还分享相关的 面试专题PDF 以及 高级架构进阶视频 帮助你从原理层面理解每一个问题,进大厂拿高薪还不是信手拈来?

很多朋友不是没有资料,大多都是有几十上百个G,但是杂乱无章,不知道怎么看从哪看起,甚至是看后就忘

如果大家觉得自己在网上找的资料非常杂乱、不成体系的话,我也分享一套给大家,比较系统,我平常自己也会经常研读。

如果你需要的话,可以 点这领取

漫漫开发之路,我们只是其中的一小部分……

只有不断的学习、进阶,才是我们的出路!才跟得上时代的进步!

6 月已经接近尾声,2020 年已经过去1/2了,一年并没有想象中那么长,希望你永远保持一份持续学习、持续思考的状态。

共勉!

更多相关文章

  1. 【android免root脚本制作】基于控件的操作——auto.js进阶
  2. Android学习之 那些让我生疏的配置属性
  3. Android学习14--Android应用资源
  4. 我的工作感悟:作为Android(安卓)开发者,该如何提升自己的职场竞争
  5. 2016年末,Android岗位BAT等大厂面试题知识点小结(一)Android基础部
  6. Android多媒体学习六:访问网络上的Audio对应的M3U文件,实现网络音
  7. Android(安卓)View学习笔记(二):View滑动方式总结
  8. android学习之获取联系人原理(姓名和电话)详解
  9. 神级Android大牛应该具备的27类技术知识点及对应薪资范围

随机推荐

  1. Android(安卓)Activity 切屏处理
  2. android五种布局模式
  3. 【Android学习笔记】AutoCompleteTextVie
  4. android通过httpClient请求获取JSON数据
  5. Android(安卓)Studio的.gitignore以及git
  6. 如何在Android平板电脑POWER按钮菜单中添
  7. A Faster Emulator with Better Hardware
  8. Android(安卓)permission 访问权限大全
  9. 「抄底 Android(安卓)内存优化 3」 ——
  10. android framework 输入事件分析