<audio id="audio" title="用户故事 | 黄云：行百里者半九十" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/38/d8/38192d8d30c3aa9fbe22fda2551139d8.mp3"></audio>

你好，我是黄云，目前是一名后端开发工程师，坐标苏州，已经工作三载有余了。在“Kafka核心技术与实战”专栏刚刚上线的时候，我就第一时间订阅了。在学习专栏的几个月时间里，我有许多心得体会，想要跟你分享一下。

## 为什么要学习“Kafka核心技术与实战”专栏？

众所周知，在当今时代，“大数据”已经成为了一个家喻户晓的概念。动辄GB级、TB级，甚至是PB级的大数据，都需要服务器在短时间内进行处理。如何充分利用每台服务器的性能，削峰填谷，就成为了数据处理的关键。Kafka作为一种主流的消息队列工具，已经被很多大公司使用。掌握Kafka，成为了大数据时代必不可少的专项技能。

我们公司目前也在用Kafka对接实时流量数据，数据量约20GB/天。作为一名开发工程师，我必须要尽快掌握Kafka的核心技术，修炼专项技能，才能使其更好地为我所用。一直以来，在工作之余，我都会主动地搜集Kafka的相关资料，看各位大佬的分享。但是，那些零散的碎片拼凑在一起，却始终很难形成一个系统的知识体系，这也是一直让我很头疼的事情。

## “道”与“术”的平衡

作为一名程序员，我和很多人都一样，看到好的东西就想动手实践。在刚刚了解到Kafka的强大功能之后，我就迫不及待地参照Kafka官网的教程，着手搭建Kafka的服务器。除此之外，我还曾小试牛刀，在1万条/s的实时环境对接中，使用了Kafka作为消息队列。

但是，在实际使用过程中，我发现了一个严重的问题，那就是，**我只知道如何去用，但不知道如何用好**。意识到这个问题后，我赶紧查看了官网以及很多主流网站的文章。官网上将几百个参数一一列出，并注明含义，其他资料则普遍重理论，轻实践。总体来看，这些内容都将“道”放在了第一位，却完全忽略了“术”的实现。

说实话，我们程序员看到这些文章，其实是很恼火的。盯着满篇的原理，却完全不知道从何处下手，那就注定无法解决我的实际问题。

直到有一天，我无意中发现胡夕老师的专栏“Kafka核心技术与实战”在极客时间上线了，顿时有一种如获至宝的感觉。看完课程简介和开篇词之后，我觉得这就是我一直期待看到的课程，于是就立即订阅了。从此以后，每周二、四、六准时学习更新的文章，逐渐成为了我的习惯。

在学习过程中，我印象最深刻的是，胡夕老师在讲参数配置的时候，在第7讲和第8讲的标题中用了3个“最”字，即“最最最重要的集群参数配置”，并且在文章里分享了最重要、最核心的集群参数配置。看完这两讲之后，我一直以来持有的对于“Kafka配置优化过程中怎么有这么多参数”的怨念才得以消解。**不必贪多求全，只要掌握最核心的内容就可以了**。胡夕老师的专栏真正做到了“道”与“术”的平衡，慢慢地为我揭开了Kafka的神秘面纱。

## 我是怎么学习专栏的？

说实话，查看极客时间的专栏是一件十分愉悦的事情。每天清晨，正式开始工作前的20分钟，是我固定的学习专栏的时间。学习Kafka专栏时，注意力必须高度集中，因为里面干货非常多。如果只是粗浅阅读，不加思考，就会留下很多问题。

当我遇到困惑的时候，第一件事就是查看文章下面的评论。很多人的总结概括能力都非常强，能对信息进行二次加工和提炼，这些留言帮助我对文章内容进行了二次梳理。最重要的是，我经常在留言里看到和我一样的困惑，瞬间就有种找到同类的感觉，这也是一种很奇妙的体验。

胡夕老师回复也很及时，第一时间解决我们的疑惑。**今日疑，今日解，不积攒遗留问题**，也能让我更加高效地学习后面的内容。

在学习专栏时，我走过一些弯路，也在不断调整地自己的学习方法和习惯。在这个过程中，我吸取了一些经验，也有很多的感悟，想要跟你分享一下。

<li>
**多思考，多总结**。每次查看留言区评论的时候，我都会先自己思考一下问题的答案，等老师回复之后，我会对照着确认下答案。很多时候，我在留言区看其他人的总结，总觉得言简意赅，但是自己描述的话，就会发现自己完全没有这种抽象概括的能力。换句话说，就是**没有办法用自己的话描述出文章表达的含义，其实也就是没有真正地理解文章的内容**。所以，我就一直跟自己强调，要多总结，提升自己的概括能力。
</li>
<li>
**多动手实践，实践出真知**。专栏中有很多实践的知识，我每次发现可操作性比较强的内容时，就会自己在搭建的测试环境下进行实践，查看实践结果。这样一来，我就对课程的内容有了更好的理解与掌握。
</li>
<li>
**多回头看，不留疑惑**。我发现，专栏里的很多重点内容，我只读一遍的话，印象会不太深刻，但隔一段时间再去回顾，就会有很多新的认知和收获。有些章节满篇都是干货，一旦遇到不懂的术语，大脑就会本能地跳过。在意识到大脑的这个惯性动作之后，我再遇到不懂的问题时，就会主动花时间去查询相关资料，直到理解术语的含义。否则，一知半解地往下读，对后面的理解会有很大的影响。
</li>
<li>
**多记笔记**。对于一些我很感兴趣的课程内容，我会有针对性地进行记录。在记录时，我一般不会直接复制粘贴原文，而是用自己的话写出来。如果实在写不出来，就把原文摘抄一遍，这样也会加深理解。
</li>
<li>
**多提问**。针对一些自己实在无法理解的问题，我就让自己多提问、多留言。每次老师回答完我的问题，我都觉得非常开心，后续的学习劲头也会更高，这可能就是老师经常提到的提高参与感吧。
</li>

关于留言这件事情，我想跟你分享一下我曾经的心理变化。刚开始学习时，遇到不懂的问题，其实我是不敢提问的，因为我担心我之所以不懂这个问题，是自己理解能力有问题，怕提问的问题过于低级，只好藏着。但是后来我发现，越是这样，我越不懂，慢慢就丧失了很多学习热情。意识到这一点之后，我就及时调整了学习策略，不断提醒自己：对于思考之后实在不能理解的问题，一定要多问。**不藏拙，才是成长的最佳路径。**

## 学习专栏有什么收获？

学习这个专栏，我最大的收获就是对Kafka的原理、机制以及参数的理解更加深入了。我很佩服胡夕老师的抽象概括能力。胡夕老师花费了一年多的时间阅读Kafka的源码以及相关文献，但最后呈现给我们的并不是长篇大论，而是经过多次抽象总结的内容。老师从我们用户最关心的入门、配置、客户端、内核、监控这几个点，去介绍Kafka的内容，将官方文档的上百个参数精简成十几个重要的参数，将几百页的内容抽象成几十讲的核心知识。

这一点让我很受启发。在学习过程中，追求大而全并不好，我们只需要掌握实际生产环境中最常用的那么十几个参数，保障消息传输稳定、快速、不丢失就可以了。很多很深奥的内容，如果精力和时间允许的话，再去深究，**要以终为始，不能钻牛角尖**。

可能只有程序员才知道，阅读大段的源码是多么痛苦的事情，但胡夕老师做到了，而且还在“加餐”中分享了他阅读源码的方法。令人欣喜的是，胡夕老师是直接将源码在IDE中展示出来，并且对着实际代码描述阅读代码的方式，实操性很强。而这一点，其实正好符合我当初选择学习Kafka专栏的预期。专栏里的大部分内容，都是可以落地实践的。**勿在浮沙筑高台**，胡夕老师就是这样一步一步地带着我们稳步前进的。

## 总结

专栏不知不觉就结束了，比较惭愧的是，我后半段没能跟上老师的节奏，做到更新1讲，阅读1讲，往往是堆积了好久才去阅读。但是，我真的很感谢胡夕老师的付出，老师在专栏里分享的内容，让我对Kafka的参数以及一些实战性很强的知识，形成了自己的理解。

胡夕老师在专栏中提过一句话，我印象非常深刻，“**行百里者半九十**”，Kafka的学习之旅不会随着专栏的完结而停止，只是读完专栏的内容，其实才走了旅程的一半而已。后续的话，针对专栏中提到的落地信息，我会一一记录并实践，对于Kafka，真正做到能懂、会用、能用好。

好了，我的分享就到此结束了。你在学习专栏的过程中，有没有什么独特的学习方法和心路历程呢？欢迎你写在留言区，我很期待能跟你在这里交流、讨论，一起学习进步。


