Hello Everyone ~
因为近期在业余时间看了一些书和文章,而且也都让自己颇有些心得,以前的快乐是打几把游戏现在的快乐是学会一个新知识,写一篇博客,享受写的这一个过程,所以今天又突然想写一篇感想类的文章,也是对自己的学习路上的一个小总结,因为本人也是正处于“IT工程师伟大发展之路”的初级阶段,所以平时还是要用大量的时间来学习积累。我一直认为不是所有的学习都有方法可言,都有捷径可走,即使我们每个人都希望自己能高效的学习,但是每个人的头脑和学习方式都可能是独一无二的,因此在这里我不讨论什么高效的方法,只讲讲自己学习每个知识点的一个小过程,不喜勿喷哦。
下面开始正文:
1 发现需求
在有一次我做项目到Maven仓库寻找依赖的时候发现的一个页面: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今天的分享就到这里~