gitbook/分布式技术原理与算法解析/docs/183304.md
2022-09-03 22:05:03 +08:00

60 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 特别放送 | 崔新:追根溯源,拨开云雾见青天
> 你好,我是聂鹏程。今天,我要和你分享的是,一名专栏订阅用户“崔新”的一些学习方法,主题是“追根溯源,拨开云雾见青天”。
> 虽然专栏已经更新结束,但我仍会关注会回复你的留言,并针对因时间问题未做到最好的文章做一次迭代。所以,我希望你也可以继续关注专栏,继续与我分享你在学习、工作过程中遇到的问题。
> 话不多说,现在就来看看崔新的故事吧。
大家好,我是崔新,昵称“随心而至”,一名后端开发者,坐标上海,工作一年多,在这里分享下自己学习“分布式技术原理与算法解析”专栏的心得。
## 我为什么要学这个专栏?
说来惭愧,我对单机的很多内容(比如操作系统、计算机组成原理)还是一知半解,但就是对分布式特别感兴趣,想知道成千上万的机器是如何协作共同完成一个任务的,想让自己的见识更广阔些。所以,**我学习这个专栏的初衷,更多的是兴趣,也坚信兴趣就是最好的老师**。
聂老师在开篇词中提到“知识碎片化、不成体系、见树不见林”,感觉一下就点到了我的死穴。我也听说过很多分布式概念,但只知其一不知其二。所以,**通过这个专栏,我想要系统化地学习分布式技术,了解其背后原理。**
另外,分布式框架发展得实在是太快了,如果我只是跟随发展热度去学习,焦虑、疲惫不说,收效甚微也是个大问题。所以,**我选择学习这个专栏的另一个目的是,想要看看技术的源头是什么样的,从根儿消除焦虑。**
我去年大学毕业参加工作Redis、Kafka、MongoDB、Elasticsearch、Storm、Spark、Hadoop等框架几乎是一瞬间同时跳到我眼前只能一个个去学习。学习一段时间后我发现这些框架有很多共性比如通信、选主、复制、协调。之后我开始有针对地去看一些文章对比着学习这些框架但总感觉不得要领学不透。
直到看到聂老师的开篇词我豁然开朗也更坚信“Software comes and goes, but hardware is forever”。只有追溯到技术的源头明白它从哪里来要到哪里去学习起来才能事半功倍。
## 我是怎么学习这个专栏的?
在专栏更新的过程中,我都是按照专栏更新的节奏在学习,大多会利用上班路上的时间,像追剧一样。有时我需要反复看几遍才能理解一个知识点,有时我需要停下来思考一段时间才能搞明白一个知识点,所以充分的学习时间对我来说很重要。追专栏更新的这个过程,也帮助我养成了一个良好的学习习惯。
**说到学习方法,我感触最深的有两点:一是,形象化和类比,可以帮助我更深入地理解知识;二是,实践很重要。**
不知道你有没有注意到,每一篇文章的题目都恰到好处,比如“分布式选举:国不可一日无君”。用熟悉的事件来类比技术问题,一下子就让我明白了这个技术的精髓,可谓四两拨千斤。其实,**我们也可以尝试用熟悉的事件将知识形象化,先有个感性的认识。**
比如聂老师讲到“分布式技术是多台机器集群如何协同完成一件事儿”你会不会想到通过单机的多进程、多线程等场景来理解呢。我对Java还算熟悉所以会用JUC中的知识来类比。适当的类比、举一反三可以帮助我更好地理解新知识和巩固旧知识。
这个专栏的设定是“技术原理与算法解析”,估计很多同学和我开始的想法一样,希望能多一些实践性的内容。但学完几篇文章后,我细想,聂老师想讲的是“道”,是一般性、普适性的原理,而具体的框架、实现只是在这些核心原理的基础上又添加了很多细节。
**在框架中验证原理,可以让我们理解得更深刻;将知识点与业务场景联系起来,才能真正发挥其作用,进而提升自己的业务能力。**
所谓,师傅领进门修行在个人,我觉得要想搞清楚、弄明白一个知识点,学完技术原理后,一定要多实践,去看具体框架的官方文档、源码,并上手操作。
## 学到现在,我的收获和体会
因为我学习这个专栏的目的很明确,所以学完已经更新的这些文章,感觉收获也非常大。
首先,**我的眼界更开阔了,知识也逐渐成体系了**。学习时我经常会遇到自己不甚了解的技术比如Actor、单体调度等感觉非常爽。
同时,不得不说的是,聂老师对分布式技术体系“四纵四横”的划分,非常清晰明了,让我知道应该学习哪些知识,以及这些知识间的内在联系是什么样的。专栏每一站都会讲到最常用的那些技术点,各个站串联起来,就是一张分布式技术的知识地图,我要做的就是,按图索骥、多加实践。
其次,**我逐渐形成了一套自己的学习方法**。我觉得这个专栏最大的一个特点就是都是分布式中最最核心的那部分技术。我可以集中精力去学这些最关键的主干知识然后再去丰富枝叶比如具体的框架实现、知识延伸。这种思路其实就符合80/20法则。
我感触比较深的另一个点是,学习知识要多思考、勤总结。聂老师在每篇文章后都提供了一个知识扩展模块和一张思维导图,不仅有助于我复习,还能帮我从广度和深度上完善自己的知识体系。对我来说,这是一个非常好的方法。
## 我想对专栏初学者说的话
工作一年多来,我总结了些学习方法,也有很多感触,想和你分享、交流。
**首先,基础要扎实,学习要系统。**虽然我是计算机专业出身,但大学时净忙着学习各种编程语言了,反倒是计算机基础知识没打牢。意识到这一点后,我开始系统地学习计算机组成原理、操作系统、数据库、数据结构与算法等基础知识了。
如果你的基础也和我一样不那么扎实的话,不要着急,静下心来一点一点地学习就好了。
**其次,眼光放长远,关注复利效应。**现在市面上充斥着各种速成系列,我觉得要离这些东西远一些,否则会一直在低水平重复。不求速成,日拱一卒才更适合我。只要保持增长,即使增长速度没那么快,日积月累的效果也会很可观。这,就是复利效应的魔力。