前段时间,托公司和极客时间的福,领了一些VIP课程,为了不浪费这个机会,我也每天在平台学习,慢慢进步。学到今天,有一门课程对我影响很大,那就是阿里云云栖认证专家颜群分享的《如何快速且深入地学习一门新技术?》。感兴趣的童鞋可以去看看。
下面是我看完后整理的思维导图,导图是用幕布生成的,想要源文件的童鞋可以从这里查看。
作为互联网人,我们都知道技术更迭太快,怎么都学不完,实在让人头秃。35岁警告劝退、中年危机等词层出不穷,我们每天感到焦虑,想着跳槽涨薪或开辟第二职业来避开中年危机。可是加班不断让我们间歇性踌躇满志、持续性混吃等死。
我在这个行业好几年了,从毕业实习的JSP时代,到前后端伪分离的JQuery时代,再到现在的微服务时代,前后端的技术栈飞速发展。尽管计算机的基础部分,如计算机原理、计算机网络、数据结构与算法、设计模式、数据库基础知识点万变不离其宗,但在实际问题面前,我们要学习的技能点仍然数不胜数。
对于学习新技术,折腾了这么些年,我也有自己的一套理解,但在逻辑上没有颜老师清晰,这里我就借用老师的大纲,谈谈自己对学习一门新技术的理解。
根据颜老师的大纲,学习分为几部分
-
快速浏览
-
积累案例库
-
与其他技术整合
-
难点技术
-
技术分享
对于第一点,我们应该很清楚,大部分的框架和设计模式都是为了减轻编码者的工作量,用极少的代码实现高效且兼容性强的功能。碰到这种技术,我们能做的就是用最快的时间了解这么技术架构。用通读全文的方式将这门技术的大概梳理一遍。
比如学习Mybatis时,通过快速看Mybatis的书籍,我们很快可以知道
-
Mybatis是一个ORM框架,可以帮助我们很快实现与数据库的交互
-
通过java和xml的结合,Mybatis帮助我们将sql映射到javabean中,以便我们可以更简单地管理复杂SQL
尽管我们知道的不多,但我们对Mybatis的作用和使用便有了一个比较清晰的概念。接下来我们可以写一个helloWord,简单地将架子搭起来,通过一个单元测试从数据库中增删改查一条数据,我们就算是初步认识了Mybatis。
然后第二点,我们既然知道了Mybatis的基本使用,我们便可以新建一个项目,开始探索不同的功能点。通过运行不同的案例,脑海里逐渐形成了Mybatis的横向和纵向概念。再与业务逻辑一结合,又会有新的案例需要我们去尝试,这是一个正反馈的过程。
前两点我做得还不错,已经形成了一定的习惯。但第三点,我自己觉得确实做得还不够。每次需要整合技术点时,总是因为各种各样的借口而搁置。
按照老师的观点,我们可以将学习ssh、ssm、springboot等项目的案例整合到一块,通过各种技术将几个平台整合起来互相调用,这样既是一个好的项目,也是一次完美的复习过程。在操作中,我们对架构以及旧知识点的印象就会加深;我们行业说到底还是一个技术行业,唯手熟尔。这一点做得越好,我们的薪水才会越高,对架构的理解能力才会越深,在架构师这条路上才能越走越远。
对于技术难点的处理,我也是心情复杂。去年8月份我就决定去LeetCode刷算法题,也决定将JVM好好研究下。到了现在,我刷题数都没超过50,JVM也放下了,倒是中间磕磕绊绊学了不少框架。所以在这方面我也应该有所计划了。
我们自己称自己为开发工程师,其实只是业务工程师而已,我们离真正的开发工程师就差这些难点技术。对于理论型的技术,颜老师建议我们使用碎片化的时间学习。对我来说,这部分包括算法、JVM、深入理解数据结构等。对于实践类的,我想把ssm的底层源码好好看下,手写几个简单的框架来体验经典框架的魅力。
至于最后一点技术分享,我也表示很惭愧。也是从去年年中开始,我逐步认识了很多有自己的博客、在GitHub上有自己开源项目且积极乐观地分享自己学习成果的朋友。他们活跃于各大平台,与全国各地的开发进行交流、学习,进步是显而易见的。受他们的影响,我开始输出自己的学习成果,但因为各种原因,自己更新频率不是很理想,也不知道自己在怕什么。
因此,也借着这篇文章,我想好好把之后的学习计划整理下。
-
建立自己的案例库,这也将成为自己编程路上的财富
-
将多个知识点整合成一个项目,然后实现它,比如我正在做的一个项目:用java swing实现一个目录选择器,将选中的目录导出为xml,以后整理目录时就很方便了。
-
项目涉及java swing
-
xml解析
-
多线程
-
-
将自己的学习成果输出为博客,就算有错,被人挑出来也是一个很大的进步
愿与诸君一起进步!