从12年算起,自己也在软件开发这个行业已经近7年。自己也一直在从事Android移动开发。回顾自己的这7年,对自己是非常失望的。自己一直从事着应用层的开发,只是一些系统API和第三方库的调用。对于一些高深的Android知识,比如Android安全、Android内核源码并不熟悉。

回顾自己这7年,自己也规划过自己的学习路线,但是常常因为一些知识用到的非常少,学了忘,忘了学。还有些时候还特别浮躁,对于一些学习路线陡峭的知识(比如热更新热修复、NDK、源码学习等等)总是会对自己说,开发也用不到,没必要学了。针对自己这些问题,自己也反思过,也总结过应对方案。具体方案如下:

  1. 整理自己的知识体系。自己曾经有个观点,常用的知识点个数是有限的,把知识点全部罗列出来,比如总知识点是100个,自己掌握了多少个心中有数,自己没掌握的也心中有数。可以让自己明确知道自己要做什么。
  2. 及时总结。常常在工作过程中遇到的问题网络上查一遍解决了,但是不总结的话第二次第三次还是会去网络上查。研究的东西也没有很好的总结,每次研究就从头开始。
  3. 不要浮躁,不要太有功利心。学习的过程中,总会想这个知识能否用到,这个知识面试的过程是否会被问到,如果觉得用不到就会放弃学习。所有学到的知识或早或晚都会被用到的。就像自己经常想的那样,如果自己从开始接触Android的那一天起,每年坚持看一本Android的书籍,现在也基本多Android各个方面有一个全面的了解。所以,要静下心去学习。

其次,自己不应该把自己的眼光只局限在Android开发。自己刚开始从事Android开发时候,正值移动开发火热的时候,自己也在刚毕业的时候选择了移动开发。这两年可以说是移动开发的寒冬,经常会听到身边的人说移动开发不好找工作。所以最近总是在思考自己未来的规划。有了清晰的规划,第一、不至于像现在一样,浪费了那么多时间。第二、不至于在未来被淘汰,如果某天Android开发不行了或者被其他跨平台所代替,自己所掌握的其他知识也能为自己谋求一份工作。

自我提升的唯一途径就是不断的学习。如何学习,学习什么是我首要解决的问题。对于如何学习,最好的办法就是看该技术相关的经典书籍。比如学习Java,如果能把《Core Java》两本、《Thinking in Java》和《Effective Java》细致的看一遍,把里面代码自己认真的敲一遍,绝对可以熟练掌握Java。现在网上也有很多付费的课程,自己也买过一些,但是都不是很满意,因为质量没有达到自己的期望。这些经典书籍都是经过大量阅读验证的,质量绝对没问题。我也参考了别人推荐的书单,整理了一些自己的书单。

参考的书单包括:

我的书单:

最近购买了左耳朵耗子的左耳听风专栏,专栏中的程序员练级攻略,对于我要学什么来提高自己的疑惑给出了解答,并且给出了大量的学习资料推荐。部分我也整理在上面的书单里了。以下是我结合自身情况整理的自己要学习的知识。

  • 编程语言
    • Java:Android开发必须掌握的。
    • Kotlin:Android开发必须掌握的。
    • C和C++:研究Android内核和NDK开发必不可少。
    • Dart:Flutter跨平台。
    • Go:最近比较火热。
    • JavaScript:跨平台。
    • Python:机器学习。
  • 算法
  • 操作系统
  • 计算机网络

明确了怎么学和学什么之后,还有重要的一个环节就是如何把这些计划实施下去。每个人都喜欢在年初的时候制定自己一年的计划,但是到年底,计划最终以失败告终。我自己也不例外,每年都豪情壮志的说今年要好好努力了,雄心勃勃的制定一系列计划发到朋友圈。然后到年底的时候悄悄把他从朋友圈删除。因为每次指定的都是一个大的空的架子,具体每一天做多少,没有给自己设置deadline。所以针对这种情况,我自己也做了反思,要给自己每天去设置最低的目标,每天坚持读10页技术书,这是一个最低标准。如果按照这个最低标准,一年也能读3650页的书。

其次还有个问题就是读过的书经常会忘记,《Java编程思想》这本书,我反复也看过几遍,但是好多东西过的久了,还是会忘记。对于这种情况,第一要多实践,除了工作中的实践,还要去看一些面试题来帮助回顾这些知识。其次对于每年的读书计划,要做到每门技术都有涉及,不至于太久不接触就忘记了,所以我按照下面的准则来制定自己每年的技术书单:

  • 一本Java书
  • 一本C语言
  • 一本C++
  • 一本Go/Python
  • 一本前端书
  • 一本算法书
  • 一本操作系统
  • 一本计算机网络

最后再说说读书方法。我自己的读书方法就是记读书笔记,基本就是对书中关键知识点和代码的摘录或者转换成自己的语言进行描述。我自己非常喜欢这种读书方法。第一、这种方法可以达到厚书读薄,回顾的时候不用再从头再看一遍书,而且用自己的语言表述再读的时候更加好理解。第二、我基本都是按照一本书的目录去梳理自己的知识。自己之后遇到什么问题,或者学到什么新的知识就会记录在相关的章节。第三、就是更方便查阅。平常不可能携带一大堆书在旁边,用到的时候再去翻书太麻烦了。当然,读书方法也不是一成不变的。需要不断的借鉴别人的读书方法,来完善自己的方法。下面是一些我看到的读书方法:

嗯,这些就是我很长一段时间对于自我提升的思考。写在这里算是一个梳理。对自己未来路也更加清晰。剩下的就是坚定不移的执行自己的这些目标。其中有些想法可能还不够完善,我也会不断的思考改进的。

^_^