<audio id="audio" title="结束语 | 栉风沐雨，砥砺前行！" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/49/14/49f522245e75448cbf4bb34a60d81414.mp3"></audio>

时光飞逝，从三月底正式开始写专栏到现在，不知不觉已经过了小半年，今天也到了这个专栏收官的时刻，我特别想和你聊聊我的感受，再分享给你一些学习方法。

回想整个专栏的编写，我经历了四五月的踌躇满志，六月的疲惫彷徨，七月的重拾信心以及八月的坚持不懈，一路走来，虽然艰辛，但收获良多。

都说万事开头难，专栏设计也不例外。记得编辑第一次和我聊专栏定位时，我比较犹豫。Java 语言作为最受欢迎的语言之一，老牌、功能多，还拥有一个强大的生态。针对它的性能调优实战纷繁错杂，那内容广度和深度该如何来定，怎么设计内容才能让包括你在内的众多从事Java的程序员都有所收获…就成了我第一头疼的事儿。

后来编辑建议说，不妨把这个专栏设想为“写给多年前从业不久的自己"。瞬间感慨万千～

回想当年的自己，无论是工作还是学习，都走了很多弯路，可以说真是一步一个坑这么踩过来的。刚入行那会，学习和解惑渠道都比较单一，远没有现在的资料丰富，但工作又急需我迅速变强。“线上Bug不断，线下学习不断”，相信包括你在内的很多程序员朋友或多或少都和我有类似的感受。

因此我坚定了这个专栏的出发点，以夯实理论支撑为前提，围绕“Java基础编码、多线程编程、JVM以及数据库”等几个大方向展开讲解，从自己的经历中节选出了40多个有价值的点与你分享，期待能传递给你一些经验，指明精进方向。

专栏完结之际，在我们三个多月的在线交流过程中，结合你的留言，我也收获了很多，现在想再和你分享一些学习方法，共勉！

**首先，扎实的基础功底是我们筑墙的基脚，这是我从开篇词就坚定的一点。**

从操作系统的基础开始，到网络通信，再到数据结构、编程语言等等，这些都是建设基础大厦的砖石。

你有没有发现，网络通信配置参数在TCP通信框架中也有。在配置Netty的默认参数时，我就发现很多人把ServerSocketChannel的配置参数配置到了SocketChannel中，这样做虽然不会造成什么严重的Bug，但这也体现出了我们对技术的态度。

所以说，在工作中如果你发现了一些不熟悉的知识点，就一定要深挖，了解其具体原理和作用。如果你发现这个知识点所属的知识面是自己所不熟悉的领域，我很建议你从点到面地系统学习一下。

**然后，有意识地锻炼我们的综合素质，以实践能力为重。**

系统性能调优，考验的不仅是我们的基础知识，还包括开发者的综合素质。首当其冲就是我们的实践能力了，善于动手去实践所学的知识点，不仅可以更深刻地理解其中的原理，还能在实践中发现更多的问题。

其实我们身边从来都不缺“知道先生”，缺乏的是这种动手实践的人。

深挖和动手实践结合是很高效的学习方法，但我相信大部分人都很难做到这两点。烦杂的工作已经占据了我们大部分的时间，当我们发现陌生技术点的时候，很可能会因为这个功能还能用，没有爆出什么严重的性能问题而直接忽略。

这种习惯会让我们在技术成长的道路上越来越浮躁，总是停留在“会用”的阶段。我的方法是，协调时间，做紧急项排序。当我看到陌生技术点时，如果恰好没有紧急需求，我会适当地放下工作，先把这些技术问题理解透彻，渠道就有很多了，比如阅读源码、官方说明文档或者搜索相关技术论坛等。但如果是陌生技术点带出了陌生的知识面，那就需要规划下学习时间和路线了。

**最后，学会分享，践行“费曼学习方法论”。**

我发现这样一个现象，只要是我分享过的知识点，我自己会理解地非常深刻，而且经过朋友或者同事的几番提问之后，我对所学习技术边边角角的知识点都能囊括到。这一点我也要感谢一直在专栏中给我留言，和我做技术交流的你，我非常喜欢这样的精进方式，希望你也是。

那么这个现象呢，其实是一个著名的学习方法论——费曼学习方法论。费曼学习方法指出，想象你要将自己学习的内容，教授给一个完全不了解这个知识点的人，教授的内容呢，需要讲解得简单易懂，且这个过程中会不断有问题被提出，你需要重新去认识这些知识点。

我觉得这是个很好的学习方法，技术不是闭门造车，深挖和实践是必要的，但通过分享将自己的所学整理成体系，使理解更加深刻和全面也是必备技能之一。

面对今天日新月异的互联网行业，从我们踏入技术领域那一刻起，就意味着任重道远。希望在未来的我们，都能栉风沐雨，砥砺前行！


