信息分享并非难事,绝大多数人都能做到,即便是不善言辞或性格内敛的技术人员,也能通过发表博客、利用社交媒体或进行非正式交流来传达信息。然而,若要进行一次具备高水准和深度的分享,则面临诸多挑战。在我看来,高质量的分享应具备两个核心特质:一是分享内容的持久价值,即具备较长的“保鲜期”;二是能够被广泛传播。我们的团队每周都会进行技术分享,尽管主题都颇具价值,但分享的质量却参差不齐,因此,我希望通过本文提供一些参考。
我们不妨先自省,自己心目中优质的技术文章是怎样的?虽然每个人的标准不尽相同,但我个人认为好的技术著作通常具有以下特点:
能够将复杂问题阐述得简洁明了。例如,高中时期阅读的1978年出版的《从一到无穷大》,它以通俗易懂的语言清晰地讲解了各种复杂的科学知识。还有一些经典著作,如《Windows程序设计》,它从一个简单的“hello world”程序入手,逐步引导读者掌握Windows原生编程。
提供多种方案的推导与比较,让读者不仅知其然,更知其所以然。通过对比不同解决方案,读者能够形成全面深刻的理解。《Effective C++》便是这类作品中的典范。
侧重于原理、原因、思路及方法论的阐述,使读者能够融会贯通。在这方面,《十万个为什么》无疑是经典。在计算机领域,也有《Unix编程艺术》、《设计模式》和《深入理解计算机系统》等经典书籍,以及《The C10K Problem》等众多技术论文。
实际上,无论是教科书、专业书籍还是学术论文,都普遍体现出上述这些优秀特质。
因此,如果您希望做出一次高质量的技术分享,以下是我总结的一些方法,供您参考:
首先要清晰地阐述一个问题。这样做能够迅速吸引听众的注意力,如果这个问题恰好是他们感同身受的,效果则更佳。切忌一开始就直接抛出“是什么”,或是直接给出答案。这种分享方式更像是灌输和填鸭。务必将“为什么”解释清楚。缺乏对“为什么”的阐述,直接谈论“是什么”的技术分享,其价值通常有限。
“如何做”比“是什么”更为关键。在讲解如何解决问题的过程中:
首先需要明确问题模型,只有在这个框架下,提出的解决方案才有实际意义。
其次,要进行不同技术方案的比较。通过比较,听众才能对您的观点更加信服。
直接罗列技术细节,其意义并不大。
务必总结最佳实践或方法论,这是提升分享层次的关键。听众从分享中获得的重要收获往往体现在这些方面。
这种模型可以概括为:问题 -> 方案 -> 总结。其中蕴含着一定的心理学机制,具体表现如下:
通过提出问题来吸引听众,引导他们共同思考。
利用问题模型限定听众的思考范围,帮助他们聚焦。
提供多种解决方案,并比较其优缺点,让听众感受到参与解决问题的过程。
最终,给出最佳实践、方法论或成熟套路。经过前三步的铺垫,听众将乐于接受。
整个过程能够让听众获得强烈的成长感和收获感。
以下是一些示例,它们是我在公司内部(MegaEase)进行的技术分享,以供参考。
在公司内部的知识分享中,我们总结了一些最佳实践,可供参考:
分享指引:
请遵循以下分享协议:
理解分享的真正意义:
分享是学习知识最具挑战性的方式。分享者从这一过程中获得的益处远超听众。
分享可以为听众推开知识的大门,但能否真正获取知识,最终仍取决于听众自身。
最佳实践:
为确保分享的高质量,请遵循以下实践:
避免选择过于宏大的主题,小而精的主题效果更佳。过大的主题容易让听众难以集中注意力。请记住:少即是多!
分享时长控制在60分钟以内为宜。
幻灯片内容建议使用英文。
在准备分享材料时,最好与资深同事沟通交流,他们能帮助您掌握全局,理解优缺点,并认识到自己知识的盲区等。
强烈推荐的材料大纲:
问题是什么?
如何解决这个问题?
最佳解决方案或实践。
机制、关键技术和源代码。
优点/缺点。
参考文献(延伸阅读)。
例如,如果您想分享关于Docker的主题,以下大纲会是很好的选择:
需要解决的主要问题是什么?
备选解决方案(例如:Puppet/Chef/Ansible、虚拟机、LXC等)。
最佳解决方案——Docker,以及分析其优势。
Docker的关键技术:镜像、cgroup、联合文件系统、命名空间等。
Docker的优点/缺点。
推荐的延伸阅读列表。
