比如说介绍自己解决的一个老大难 Bug,可能真正修改的代码并没有几行,把过程讲出来也不过寥寥几段。这时候你就可以再分析一下 Bug 存在的原因,为什么一直拖到现在,再思考一下如何避免这类问题,遇到同类 Bug 怎样快速排查。这样自己想问题的角度更全面了,文章内容也更丰富了。
比如你想介绍一项自己在学的新技术,发现自己写的东西其实就是官方文档的简化版,去重之后几乎什么都不剩了。这时候不要再继续抄文档了,把自己的思考总结先记下来,继续学习技术,持续记录新的内容,有更全面的了解之后,再写文章。
▐ 清晰的叙事结构
优秀的技术文章,结构一定是清晰的,有可能目录就代表了某个技术体系,或者代表了解决问题的思路。
优秀的内容 + 清晰的结构 = 好文章
能把技术问题讲清楚,就很考验表达能力,这是大部分程序员比较欠缺的。对于技术类文章,常见套路也不多,我简单介绍两类吧:
-
平铺叙事,逐步推进:适用于介绍排查问题的过程、分享设计思路、介绍项目的迭代进展。
-
结构化叙事,层层展开:适用于讲规划、做总结、画大图、介绍一整套技术方案。
▐ 线性叙事,逐步推进
对于这类文章,读者是应该按顺序一段一段看的,写的时候脑海中模拟读者的视角来写。这类文章的小技巧就是:**模拟读者视角,设定一条主线,有节奏的向前推进。**和讲故事差不多,每一步的推进要有逻辑,要保持思路不要断掉。
有时候稍微加点趣味也是不错的,比如:
https://zhuanlan.zhihu.com/p/273557876
我的这篇文章,目标是分析 Widget 和 CSS 的设计差异,我把文章写成一场比赛,先介绍参赛选手,然后分了 5 个 Round 开始 Battle,然后是 Love&Peace,最后一个 Happy Ending。
▐ 结构化叙事,层层展开
除了按顺序看的,还有不按顺序看的文章?有的,尤其在专业的技术文章里很常见,大部分是“总-分”的结构,先讲整体框架,再分章节介绍各个部分。
比较常见的是那种总结型的文章,比较像一本技术手册,可以通读一遍,也可以只看其中一段,之后遇到相关的问题,根据目录跳着阅读。
对于文思泉涌的人,可以一口气把整篇文章写完。但实际情况是,很多时间被碎片化,可能还要引用一些专业内容,可能需要查资料,写文章的过程会被中断。这类文章不是一口气写完的,是先搭架子再填充完整的。
其实写起来也很简单:先想好标题,再划分好目录结构,再一段一段的填充内容,最后再润色一下连接部分。文章可以不按顺序看,也可以不按顺序写。
线性叙事是个链表,结构化叙事是树。
提升写作技巧
我初高中的时候比较喜欢看闲书,偶尔自己写 《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 点东西,但是我作文考得并不高,这里大言不惭的聊一下怎么写作文吧哈哈哈哈哈。只讲怎么写技术文章,并不能提升任何文学功底,但说不定能帮你避开一些小坑。
▐ 碎片化记录,结构化整理
大部分人的问题是不知道该写什么,即使已经有足够的积累,有明确的话题要写,也不知道该如何下笔。这就要靠日常的积累了。
在平时工作的时候,可以建个文档库,把日常的一些琐碎的想法记录下来,随时写随时存。我是用手机的便签 App 随手记东西,比较喜欢它的语音转汉字功能,工作相关、生活相关,随时随地想起任何话题都可以记录下来。
在有了明确话题,准备写文章之前,先把各种碎片化的记录收集起来,形成一份“素材”文档,然后梳理文章脉络,把素材应用进去。操作起来很简单,刚开始的时候会遇到前后不通畅的问题,那就不要直接复制素材的内容,重新换个表达方式写出来。多练习练习就好了。
▐ 刻意练习,先写再改
有了素材之后,平时可以**专门练习写作能力,先写一小段话,明确的描述一个观点,然后不断修改****。**其实写周报就是一个很好的锻炼机会(现在不要求写了,自行练习),练习把做的事情描述清楚,说话的方式简单点,不要用太多高大上的词汇。最关键的部分在于:写完花五分钟再改一遍!读一下是否通顺,有没有把问题讲清楚。反复修改才是提升写作技巧的关键。
用周报举例有点奇怪,毕竟是邮件类型的东西,和写文章差别很大,还是不要乱改周报了,改自己以前写的文章吧。**找一篇自己以前写的,内容很不错但是写得不太行的文章,重写一遍!**这个过程既温习了技术,又锻炼了写作技巧。不要觉得无聊浪费时间,亲测很有效的。
▐ 注意排版和语法细节
对于不拘一格的程序员来说,写出来的文章没有排版,就是家常便饭。不需要追求高级的排版技巧,稍微注意一下几个常见的问题就好了。
- 正确使用标点符号。(没想到我居然在讲这个……)
大部分的文章里就只有逗号和句号,逗号和句号也是看心情随意划分,按到哪个是哪个。还有单双引号、顿号、冒号、分号、叹号、破折号、省略号、书名号、中文括号「」【】等等…… 使用技巧可以去网上搜,这部分我觉得问题很常见,就单独多讲了两句。对了,中文文章要用全角标点符号,尽量不要混用英文标点符号……
- 添加多种展现形式,可参考 GitHub 的 Markdown 语法。
如果全都是普通段落,看起来太平,可以加上无须列表、有序列表、段落引用、表格等等。行内排版可以加上粗体、斜体、代码标记
等,偶尔还可以用删除线。
- 其他还有一些小的建议
-
区分大标题小标题,分配的均匀一些,最多不要超过三层。
-
每个章节的长短也尽量均匀一些,太长的内容就拆个小标题。
-
重要数据给出明确的数据源,扩展信息给出资料连接。
-
中英文混写的时候,在中间加一个空格。
-
注意英文的大小写,尤其是专业名词的缩写。
-
英文喜欢长句,复合从句一层套一层;中文追求言简意赅,错落有致,可以多加标点符号,把长句分隔开。
-
写完之后通读一遍,尽量少写错别字……