从实战中来,到实战中去——Elasticsearch 技能更快提升方法论
2011年前后,和几个同学一起去游泳馆游泳,在去的路上,我问同学A:“你会游泳吗?”,同学A滑稽的回了一句:“我的理论知识还是很扎实的”,这不经意的一句话,引起我们几个同学的哄堂大笑。
当然我们也知道这是同学 A 开玩笑的一句话,但这则近 10 年前的小故事我依然时常想起,并讲给过 N 多人听。
游泳是实践远大于理论的一项技能。只有理论站在岸上学一年、学十年也是掌握不了游泳技能的。
最快的学习方式就是下水,在水里扑腾、在水里学、在水里练,反复实践、刻意练习,并且逐步的由浅水区慢慢过渡到深水区,直到游刃有余、直到“如鱼得水”。
既然理论貌似没有那么重要,只实践行不行?这个问题又会引发进一步的思考,想想极端的场景,只实践不结合理论的例子——60年代的大跃进。
是不是想想也很可怕,全国一盘棋实践啊——“大炼钢铁”,没有理论做指导,最终偏离了现实,后来的结果大家也都通过历史书学过了,那叫一个惨啊!
前面的两个思考引申到学习 Elasticsearch 我认为也是非常契合的。
由于长期活跃于 Elasticsearch 中文社区、自己也有数千人的群、圈子,几乎隔几天都会被问到如下几个问题:
如何学习 Elasticsearch / ELK? 如何快速的学习 Elasticsearch? 有没有国内的 Elasticsearch 书籍推荐? 怎么快速建立 Elasticsearch 知识体系,每次都是现用现查...... ES 基础操作学完了,想学进阶内容,比如调优,您有什么建议吗? 我想请教搜索是怎么学习的? 学习 ES 没有动力,整天 CRUD,如何破局? 现在外包,想通过习得 Elastic 技能逃离外包公司,有没有快速学习的方法?
类似的问题,我自己也都遇到过,我也是一步步走过来的,确切的说,我当前也还是属于学习的阶段。
国内几乎所有 Elastic 书籍我都看了一遍
所以接下来的内容,没有趾高气昂的说教、没有醍醐灌顶的解答,没有一学就会的速成方法论, 只有扎扎实实的一个过来人的避坑指南。
想看了一篇文章就能掌握技能,对不起,本文不适合你,请绕行。 想买了一门课就能掌握知识体系,对不起,我们不欢迎你,我们不提倡速成,请绕行。 想不实践只看看书就能掌握技能,对不起,那是纸上谈兵,我们交不来,也绝不会这么干,请绕行。 想只看中文文档、中文书籍就期望掌握开源技能,对不起,我们认为英语是基础的必备的技能,如果你不认可,请绕行。
关于学习 Elasticsearch 的方法论,我每隔1-2年都会写一篇文章:
看了一下原来的方法依然凑效,随着时间的累积,又有了新的认知(注意新的认知可能会复用之前提及的理论,因为很重要,我会反复用、反复讲),总结如下:
1、学会复盘与反思
实际项目或产品开发、运维遇到的问题通过搜索或者社区提问基本都能找到解决答案。
一个基础认知——我们的平时实战中遇到的基础问题,别人早已经遇到过了,甚至都已经给出了完整的解决方案。
只不过问题可能散落在:国内外技术社区、QQ群、微信群、Stackoverflow、论坛、博客、公众号文章等。
当遇到自己不会,而别人会且能很快给出解决方案的问题,我都会拿如下这种图(图来自:《霸王别姬》电影)警示自己:
所谓的复盘就是:
他们怎么知道解决方案的?
他们知道解决方案的过程做了哪些基础操作?学习了哪些内容?受了哪些常人不知道的“苦”?
我什么时候也能快速知道解决方案?
注意一个细节,这是万能模板,不信你看:
他们怎么考上985、考上研究生、考上博士的?
得挨多少“打“?
我什么时候才能考上985、考上研究生、考上博士呢?
再来,
他们怎么通过 Elastic 认证考试的?
得挨多少“打”?
我什么时间才能通过 Elastic 认证考试?
还有,
他们怎么年薪百万、入职大厂、怎么创业成功的?
得爱多少“打“?
我什么时候才能年薪百万、入职大厂、创业成功呢?
事事有复盘,复盘的过程就是反思自己与别人差距的过程,找到自己的技术“软肋”、技术短板,最终事事有着落,想不提升都很难。
互联网的环境要用起来,别局限在自己的公司,一定要视野放眼全国甚至全球,这很重要!
2、向上学、向下帮
这是社群管理达人、樊登读书首席增长顾问“彪悍一只猫”经常说的一句话。跨界一下,对于 Elastic 学习也一样适用。
向上学:向Elastic原厂、一线大厂大佬学习实战经验;
向下帮:以自有能力尽可能的去社区、去微信群、QQ群帮助后来需要帮助的人。
逐步形成闭环,比闷头摸索效率不知提升多少倍!
我这里一直强调的一个概念是“交是更好的学”(认知来自:刘未鹏《暗时间》),”讲一遍有一遍的收获”。
上面这个学习金字塔图,也能很好的说明“教是更好的学”,因为只有向其他人教授以及对所学内容立即运用(也就是实战),24小时后的平均保持率会最高,接近90%。
好多人反馈不好理解,我进一步拿自己的例子解读一下:
1998年前后,读初中学地理的时候,有个知识点:“加尔各答市是印度的麻纺织业中心”。
我当时一遍一遍的背诵,就是记不住。前面的同学实在看不下去了,别记了,不就“加 麻”两个字吗?
我当时一下记住了,没想到,这段记忆能延续到今天,22年后,我还是依然记得“加 麻”。
注意:22 年啊!
当时交这门课的老师我已经不记得是谁了.....
当时提醒我“加 麻”记忆的同学我也忘记叫什么了,只记得个头不高......
当时学过的世界地理几乎全部忘掉了......
但是,这个知识点,我始终没有忘记,并且每次试图想忘记,因为对于我来说,这个知识点的确没有任何用途,但是,就是忘不掉。
我一度认为很神奇,我把他类比为“肌肉记忆”——类似学了自行车,20年不骑,拿过来还会骑。
这里强调的不是简单的地理知识点这个概念,而是:有人给你讲过的知识、甚至讲过方法的知识,探讨过的技术方案,会远远的比自己摸索记忆的更清楚,并且不容易忘。
当然,同样的道理,你给别人讲过的知识、讨论过的问题或者方案,你自己也会记忆的更牢固。
并且,更难能可贵的是,讲解的遍数越多,记忆的越牢固。
这也是为什么很多企业家脱稿演讲、很多新东方名师全程脱稿讲课的原因,因为:他们讲的多,练的多,形成了肌肉记忆。
3、万种方法、死磕最灵
一万小时理论——人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。只要经过1万小时的训练,任何人都能从平凡变成超凡。
刻意练习——只关注一件事:如何成为所在行业的高手。高手和普通人的区别在于“套路”的多少。“套路”的产生需要有目的的练习,有目的的练习具有定义明确的特定目标,有目的的练习需要走出舒适区,熟能生巧。
我把死磕引申等价为:一万小时理论 + 刻意练习。
新手终能成为专家的进阶路径如下:
大家知道,我自己的所有专栏文章都与死磕相关:
死磕 Elasticsearch 死磕 Elastic 认证 死磕 Elastic 面试 ......
死磕的本质是:不服!
关于 Elastic 的文章总有人会写,关于 Elastic 专栏总有人会写,关于 Elastic 公众号总有人要做,总会有一个行业 TOP 1,为什么不是我?
这么一想,几乎找不到理由,这是时代赋予的、这是积累的必然。
曾国藩的“结硬寨,打呆仗”是死磕的典范。
无论和谁打仗,去了城池外先勘察地形,选好扎营地,挖壕沟、扎花篱,把自己与敌方隔离开来,耗也得把对方耗死。
屡败屡战,最终重创太平天国,大获成功。甚至毫不夸张的讲,没有曾国藩,晚清可能得早灭亡几十年。
再举个真实案例:
最近技术圈子都在转载的酷派集团的表彰通报——酷派技术工程师虎跃向 Linux 社区提交的数条高质量补丁,得到了 Linux 之父 Linus To人valds 的认可,给公司酷派带来了无上光荣,让 Linux 代码里面写上了酷派的名字。
注意一个细节,虎跃2008年毕业就开始 Linux开发,2013年接触 Linux 开源社区,这是至少 7 年 甚至是 12年 + 的积累。
某种意义上说,这也是“死磕精神”和积累的结果。
PS:内核工程师每天和 Linux 最底层打交道,远远比上层开发难度更大,我刚入职的时候,旁边工位就是一位 Linux 内核工程师,每天都见他眼圈发黑,但是敲起代码和讨论起问题来炯炯有神!
再再重复举个例子,得到APP之前,罗胖主要借助:罗辑思维的视频以及微信公众号做知识推广。
同样是做公众号的,他和别人不一样的地方在于:每天早上发一段60s的语音,听完语音的最后指引关键字,输入后才能看到文章。每天60s,不长不短,截止到2020年12月5日,已经坚持了:2901天(7.95年)。
这引起了我的巨大的好奇。暂且放下“鸡汤”的思维角度,我的几个思考如下:
为什么他能坚持? 他为什么要坚持? 是什么让他坚持?
听的多了,看的多了,其实就一句话:“他想成事”。
成事的方法有很多种,但都没有捷径,无疑:死磕是最稳健、最扎实、最快捷的路径。
几年下来,看到得到 APP 的发展,得到 APP 已经成为别人眼里的:“看不见、看不起、看不懂、追不上”的产品。
这就是死磕的力量——“今天你对我爱答不理,明天我让你高攀不起!”。
上面的跨界理论同样可以应用到死磕 Elastic知识点、用死磕的方法建立 Elastic技术体系、建立大数据技术栈的技术体系。
没有任何速成的方法,就一点点死磕官方文档、死磕源码......反而,这最笨的方法,时间越长、价值越大!
4、以考代练、更快进阶
死磕的原理说的多了,回归到 Elastic 一样还得是:理论和实践结合。
跟着项目或产品实战、遇到问题查原理再反哺项目或产品,就是很好的方式。
而在“算法投喂”盛行的今天,大家的自制力普遍没有那么强了,至少没有高考那么强了,这是不争的大实话。
建立 Elasticsearch 知识体系,“死磕”、刻意练习依然是法宝,而”以考代练”则是法宝中的捷径。
Elastic 认证对于建立 Elasticsearch 知识体系非常有用。Elastic 认证题目全部是实战题目,考试不通过的唯一原因就是:不熟!
我发布过 Elastic 认证的文章比较多了,老读者可能会“腻“,下面是死磕 Elasticsearch 知识星球内其他已通过的 Elastic 认证工程师现身说法:
IBM 70后资深架构师周钰大哥回复:
第一是认识上的演进。如同在心得贴里说的,之前对 ES 是只见树木不见森林的,或者叫学得都是“术”,但不是“道“。通过1个多月的备考,后来重新回来看,会有一种居高临下豁然开朗的感觉,理解上会通透了很多,能站在一个更体系化的角度去思考和规划 ES ,这对架构师来说是很必要的思维方式。
第二是修炼。其实IT证书我手上大大小小 10 几张总是有的,大到讲宏观架构的 TOGAF ,小到某个具体技能(如 Azure, LInux)的认证。但从未有像ES那样让我几乎是不顾一切的学习。考其他的证书似乎很轻松,但 ES认证我是真的花了 1 个多月的时间,从来没有那么高强度的去浏览和 ES 有关的任何文章。这种孤注一掷,不管不顾的态度,大概网络上现在算是叫“心流”。诚心一念做完一个事情,回过头来看,会觉得自己在思想境界上也有了 一个提升。这对工作自信心和个人修为都是有好处的。
ES的认证只是起点。我是做运维交付的,我们使用 ES 的场景非常多,简单如一个日志系统监控,稍微复杂的如我在做的每天大概上亿级日志存取的项目,甚至更更复杂的是我现在同时在做的一个数据平台的集成,和基于数据湖的智能运维分析平台。这些都离不开ES。掌握了 ES 对于我的工作都是如虎添翼的。另外,就算是做可视化报表也比过去顺溜了很多,因为对聚合的理解更深刻了。
其他认证工程师回复(部分)
......
......
......
小结
从实战中来,到实战中去——Elasticsearch 技能/学习最快的方式!当然,没有万能的普适的方法,更没有速成的方法,只有适合自己的方法。
大数据领域的所有开源技术栈都是实战为主的,理论与实践(实战)结合,我们才能学的更深、走的更远。
2021年1月1日起,知识星球将上浮年费,望周知。