7000 字长文复盘 Elasticsearch 学习辛路历程
和腾讯的老师聊天,期间提到了写博客、公众号发文,老师的一句话 “不过得有持续的内容才行”,振聋发聩!让我思考良久......
因为有太多的博主写着写着就各种原因断更了,“可持续” 的确是写作者的一路向前走、所向披靡的唯一的法宝。
研究生阶段搞 C++,机缘巧合读了《我是一只 IT 小小鸟》(豆瓣评分:7.8 分),关注到书中作者之一的 “C++ 的罗浮宫” 博主刘未鹏老师,后面自然读了他的长销书《暗时间》。这本书我至少读了两遍之上,对当时的我冲击很大,现在读当时做的读书笔记,仍然感觉“字字珠玑”,值得慢速、逐字逐句读。
一方面:正如《暗时间》书的内容介绍部分提及:“在这 8 年里,作者平均每个月写 1 篇博客或更少,但从未停止。”,我当时的想法是:竟然有人能做到这么长久的自律和勤奋。
另一方面:书中的很多警句我现在都记忆犹新,比如:“书写是为了更好的思考”、比如:“如果一件事情你不能讲清楚,十有八九你还没有完全理解”。
书中有一章标题是 “为什么你从现在开始就应该写博客” 提及——“用博客的形式来记录下你有价值的思考,会带来很多好处,却没有任何明显的坏处。”
我认为就是我在 2012 年前后定下写博客的思想源头。近 10 年过去了,我非常庆幸当时的决定,同时又感觉莫名的 “诚惶诚恐” 般的后怕——如果十年前不做这个决定,现在的我在何方?想想都很后怕,一阵 “冷颤” 从后背抽搐到前胸,不敢多去想......
最初写博客可能和很多读者一样,没的写,所以转载居多,而后转载 + 评论或者读书笔记,最后才一步步走到原创的路子上。
看一下第一篇原创拙作,可以用 “不忍直视、惨不忍睹” 来形容。
第一篇原创后,博客就没有断,至少每月都有产出,以学生时代参加比赛(百度之星、中兴捧月)、准备面试(C/C++、数据结构、算法、设计模式)为主,然后就是:工作过程中遇到问题的反思和总结。
2015、2016 年前后,偶然机会项目组需要调研:Mysql 与 Elasticsearch 实时同步问题,给出的调研问题:如何支持增、删、改、查的同步。其实现在看来就是阿里开源的 canel 基于 binlog 做的事情,当时 canel 还不支持 Elasticsearch。我调研了大量 logstash 的文章,实现了:全量 + 增量同步,发现了数据量大后可能的内存问题(早期版本 logstash 内存问题比较多)。
2016 年写了浏览量近 10 万 +《深入详解 Elasticsearch》专栏。2016 年的年度总结中我是这么写的:” 对于 Elasticsearch 的迭代版本的确变化很快,从最早的 1.X,2.X.Y,到现在稳定的 5.X,国内外研究和使用都处于起步阶段。'当一个东西有很大应用价值,并且互联网上仅有有限较旧的资料时,这就是机会所在'。 我基于 ES2.3.4 版本,发现 Mysql 和 ES 实时同步的确有很多疑点和不确定点,且 github, stackoverflow, google 搜索到的都是不成体系的资料,促使我形成专栏。”
现在看来当时就是发现了:“Elasticsearch + 博客” 这么一个机会。
如果从 2016 年算起,到 2021 年已经 5 年 + 时间,算作:5 年(其实已远大于 5 年)。每年工作去掉零头,算作 300 天(其实不止 300 天)。每天工作和 Elasticsearch 相关算作:7 个小时(一天工作远不止 7 小时,通勤路上我也是刷 Elastic 社区、刷 Elastic 社群)。
那么总的时间是多少呢?算一下便知:5 * 300 * 7 = 10500 小时。其实:会远超过 10000 小时。
畅销书《异类》中提及的一万小时定律——“人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1 万小时的锤炼是任何人从平凡变成世界级大师的必要条件。”
其实,过了 10000 小时,我深有感触:自己不过是刚入门,离所谓 “大师” 还有十万八年里要走,保守估计,还得练习 10 年 + 以上才敢说进阶。
通勤路途辛苦,我也不喜欢开车,培养了三大爱好:“听相声 / 书 / 付费教程、看文章 / 论坛、冥想 / 睡觉”。有深度的技术文不适合颠簸的公车上读,技术的深度和睡觉的速度成正相关,越深奥的文章越容易犯困。
2017 年那会迷上《时间的朋友》作者李笑来的公众号文章(PS:我是新东方文化的粉丝,个人偶像之一就是俞敏洪,俞老师早些年的几乎所有随笔我都读过,我人生第一次去北京只仅参观了:天安门、清华北大、新东方总部),笑来老师早期文章 “七年就是一辈子” 系列都是绝佳的实战 + 深思后的文章,文章逻辑缜密、严谨,耐人寻味和深思。比如:“避免三个大坑:莫名其妙凑热闹、心急火燎随大流、为别人操碎了心”,比如:“注意力 > 时间 > 金钱”,很多观点都是相见恨晚,我感触很深并深信 “人至践则无敌” 的行动纲领,所以也及早的付出了行动。
3.1 行动之一:通勤路上刷 Elastic 中文社区。
学习别人的问题并尝试回复问题,这个习惯当时坚持了近 3 年,现在频率稍微变低,但还是会刷。
“好处” 之一:一不小心 Elastic 中文社区积分排名全国 Top 5。
“好处” 之二:极大的扩展了技术交流圈。
我第一时间响应 Elastic 日报编辑招聘要求,“扩编” 成为了 Elastic 日报责任编辑,负责周五日报搜集、发布工作。
注意:日报编辑是公益行为,没有任何酬劳的。大家伙乐此不疲,一天一篇,今天我发的第 1264 篇。之前倒没觉得有什么,现在看来,对于普通 Elastic 学习者的我,相当于坐上了直达电梯,和 Elastic 中国第一人 medcl 大神、和 Elastic 认证中国第一人魏彬老师等 10 几位大厂大佬在一个群里。
后面还结缘认识了:极客时间 Elasticsearch 课作者阮一鸣老师,有过深度的交流,我集结成了短文一篇。更为好玩和有趣的是:这篇文章还得到阮一鸣老师父母的微信公众号的首次赞赏。
我将 Medcl 大神和 Elastic 社区顶级大神 Wood 大叔的音频专访第一时间做成了图文版,得到 wood 大叔的微信称赞和授权后发布。
2019 年自费去北京参加了 Elastic 开发者大会,面基了:Medcl、魏彬老师、Elastic 捷哥、Elastic 中国区前总裁王总、张超老师、日报编辑团队小伙伴等。
期间还获得过:阿里云、腾讯云、Elastic 官方等一线互联网厂商的面试邀约。
以上的所谓的 “好处”,或许叫“好处” 都显得功利一些,都非有意而为,在我看来都是 “水到渠成” 的事情。
3.2 行动之二就是:写公众号。
我印象很深,那是一个夜晚,风儿没有那么缠绵(~~ 突然整出了歌词 ~~),我躺在躺椅上,给老婆说出了自己思考很久的决定:“我准备做公众号了”,当时畅想了很多对美好未来的憧憬,真的是兴奋的是一晚上没有睡好。这是一个躺床就能秒睡、怎么叫都叫不醒的中年人为数不多又难得可贵的 “失眠的一晚”。
定下写公众号之前注册过两个公众号,都是不知道写什么而无疾而终。而当晚执意定下的这个就是大家现在看到的 “铭毅天下 Elasticsearch” 公众号,最主要的是当时定下的基调就是:写 Elasticsearch 相关的技术文为主,写读书笔记、个人总结为辅,该定调才决定了公众号能走到今天。
公众号红海泛滥的当下,能活下来就相当不容易,得益于 rochy 大佬的相关优化建议,目前微信搜索 “Elasticsearch”,铭毅天下公众号排第一名。
2018 年前后,由于 elastic.blog.csdn.net 博客 + 铭毅天下公众号,逐步积累了 2000 人 + 的 Elasticsearch 技术交流 QQ 群,我自己也加了近 10 个 Elasticsearch 技术交流群。
刷社区和刷 QQ 技术群,给我的第一直观感觉就是:隔几天都会有重复的问题出现,很多问题我都能第一时间找到社区文章出处、官方地址或者直接给出答案。
偶然的原因,在 “新生大学” 的交流群里,有看到发知识星球相关推广的文章,才萌生了让技术问题进一步落地、组建一个更纯粹的技术交流社群的想法。
彼时的我初出茅庐、锋芒毕露,以为有了一定的门槛,不大会有人加入,就完全是试水的心态。但是,没有想到的是,星球也意外的、坚强的存活下来了,且内部圈子里口碑还不错。
4.1 为了让 Elastic 知识更好的落地,我做了 N 多尝试
- 星球名称:死磕 Elasticsearch
死磕的内涵:刻意练习 + 10000 小时,《异类》+《刻意练习》+《心流》三本书的思想整合。
星球成员:近 1200 人
星球运营周期:3.3 年 +
星球 slogo:更短时间更快习得更多干货!
星球嘉宾:中国最强 Elasticsearch 嘉宾阵容(魏彬老师、阮一鸣老师、张超老师、杨振涛老师、阿里云、腾讯云、IBM 等一线互联网大厂大佬)
星球成就:51 位球友通过 Elasticsearch (ECE)认证、2 位球友通过 Kibana(ECA)认证,占据中国通过总人数的一半 +。
星球资料:《Elasticsearch 最少必要知识》电子书已集结成册,《Elasticsearch 最少必要知识》全套视频陆续更新中,预计:今年完结,每月邀请一位嘉宾或者星主自己视频分享一次(已坚持 5 个月 +),教程 + 视频无限次回看。基本保障技术问题有问有答,历史问题快捷搜索。
星球特色:刻意练习落地实施——打卡学习。
4.2 做知识星球心得体会
4.2.1 “蚕食” 式的学习
这个点,我想了一整天.....
我老家住在农村,很自豪的是我是土生土长的农村孩子。小时候家里就养蚕。第一次给蚕喂桑叶的场景让我记忆犹新:“拿了一堆桑叶相对均匀的撒给各个养蚕的大托盘里(蚕的栖息地),我心想,这总够吃一阵了吧?‘’
蚕个头不大,嘴巴就更小一些,甚至你得把它托在手里才能看到他的 “小嘴”。
但是,其实真过不了多久,整个单片桑叶甚至整个托盘的桑叶会被吃个精光。幼小的心灵的我颇感震撼!再放眼看整个蚕房,“嗤嗤嗤” 的声音和吃剩的桑叶的骨架,着实相当壮观!
“蚕食” 多用在:“比喻如蚕吃桑叶那样一点一点地吃掉,比喻逐步侵占。”
我突然想到:比喻学习也很贴切。什么意思呢?
如果把 Elasticsearch 甚至搜索引擎当做美味的 “桑叶”(N 多片)的话。
作为星主的我和大家一样,无非就是一个小蚕,可能我是相对活跃、“窜动的厉害” 的小蚕,如果再加一个特点就是:头大、脸皮厚。
如果单靠一个小蚕吃掉所有桑叶,的确会耗时很久。
但是,N 多小蚕一起,一点点 “蚕食” 桑叶,会有意想不到的效果。
映射到 Elasticsearch 学习是一样的道理,知识点就像 N 多片桑叶,如果一个人去啃,很可能会 “迷失”、甚至中途想放弃。
但是,如果有来自全国、甚至全球(球友有来自:美国硅谷、加拿大、中国台湾)的近千家互联网公司的球友,一起在不同的方向 “蚕食” 桑叶,并且成果一定程度上是共享的。一起去攻克难题、交流分享,对大家来说是互利共赢,每个人都会得到快速的提升。
4.2.2 持续刻意练习
《异类》中的 10000 小时定律毕竟是相对不那么严谨,刻意练习是接地气的正统学习方法。
《刻意练习》中强调的 “3F” 原则是刻意练习的三个核心准则。
- 原则 1:Focus(保持专注)
保持对一件事情的专注力,是做好练习的前提条件。这点,我们一直是坚守的,近 99% 的内存都是围绕星球主题:Elasticsearch 展开的。
包含但不限于:Elasticsearch 架构选型、方案选型、技术问题交流、实战问题解答、Elastic 工作推荐、求职心得交流等。
科学作家万维钢老师说:“心流,可以说是刻意练习的一个结果”,我认为刻意练习的最高境界是 “心流”,这也是我们所憧憬的状态。
- 原则 2:Feedback(注重反馈,收集信息)
对比一个人学习,或者几个人在公司内部交流学习,会很闭塞,容易出现的情况——瓶颈问题。受限于:个人能力和架构师能力。如果仅你一个人研究 Elasticsearch,你就是公司的瓶颈;如果一个小团队研究 Elasticsearch,小团队就是公司的瓶颈,问题若团队解决不了,一般就会搁浅了。
其实,放眼全国或者全球,很多内部解决不了的问题,很可能别人早已经解决,早已经有靠谱的方案,不过这些方案可能没有及时公开到互联网。知识星球给这种点对点、点对多点的知识获取提供了更多可能,架起了知识桥梁,填补了搜索引擎搜不到的空白。
我会不定期的归拢知识星球、星球微信群里的信息,把大家常问的问题形成 “错题本”,存档到星球的“错题本” 模块,让更多人获益、相同问题不犯错,少走弯路。
同时,知识星球 + 微信群相辅相成,一方面:知识星球用于知识的沉淀、更纯粹,永久存储,避免出现类似:QQ 群、微信群找不到聊天记录的情况。另一方面:相对零散琐碎的即时交流,微信群更合适。同时,我还会将微信群里有价值的信息(聊天截图、知识点、发散技术点及价值链接)搬运到知识星球,以便永久归档,日积月累,形成知识宝藏。
- 原则 3:Fix it(纠正错误,并且进行修改)
同行交流尤其数百、上千同行的交流,开放互通的交流氛围,是很容易扫清知识盲区的,如果:别人提到的点、给出的链接,我们不知道。
一般第一反应:“他是怎么知道的?他研究了哪些链接,读过哪些文档?看过哪些源码?我怎么我没有找到?” 这些反思,都利于我们及时纠偏、纠错,及早发现未知、迎头赶上。
4.2.3 机会把握
2019 年参加 Elasticsearch 大会,主席台上 Medcl 宣布了中国只通过 21 位 认证工程师。我当晚的总结是这么写的:“很震撼、很稀缺!思考:从经济学角度,稀缺就意味着贵;同时,稀缺也意味着机会!感叹难度大的同时,另一个角度看:我们努力都有了方向。”
我能做的就是:2020 年 2 月 5 日拿下 Elastic 认证,并分享经验、逐步形成《最少必要知识手册》,截止 2021-06-19,我已带领 51 位球友拿下认证。
这是非常细分领域的一个非常小、甚至很多人不知道、不 care 领域的尝试,但是很成功,这也增强了我坚持下去的动力!
只要是机会就会有人看到,但我会选择抢先起跑,用强大的执行力和毅力,做到头部!
关于机会,我的一点不成熟思考如下:
当大家都在看公众号文章的时候,写公众号的就有机会;
当大家都在写公众号文章的时候,持续写的就会有机会;
当大家都在持续更新的时候,用户思维 + 定位精准 + 立意明确 + 持续更新就会有机会;
当大家都在刷视频的时候,做视频就会有机会;
当大家都在做视频的时候,持续做视频就会有机会;
当大家都在持续做视频的时候,用户思维 + 定位精准 + 立意明确 + 持续更新视频就会有更新。
当大家都在做星球的时候,做好星球的管理、形成自己的风格和调性、形成社群良性互动和沟通、给球友提供干货、节省球友时间、做到有问必答、有求必应、提升服务意识的星球就会有机会。
4.2.4 全量思维 + 增量思维
回归到 Elasticsearch 的学习,本质是:算法 + 搜索引擎原理 + Lucene 原理 + Elasticsearch 原理 + 源码的学习、积累。
全量思维是什么意思呢?
比如:官方文档的全量、比如书籍的全量。
通过 Elastic 认证考试,必然会涉猎几乎全量的官方文档以及细节内容,这点毋庸置疑。
这个过程,对于夯实基础和认知有非常大的帮助。
有的读者说,英文的文档,我不喜欢看。那么全量的中文书籍是推荐大家学习的。
这时候,读者可能惊讶:“不会吧?”,其实看得多了,就会有筛选,正如:刘未鹏老师提倡的 “只看好书”。
我是兴趣爱好的角度,会买全量的书(如下截图),单本书我会看:作者如何构思、如何将实战、原理串在一起。
多本书对同一知识点,我会串着看,看大家对同一个知识点的解读,谁更深入、谁讲的更透,如何讲的更透。
全量思维:不见得是逐字逐句的全部读完,而是让我能快速对比,识别出重点。
增量思维是什么呢?书本上没有的内容,官方文档没有的内容,甚至 Google、Stackoverflow 也搜不到的,就是需要增量习得的内容,在哪里学?
在 Elastic 社区、微信群、QQ 群、知识星球里面学习别的公司的业务场景、积累、总结。逐步形成增量思维。
全量备份 + 增量部分能保障我们的集群数据的高可用。
同样的,全量思维 + 增量思维时间长了肯定会形成一定的壁垒。
毕竟,这相当耗费精力,不是每个人都有那么多时间的。
4.3 关于星球良性增长的一点思考
4.3.1 多设身处地的多为大家着想
甚至说成:舍身触地都不过分。
舍身:舍弃自己的小我,成就大家的大我。
触地:接地气,不端着架着。
用户思维——从别人的场景、别人的问题学习、实践、反思、总结,不放过任何一个学习的机会。
4.3.2 互相成就
利他就是利己,星主多花了时间,就会节省 N 多人的时间。对此,星主是值得的、应该去做的。
星球促成了数个企业主招聘和球友的换工作需求,很多球友拿到 “阿里云、微软、滴滴、拼多多” 的 offer 就是非常好的印证。
星球联系 Elastic 官方组织了两次 Elastic 认证考试团购,累计 60 人 +,每人节省 500 元 + 人民币,也是互相成就的非常好的印证。
4.3.3 以身作则
星主起到带头大哥的作用,我自己带项目团队面临项目进度进展缓慢的时候,我一般都会说一句 “周末我会过来加班,大家根据自己的进度做好协调”,从未强制过团队成员加班。
当然,这不是内卷,这是作为项目负责人、团队负责人应该做的。就和带兵打仗一样,将领和军官就得身先士卒、一马当先,大喊 “跟我冲”,而不是躲在后面疾呼 “给我冲”。
4.3.4 少有人走的路
写博客拼到底拼的是坚持和毅力,我自己近几年的每篇博客平均耗时 6 小时左右,要经历:构思、框架、填充、排版、调优等过程。谁苦谁知道,都是累和泪。
而,运营星球更是非常耗时间的过程,我已亲眼目睹很多大厂大佬的星球的 “无疾而终”,方向都非常棒,什么原因呢?
唯一可能的原因就是:时间不够用、精力跟不上。再去深究的话,就是:有退路。
我既然选择了这条狭窄的路,就得去坚持下去,我和别人不一样,我已破釜沉舟,没有退路和回头路。
哪怕历尽艰辛、我只能会披荆斩棘、一路向前!最终形成自己的 “少有人走的路”。
我一直以来没有特殊的爱好,并因此深感惭愧和自责。当我偶然间看到字节老大张一鸣说:“自己不抽烟,不喝酒,不喜欢汽车,不打高尔夫,就喜欢做产品,看书,和有意思的人交流作者。” 才感觉没有什么自责的,这或许是企业家气质(哈哈)。
我唯一的运动项目:乒乓球,打的也不咋地。估计随意挑个广场舞大爷,也能打过我。后面我反思:关于乒乓球,我都是低水平勤奋,从来没有刻意练习过发球,更不用说练习 “变换发球” 了,只求一时赢球的快感和大比分落后又追赶后反超的刺激。
我在大学和读研唯一能和同学不一样的地方就是:我看了 N 多演讲 + 不少闲书,尤其偶像俞敏洪的演讲,应该是当时能找到的全量。这个东西当时不觉得有用,但是,10 几年过去了,这是我极大的心灵财富。至少遇到困境和选择的问题时候,我能克服、我能选对,即便我选不对,我也能走出属于自己的路。
Elasticearch 的确给了我刻意练习的机会,我用它锻炼我的心性、磨练我的意志力,非常不可思议又惊险刺激。研究的越久、实践的越久,越感觉自己懂得越少,不会的东西太多、太多,甚至感觉自己就是 “小学生”,很多问题等待去实践、去研究、去研读原理、去死磕源码,或许这就是成长吧!这个过程很苦,但很值,这让我笃信了:深耕一个领域,必然大有可为!
俞老师的 “潜心一技、做到极致” 是我和很多读者很喜欢的一句话。可以引申解读为两层含义:
一是:潜心。
要耐得住寂寞,要勇于坚持。
真如最近非常火的河南大学程民生教授的演讲金句:“成功的秘诀就是坚持不懈。成功有时候不需要精明,在浮躁的社会,沉着冷静就是胜利,稳重坚守就是成功。你跟着浮、你跟着躁,你就跟着成为泡沫了。”
一是:极致。
极致:就是精益求精。
正如百岁翻译泰斗许渊冲教授的百岁新年愿望里写的那样:“Good better best,Never let it rest,Till good is better,And better best。(意为:好上加好,精益求精;不到绝顶,永远不停)”。
刻意练习 10000 小时只是刚起步,后面还有很长的路要走,我愿和大家同行!
推荐:
如何系统的学习 Elasticsearch ?
全网首发!《 Elasticsearch 最少必要知识教程 V1.0 》低调发布
从实战中来,到实战中去——Elasticsearch 技能更快提升方法论