信息分享并非难事,即便是不太擅长言辞或性格内向的技术人员,也能通过博客、社交媒体或非正式交流进行。然而,若目标是实现高质量且有深度的技术分享,其难度便显著增加。在我看来,高质量分享应具备两个核心特质:一是分享内容能够经受时间的考验,具有较长的“保鲜期”;二是被广泛传播与接纳。鉴于团队每周进行的技术分享主题价值各异但质量参差不齐,特撰此文供大家借鉴。
首先,我们不妨自问:哪些技术文章能真正触动我们,被我们视为佳作?我个人认为,优秀的文章通常具备以下特点:能够将复杂问题阐述得简单而清晰。例如,高中时期阅读的《从一到无穷大》,巧妙地用通俗易懂的语言解释了复杂的科学概念;以及《Windows程序设计》一书,从一个简单的“hello world”程序入手,逐步引导读者掌握Windows原生编程。
优秀的分享还应包含严谨的推导过程和方案对比,让受众不仅知其然,更知其所以然。通过比较不同方案的优劣,受众能获得更全面的认知。《Effective C++》便是此类典范。此外,那些深入探讨原理、缘由、核心思路和方法论的分享,往往能帮助受众融会贯通。例如《十万个为什么》,以及计算机领域的经典之作《Unix编程艺术》、《设计模式》、《深入理解计算机系统》等,还有如《The C10K Problem》等技术论文,都体现了这一点。
无论是教科书、专业书籍还是研究论文,上述特质普遍存在。因此,若您希望呈现一次高质量的技术分享,我总结了以下方法供您参考。
首先,清晰地阐述一个问题。这将有效吸引听众,若该问题恰是他们感同身受的,效果则更佳。切勿开门见山直接抛出解决方案或定义,那无异于填鸭式灌输。务必要说清楚“Why”(为何如此),缺乏对“Why”的解释,直接讲“What”(是什么)的技术分享,其价值通常有限。
相较于“是什么”,“怎么做”(How)更为重要。在讲解“How”时,即如何解决问题时,需要先明确问题模型,为后续的解决方案提供清晰的框架。接着,应进行不同技术方案的比较,这能增强听众对您方案的信任度。直接罗列技术细节,其意义并不大。
最后, 반드시 提供最佳实践或方法论总结,这能极大提升分享的层次。亦即,听众从本次分享中能够获得的重要收获。归纳而言,技术分享模型可简化为:问题 -> 方案 -> 总结。这其中蕴含着一定的心理学机制:
通过提出问题吸引受众,引导他们共同思考。
利用问题模型限定受众的思维范围,帮助他们集中注意力。
提出多种解决方案并比较其优缺点,让受众在解决问题的过程中产生参与感。
最后,提供最佳实践、方法论或套路,在前三步的铺垫下,受众会欣然接受并获得强烈的成长感和收获感。
这里提供几个示例,是我在公司内部技术分享的内容,可供参考:例如关于Prometheus如何存储数据的技术分享,以及分布式锁管理器(Distributed Lock Manager)的分享。以下是我们公司内部知识分享的最佳实践指南,供参考:
分享是一条学习知识的艰难路径。分享者从中获得的益处远超听众。分享能为听众开启知识之门,但能否真正获取知识,则取决于听众自身的努力。
为了呈现一场出色的分享,请遵循以下实践:选择小而精的主题,避免过大,以免听众分散注意力。切记“少即是多”的原则。分享时间控制在60分钟以内为佳。幻灯片建议使用英文。在准备分享内容时,最好能与资深人士讨论,以获得全局视角,理解优缺点,并认知自身的知识盲区等。
强烈推荐的分享材料大纲包括:问题是什么?如何解决问题?最佳解决方案或实践。机制、关键技术和源代码。优点/缺点。参考文献(供深入阅读)。例如,若您想分享关于Docker的主题,以下大纲将是一个不错的选择:需要解决的主要问题(如资源调配、环境、隔离等)。替代解决方案(如Puppet/Chef/Ansible、虚拟机、LXC等)。最佳解决方案——Docker,以及为何是它?Docker的关键技术——镜像、cgroup、联合文件系统、命名空间等。Docker的优缺点。扩展阅读列表。
