我是如何学习一门新技术的
Hello Everyone ~
因为近期在业余时间看了一些书和文章,而且也都让自己颇有些心得,以前的快乐是打几把游戏现在的快乐是学会一个新知识,写一篇博客,享受写的这一个过程,所以今天又突然想写一篇感想类的文章,也是对自己的学习路上的一个小总结,因为本人也是正处于“IT 工程师伟大发展之路”的初级阶段,所以平时还是要用大量的时间来学习积累。我一直认为不是所有的学习都有方法可言,都有捷径可走,即使我们每个人都希望自己能高效的学习,但是每个人的头脑和学习方式都可能是独一无二的,因此在这里我不讨论什么高效的方法,只讲讲自己学习每个知识点的一个小过程,不喜勿喷哦。
下面开始正文:
1 发现需求
在有一次我做项目到 Maven 仓库寻找依赖的时候发现的一个页面:https://mvnrepository.com/tags
有人会不禁感叹,这么多技术我们到底学那个好...
我觉得答案应该是:看需求。不要去盲目的学习,而是有目标的学习,而我认为需求可以来源于以下几个方面:
为完成工作或是学业或是比赛必不可少的技术。
对当前工作有更好提升的技术。比如能更加高效开发的技术,更加节省资源的技术,更加对业务实现和优化的技术等等。
能帮助自己找工作的技术。比如面向招聘信息学习等等。
感兴趣的技术。
......
因此,我们在学习技术之前要想一想为什么要学习这门技术,而不是盲目从众式的学习技术。
2 了解技术的大概
简单来说就是这个技术能做什么,属于哪个领域,能实现什么业务或者对什么业务有帮助,还有一些核心概念等等。
能做什么,能实现什么功能(业务)
属于哪个领域或方面
核心概念
3 认真研读官方文档,找出最佳实践和使用套路
我们所学习的技术都是有一份官方文档的,如果没有,那也会在 GitHub 上有一个显眼的 README.md 文件进行介绍和使用流程的描述,我们只需要在搜索引擎中输入相关的关键字很方便的就能找到哦。
除此之外,每个技术的官方文档上都会有一个小 demo,就是最佳的使用实践,看完基础概念后一般就可以理解下来,然后我们就在 demo 中总结下基础的使用套路。
官方文档
官方 GitHub 地址
最佳实践和使用套路
4 引入需求场景,总结使用流程
所谓的需求场景,最好就是应用在我们的实际工作项目的业务研发中,如果是一枚学生,就放在自己的学期末项目或者比赛和毕业设计项目中,反正就是不能白学,而是真正的放在有用的地方去实际的应用一次,然后就可以总结一下这个技术的使用流程,可以加深下印象。
带入实际使用场景
5 探究原理并合理输出
到了学习这门技术的深层次阶段,当然不能说是最后阶段,因为技术的学习没有终点。到这个阶段就是深究原理,站在巨人的肩膀上,了解其背后的思想,为什么这门做?还能怎么做?为什么这样做是最优的?相信经过深层次的挖掘之后我们心中一定会有自己的答案,当然挖掘原理的前提是能够熟练的使用该技术,挖掘原理的方式可以是看源码、读博客、看视频等等,最好是能够有自己的理解并写成文章分享出去。
熟练使用,探究原理
理解思想,扩展思想,善于分享
最后总结下:
在自己学习技术的道路上也遇到过很多良师益友,曾经有一名老师说的话对我的印象很深,只有短短的四个字:学会取舍
,这句话可以说在我们的生活中也是非常常见的,无论做什么事情都很难让自己完全满意,因此我们就要学会取舍。还曾读过一篇文章,可以说是一位资深的技术人对新人的忠告,也有一句话非常好,他说不要害怕学习一门新的技术栈,任何技术栈除了几个特性以外,其他都是相通的,学习每个技术栈最重要的就是掌握该技术栈的那几个特性
。
彩蛋:分享下我是如何学习 Go 语言的
(1)发现需求
学习 Go 语言的原因主要有两个,一是真的感兴趣,因为 Go 语言号称是“为并发而生”,因此就是伴随着好奇心去探索;二是因为想模仿技术大牛,因为当时在极客时间上看了几门课,有一门叫做《许世伟的架构课》,还有一门叫做《左耳听风》(PS:真的不是打广告,但是你如果也想买课的话留言联系我可以有优惠),这两位老师都是在行业中非常厉害的存在,而且他们都很擅长使用 Go 语言,所以就想也扩展下自己的技术栈,向大牛们看齐!
(2)了解技术大概
首先百度查下 Go 的历史,然后官网查看 Go 语言有哪些优雅的特性,以及都有哪些行业或公司在使用,都能用来做什么,实现哪些业务等等
(3)研读官方文档,找出最佳实践
当然官网可能是英文的,但是百度翻译总会用,有道词典、Google Chrome 网页翻译就更方便了,然后边看文档边看视频敲出了很多语法和数据结构的使用。
然后学习 Go 的很多框架,比如 Beego、Gin、gorm、viper 等等都是差不多的流程。
(4)引入需求场景,总结使用流程
因为 Go 语言的并发特性和 HTTP 支持,自己在业余时间利用 Go 语言写了一个博客系统和 Go 整合 Kafka 搭建的日志收集系统,从中知道了 Go 语言和一些中间件比如 MySQL、Redis、Kafka、Spring 等的整合方式,还清楚了 Go Modules 的使用流程和一些常用命令。
(5)探究原理并合理输出
这个就要看我的专栏咯:
最后立个 flag:因为 Go 是云原生的基础部分,因此熟练掌握之后下一步着手探索云原生技术!
OK 今天的分享就到这里~
版权声明: 本文为 InfoQ 作者【Barry Yan】的原创文章。
原文链接:【http://xie.infoq.cn/article/c0e7ddfb378401bc0ae3b1e9a】。文章转载请联系作者。
评论