给 Markdown 程序员的写作能力提升指南

前言

最近完成了一次反复打磨的技术分享。在准备和进行分享的过程中,我遇到了不少问题,而这些问题的根源在于自己日渐下降的写作水平和表达能力。

在本文中,我会先从自己的角度分析写作能力对程序员的作用;再结合自己的参考和实践,总结一套相对标准的写作套路;最后分享一些常用的写作辅助软件,并分析这些软件的特点。

写作能力真的有用吗

不少工科学生认为写作能力对个人水平的提升没什么实际作用,甚至会调侃:“代码写得好的,不如 PPT 讲得好的”。在这几年的工作中,我越来越不赞同这种看法。

首先,提升写作能力有助于增强结构化思考能力。
写作主要是写给人看,写代码则同时写给人和机器看。一份好的代码首先要可读;如果可读性很差,甚至已经无法维护,那么这份代码的价值就会大打折扣。
一篇好文章应该层级清晰、文笔顺畅;同样,一份好代码也应该命名统一、流程明确。如果文章层级不清、章节衔接生硬,读者阅读时就很容易一头雾水。
如果程序员对某段逻辑已经想得很清楚,写出来的代码往往也会更顺畅。类比到写作:当你对要表达的内容了然于胸,写出来的文章自然不会晦涩难懂。

其次,提升写作能力也有助于提升言语表达能力。
我经常会提笔忘字,也常常在和别人讨论问题时语无伦次。这时我可能会说:等我在聊天工具上把语言组织好,再用文字发给你。
当我在聊天工具上组织语言时,我会发现:经过几轮修改和校正,我终于能把自己要表达的意思完整、准确地表达出来。
当然,言语表达不清楚时,用文字也未必就能表达清楚。但由于文字表达对即时性的要求通常低于言语表达,我们可以先通过锻炼文字表达能力,间接提升自己的言语表达能力。

最后,提升写作能力有助于程序员把学到的知识真正落地。
不少优秀的程序员都有写博客的习惯。写博客能加深对知识的理解,并让知识更好地沉淀。俗话说“好记性不如烂笔头”,而博客往往就是程序员最好的“烂笔头”。
但也有不少程序员没有写博客的习惯,或者坚持不下去。我认为最主要的原因是:不想让别人读到这么“烂”的文章,从而影响自己在别人心中的形象。
如果因为害怕曝光而不写作,写作能力就会在恶性循环中不断下降。反过来,如果能逐步提升写作能力,写出来的博客质量自然会慢慢提高,写博客的习惯也更容易建立起来。

程序员写作的套路

如今 Markdown 在程序员群体里已经非常普及,很多人的文档和笔记都用 Markdown 来写。我自然也是 Markdown 的重度使用者。多年写作下来,我也总结了一些经验和教训。

第一,创作时别太在意排版。
当灵感涌现时,最好先把文字尽量输出;排版这些琐碎的小事,可以等草稿完成后再处理。创作阶段如果把太多时间花在排版上,很容易打断思路。

第二,别滥用太多 Markdown 语法。
我以前特别喜欢各种语法,例如 code 斜体 强调,还有各种大大小小的标题。后来回过头阅读自己写过的 Markdown 文章时,我发现:标题层级越复杂,行文往往越不流畅。标题的插入在某种程度上会让文章的上下文衔接变得不自然。

第三,写作要多练。
对于很多高中毕业已经五六年的人来说,重拾写作这件事本来难度就不低。如果让我把写出来的所有文字、所有笔记都分享出来,估计会有人笑掉大牙。但因为害怕曝光就不写作是不对的:越是惧怕写作,写作能力下降得越快。我现在会每周强迫自己写至少 2000 字,这些文字大多只保存在自己的网盘里;如果有特别值得分享的,或者写得特别好的,我才会分享出来。

工具分享

Markdown 写作工具层出不穷,选择也很多。每个人可能都有自己偏好的工具。在这里,我结合自己的使用经验以及他人的推荐,分享一些常用的软件和工具。

VS Code + Markdown Preview Enhanced

VS Code 大概不用介绍了,它是一个文本编辑器,同时也是一个轻量级的 IDE。平常我会用它进行 Markdown 文本创作。写作时我不会使用太多插件,一般就把它当作纯文本编辑器使用。在检索资料时,我也经常使用 VS Code 的文本搜索功能,很方便。

Markdown Preview Enhanced 是一个很常用的 Markdown 插件,我会用它在 VS Code 中渲染 Markdown,以便预览效果。当然,它也支持很多原生 Markdown 不支持的功能,例如 puml 渲染、甘特图渲染等。不过我最近没有在使用这些功能了,因为觉得使用文本画图的效率不高。

MPE

坚果云

坚果云为我提供了个人的云盘服务。Markdown 文件很小,免费版坚果云的流量限额完全够用。我自己有多台设备,会在各个设备上安装坚果云并开启同步,基本能达到无缝切换的效果。如果我需要在手机上阅读和查找,坚果云手机客户端也完全能满足我的需求。

nutcloud

iPic + persister

iPic 是一个图床管理器,支持将截图上传到图床,并直接生成 Markdown 的图片链接。免费版的 iPic 只支持微博图床,而微博图床经常出现 403,所以我自己写了一个程序,用于将 Markdown 文件里的图片下载到本地,然后替换 Markdown 的图片链接,具体可以参考 persister

Draw.io

Draw.io 是一个开源的画图工具,基本功能跟 processon 类似,但它免费且支持多种存储。我习惯使用它的桌面版客户端,并使用坚果云提供的本地存储。画图结束后,我习惯输出 svg 格式的图片,然后在 Markdown 中引用。

drawio

写在最后

本篇文章算是我这个月给自己设定的目标之一。
写完这篇文章,希望能让自己养成坚持写作的好习惯,顺带提升自己的表达能力和结构化思考能力。
前路漫漫,未来可期。

参考文献

Share