learn-tech/专栏/周志明的架构课/用户故事_詹应达:持续成长,不惧未来.md
2024-10-16 06:37:41 +08:00

115 lines
11 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.

因收到Google相关通知网站将会择期关闭。相关通知内容
用户故事 _ 詹应达:持续成长,不惧未来
你好,我是编辑王惠。今天是大年初六,春节假期也快要结束啦,春节玩得还开心吗?在放松的同时也别忘了要继续学习哦。
今天这一讲,我们邀请了一位优秀的同学来做分享,如果你看过之前更新的两篇春节特别放送,那应该会很熟悉他的名字@zhanyd
其实在梳理课程留言的时候,我就注意到了詹应达同学一直在跟随周老师的脚步,学习和实践软件架构的相关知识点。留言的内容十分有见地、提出的问题也能看出是经过了他深入的思考。所以我邀请他来和我们分享一下他的学习心得与体会。
OK下面我们就一起来看看吧
你好我是詹应达zhanyd一名工作十多年的程序员目前在温州做制造业信息化相关的工作很高兴能和你分享我学习这门课程的心得。
为什么要学这门课?
首先我想和你聊聊我为什么想要学习这门课。
作为一个三线城市的程序员CRUD BOY想在工作中不断学习、突破瓶颈有质的飞跃说实话我觉得真的很难。
就拿我自己来说吧我们公司搞开发的就那么几个人大家的水平都差不多都是“面向百度编程”而且业务上只有简单的CRUD和复杂的CRUD高并发分布式不存在的。要想提升技术能力的话就只能靠自己的悟性了。
可是高并发和分布式系统在程序员的能力进阶之路上,都是绕不开的高墙。所以就算是工作中没需求,我也想要学,不然像我这种“高龄”程序员,再不往上提升的话,迟早会被市场淘汰。
然而,分布式系统是出了名的难搞,我想学,但是无从下手,在网上东看篇文章,西学点概念,都是很零碎的知识,不成体系,又没深度。再这样下去,我迟早会知难而退,对分布式系统敬而远之。
不过幸运的是,后来我在极客时间找到了周老师的课程,看了课程的目录,真是如获至宝。现在也跟着课程更新学完了一半的内容,收获颇多,老师对不同架构风格的阐释,让我可以从全局性的视角来理解分布式架构的发展历史、来龙去脉,了解各种架构技术的时代背景和探索过程,从而让我能去深入理解架构设计的本质。
而且除此之外,课程里的很多内容都有既高屋建瓴、又深入浅出的特点,就算是对架构知识的积累不够多的人,都可以做到不紧不慢地跟上老师的脚步。所以,我也想来谈谈这门课程最吸引我的三个原因。
自成体系
分布式架构内容太多、太复杂,让人望而生畏,无从下手?不要怕,这门课程的知识内容真的非常全面,它并没有像现在市面上的一些介绍分布式的书籍资料,只是着眼于一个很小的分支,而是涵盖了分布式系统的方方面面,且自成体系,既有广度,又有深度。
在课程中,周老师已经给我们画好了学习地图,按照这个地图去探索分布式架构,就一定不会迷路,而且这个地图还能让我们对分布式架构的演化历程、如何解决分布式系统难题的高手思路,以及不同的技术方案都有什么优缺点、如果对各种技术做好取舍等,都有具体化、具象化的感知,我们能够清楚地知道自己所掌握的知识程度,也能以此查漏补缺,弥补认知上的不足。
授之以渔
周老师不仅在课程中表达了自己的观点,用自己的话把架构技术知识讲解得很透彻,而且在课程里针对很多理论概念都给出了超链接,把参考资料以及思考的过程展示给我们看。
其中包括很多专业的论文,老师会找到原始的出处,带我们去看第一手资料,从技术的诞生开始,把技术的来龙去脉讲得清清楚楚,有理有据。
我平时在网上看惯了二手、三手的资料,很多内容都是互相搬运,甚至可能是错的。而老师提供的原始论文以及高质量的文章,最能接近技术的本质,信息量极大,不仅教会了我们知识,还教会了我们学习的方法,既授之以鱼,又授之以渔。
独到见解
在学习课程的过程中,我常常惊叹于老师的知识面之广、对技术的理解之深。这么多的知识点,老师都能讲得驾轻就熟,把复杂的知识概念解释得通俗易懂。
有些内容我以前找了好多资料还是搞不懂其中的概念而老师一两节课就讲明白了对新人非常友好。举个简单的例子像是CAP定理、TCC、SAGA等概念我一直都处于懵懵懂懂的状态而且时间一长就会觉得这都是些高深难懂的理论大厂专用不是我等能学会的严重打击了我的自信心。结果老师在讲“分布式事务”这两节课的时候就从原理上解释得清清楚楚我一看就懂了。
还有,老师很多时候并不会囿于“术”的层面去讲解知识点,还会从“道”的层面帮我们拓展技术视野。比如我们很熟悉的奥卡姆剃刀原则:如无必要,勿增实体。这不仅体现在架构设计上,对于我们的生活来说,也是一样的道理,只有适合自己的才是最好的。可以说,周老师的课程真正做到了“道”与“术”的平衡,为我们揭开了软件架构设计的神秘面纱。
总而言之,在这门课程中,我找到了学习分布式系统的绝好资料和学习路径,手拿老师的课程地图,和同学们一起脚踏实地地学习,做到心中有数,不会迷路、不孤单。
我对于学习方法的思考
我猜,一直跟随学习课程的同学,应该对我比较眼熟,因为几乎每节课学完后,我都会来留言,不管是说说对这节课的思考也好,还是只简单地刷一下存在感也好,我都一直在坚持做这件事。
其实我这么做是有原因的。
不知道你有没有类似的感受,以前在学习其他专栏课程的时候,明明学得很认真、很仔细,每节课的知识点我都觉得理解了、学明白了,但总是过几天就会忘掉,再久一点儿就只剩一个很模糊的印象了。
后来我发现这里存在一个问题,就是从学校到职场,我们一直都在学习各种新知识、新技术,但貌似具体的学习方法却从没有系统地学习过。
而直到我接触了学习金字塔,才终于知道这是怎么回事了。
原来,人的学习分为了被动学习和主动学习两个层次。
在单纯地听讲时人们只能记住5%的内容阅读只能记住10%的内容,这些都是在低效地、被动地学习,所以怪不得我听过看过的内容忘得这么快。而主动地、高效地学习,是要去思考、总结和归纳,并且要找人讨论、实践,然后以教为学。
所以也就是说,我们一定要有输出,用输出来倒逼输入。这正如同周老师在开篇词里所说的:把自己“认为掌握了的”知识给叙述出来,能够写得条理清晰,讲得理直气壮;能够让别人听得明白,释去心中疑惑;能够把自己的观点交给别人审视,乃至质疑。在这个过程之中,就会挖掘出很多潜藏在“已知”背后的“未知”。
那么具体我们要如何学会主动学习呢?这里我想啰嗦一下非常著名的费曼学习法。简单来说分为四步:
选择一个你要了解的概念或知识点;
试着把它讲给10岁的小孩子听
如果卡壳了,或者说不明白,就重新去查资料学习;
确认自己理解清楚了,再用最简洁的语言或者比喻重新讲一遍。
因此按照费曼学习法我在开始学习课程之前就立了个Flag每篇文章下面都要写留言而且最好能用通俗的语言或比喻表达出来。
不得不说,写留言真的很有效果,一些看似已经明白的概念,如果用自己的话再说一次,就会发现其中的很多细节我其实根本没搞懂,我要不停地查资料,把不懂的地方搞明白,然后再试着联系生活场景来打比方,用自己的话讲出来。有时候一条一两百字的留言,我甚至要写好几个小时。
第26讲中关于我对Cookie-Session和JWT两种凭证实现方案的理解-
Cookie-Session相当于坐飞机托运了行李只要带着登机牌就行了但是一旦托运了行李行李就和飞机绑定了你就不能随意换航班了JWT相当于坐飞机拎着行李到处跑每次过安检还要打开行李箱检查而且箱子太小也带不了多少东西但优点是可以随意换航班行李都在自己身边。
而且留言还有一个好处,就是我可以通过其他同学的提问,以及与同学们的交流讨论,再次巩固学到的知识点,让不同的思想碰撞,从而更接近学习的本质;更重要的也是能通过周老师的回复和指点,可以进一步拓展认知,收获应用、实践的经验。
周老师这样的大神,我在平时是绝无可能碰到的,能和老师近距离地交流,是非常难得的机会,要好好珍惜。
写在最后
说起来我也算是周老师的老读者了《深入理解Java虚拟机》读完之后收获非常大对Java虚拟机有了全面的认识老师总能抓住事物的本质把问题说得明明白白这门课程也保持了老师一贯的高品质。
周老师在课程里提到过技术人的成长捷径,就是“做技术不仅要去看、去读、去想、去用,更要去写、去说”,这让我印象非常深刻。
所以在最后,我还想说的是,我们一定要保持成长型的思维模式,也就是相信自己只要努力就可以做得更好。我一直认为,成功主要来源于尽自己最大的努力做事情,来源于主动学习和自我提高,不管我们的起点有多低,受到过多少挫折,只要我们有成长型思维,努力奋斗、不怕失败,保持终身学习、不断成长,就能在如今技术日新月异的时代,不被淘汰、不惧未来。
我都可以做到,相信你一定能行!
好了,我的分享就到这里啦,不知道你是怎么学习这门课程的?有没有什么独特的学习方法和心路历程呢?欢迎你在留言区分享,我们一起交流,相互鼓励,共同进步!