目录
一、背景
1.1 写作背景
借着这个机会,对 “如何写出高质量的文章” 这个话题进行系统性思考,在这里进行分享,希望对大家写作有帮助。
1.2 写作经历
目前主要作品有: 剖析《阿里巴巴 Java 开发手册》、《Effective Java》 独家解析、《性能优化方法论》、《Java 校招求职如何拿大厂 Offer》 等,有多篇文章被知名公众号转载。
二、为什么要写文章
2.1 写作是一种学习方法
费曼学习法是一种比较高效的学习方法,通过教别人来验证自己是否真正掌握知识的学习方法。有效地技术写作也是一种类似的通过教别人来深化自己对某个知识点理解的过程。
只有能 “讲清楚” 才代表真正想清楚,真正理解了某个知识点。
写高质量的文章某种程度上和 “写论文” 有些类似。写技术文章需要查阅各种相关资料,查看源码、查看相关的技术图书、查看类似的文章的观点、甚至需要查看论文等,对学透某个知识点非常有帮助。
有时候有些文章自以为写的很完善,评论区其他人指出一些问题或者给出一些补充,才发现自己并没有真正学透这个问题,对这个话题的理解就会更进一步。
2.2 写作可以锻炼思维能力
需要注意,并不是多写文章,思维能力就一定能得到锻炼。
如果能借着写文章这个机会,对某个知识点进行系统化地思考,并能通过结构化的方式表达,通过多次刻意练习,就能够锻炼自己的思维方式。
2.3 写作可以提高个人影响力
如果能够持续输出高质量的文章,就会有得到更多地曝光,就会有更多的机会。
甚至会有人来寻求合作,出专栏、出书等。
通过持续输出高质量的文章,也能够积累更多粉丝,认识更多朋友。
三、什么是高质量的文章?
高质量的文章通常具备以下特点:
另外,通常来说很多知识付费平台的热门专栏、很多知名开源项目的官方文档、很多大厂的技术公众号的文章质量也非常高。
其中阿里技术的:《对抗软件复杂度的战争》,就是一篇不错的高质量文章案例。
大家可以大致浏览一下,该文图文并茂;引用文章众多,论证充分;能够结合源码和经典的理论;能够引发读者的思考。
四、常见写作方向有哪些?
有些同学想写文章,但是又不太清楚该写什么。
下面给出一些常见的写作方向: 技术方向、业务方向、个人方向。
我认为只要对自己的学习有帮助,只要有自己的思考,都可以写。
技术方向:可以是对某个技术原理的介绍,某个技术方案的介绍,技术架构的设计;源码的设计思想对经典的图书、文章的笔记;某个问的解决方案,日常开发遇到的坑点分享都可以。
业务方向:可以讲自己所做业务的思考、业务的逻辑,商业模式的思考等。
个人方向:可以分享自己工作中的思考;对项目、晋升的复盘;个人在某个领域的成长经历等。
五、如何写出高质量文章
5.1 战略
5.1.1 大量的输入
没有持续地输入,就很难持续输出。
输入不要局限于计算机相关知识,包括哲学、心理学、物理学、生物学领域的常见知识都可以广泛涉猎,这些学科对我们深入理解计算机相关知识有较大帮助。
心理学中的很多定律对我们起出有吸引力的标题,做好文章的运营有较大帮助。
生物学中的演化论和遗传理论系统和架构演进也提供了思想支撑,生物学的遗传思想也是遗传算法的主要依据。
化学中学到原子是万物的基础,但是不同原子的排列方式构成了世间万物,不同结构的系统、不同结构的架构稳定性、拓展性也完全不同。
专业基础必不可少,尤其是非科班出身的同学,一定要加强专业基础的学习;工作中常见的技术栈的源码有时间都可以系统地学习一下。
经典的技术图书和介绍常见中间件原理的图书有时间都要反复阅读,如《A Philosophy of Software Design》、 《深入理解计算机系统》、《深入理解 Java 虚拟机》、《阿里巴巴 Java 开发手册》、《领域驱动设计》、《重构》、《代码整洁之道》、《设计模式之禅》、《Redis 深度历险》、《HBase 不睡觉书》、《Elasticsearch 实战》、《深入理解 Apache Dubbo 与实践》、《深入理解 Kafka 核心设计与实践原理》等。
一些常见知识付费平台的畅销专栏,都可以买来学一学。技术专栏的好处在于比图书更生动有趣,相对更深入浅出,更结构化一些。
5.1.2 深入的思考
想写出高质量的文章一定要对相关的主题有过系统地深入的思考。
可以尝试和经典的计算机科学领域的理论、软件工程领域的理论, 专业基础中的相关实践相结合。
也可以尝试从物理学、生物学、经济学甚至哲学领域的重要思想结合。
5.1.3 深入地调研
写写出高质量的文章,需要充分阅读写作主题相关的各种文章、论文、经典图书、源码等。
这样对写作主题的论述会更加全面,有更多写作的素材。
5.1.4 明确受众
写作之前要明确文章的受众,根据受众调整语言风格、文章结构等。
换位思考受众的核心诉求,就更容易直击痛点,输出干货。
5.1.5 刻意练习
我们知道了高质量文章的特点,多去阅读一些高质量的文章之后。
写文章就可以通过模仿来“刻意练习”,逐渐提高写作能力。
5.1.6 厚积薄发
俗话说:“巧妇难为无米之炊”,日常的思考和积累就像是做饭的米,而技巧则是做饭的手法,没有日常的思考和积累,很难写出高质量的文章。
大家平时读书时突然对某个知识点有不一样地理解,强烈建议及时记录下来。
阅读经典的图书或者文章时,可以写读书摘要,读书笔记,输出自己的理解。
日常工作中遇到一些 BUG 、代码审查中遇到的一些有意思的问题,都可以积累下来。
日常工作中遇到的问题一定要深挖背后的原因,不仅要解决问题,还要知其所以然,增加深度。
工作之余,建议主动阅读经典的图书、专栏、文章,增加广度。
通过不断地积累,不断地思考,就会有创作欲望,就容易写出高质量的文章。
5.2 战术
5.2.1 起好标题
关于起好标题,主要推荐三个方向:数字法则、给出结论和价值、激发好奇心。
数字法则:在标题包含一些具体的数字,就显得更具体。
给出结论和价值:在标题中体现出文章的价值,可以吸引对相关话题感兴趣的人来阅读。
激发好奇心:起一些容易激发读者好奇心的题目,更容易得到关注,但一定要确保名副其实,否则会容易引起反感。
5.2.2 列好提纲
作为 Java 工程师,大多数同学都知道,想要做好项目,一定要充分理解需求,并设计完善的技术方案,再动手开发。
读过研究生的同学也很清楚,在论文写作之前,定好目录很重要,目录斟酌好之后再进行写作就比较容易,也减少了修改的成本。
我最近写的《弃文从工,从小白到蚂蚁工程师,我的 Java 成长之路》就在目录上下了一些功夫,定好目录之后写起来心里就比较清晰,写作就一气呵成。结果也不错获得了猿创征文第二季的二等奖。
在这里特别强调,大家写作时尤其是对于征文投稿,在列提纲和实际写作时一定要紧扣写作的主题,避免写作内容和主题之间有较大偏差。
5.2.3 行文技巧
(1) 2 W 1 H
大多数高质量的文章,包括本文整体符合 2 W 1H 的行文结构,即是什么、为什么、怎么做。
下列思维导图是《代码重构之道》的文章结构
大家可以按照这个框架来写,但无需拘泥于其中 W 和 H 的顺序,可以适当变通和创新。
(2)Zoom In / Zoom Out
想写出高质量的文章,不应该只停留问题本身的层面,应该能够见微知著。
主动从不同的尺度看问题,从不同的尺度来描述问题。
下面思维导图是《对抗代码复杂度的战争》(阿里技术)文章的基本结构,即从微观和宏观角度来讲代码复杂性的问题。
(3)视角思维
有些文章可以尝试从不同的视角来写作,对问题的分析就会更加全面,对问题的解析就更本质。
如之前读过孤尽老师的解析同步和异步、阻塞和非阻塞、并行和串行概念的文章时,发现孤尽老师从函数调用、线程、CPU 的视角去分析这些概念,就如醍醐灌顶一般,对这些概念的理解特别透彻。
如果想写代码审查相关的高质量文章,就可以分析代码审查这件事有哪些角色,分别针对这些角色去写作就非常全面,更加结构化。
(4)时间视角
如果文章部分内容和时间有关,可以不同的事情划分成不同的阶段来描述,更结构化,也可以可以配一些 timeline 风格的图。
如《阿里巴巴 DevOps 实践手册》 传统评审流程的问题配图:
(5) 本质思维
主动去思考很多问题的本质,写作时最好能点出问题的本质,文章会更有价值。
如下图是我日常的一个思考的示例,分布式缓存、分布式锁、分库分表中间件、领域驱动、消息队列等本质上都是通过增加中间层来解决特定问题的方法。
领域驱动:通过增加领域层实现核心业务的稳定性,提高内聚降低耦合。
分布式缓存:通过增加缓存,通过空间换时间,实现更好的性能。
中介者模式:通过增加中介类,处理不同类之间的通信,降低耦合。
分库分表中间件:通过增加数据库代理,封装分库分表逻辑,降低使用成本;采用空间换时间、化整为零的思想来突破单机、单库和单表的物理极限。
5.2.4 文章完整性
推荐大家通过一篇文章或一系列文章将一个问题、一个技术讲透,这样更有价值,也更容易吸引用户持续阅读。
如很多文章看到标题就知道能够完整的讲述某个话题,很多读者就更愿意读: 《编写提测文档的正确姿势》、《原来源码还可以这么读》、《代码审查的正确姿势》、《性能优化方法论系列》、《我的成长之路》、《Spring 官方文档读书笔记系列》等等。
5.2.5 深入浅出
技术写作难免遇到一些枯燥的概念,可以考虑使用生活化比喻让深奥的概念变得通俗易懂。
如:《备忘录模式》
比如,本文在前面就利用 “巧妇难为无米之炊” 来解释日常的积累是写出高质量文章的前提。
5.2.6 利用好工具
前面讲到高质量的文章的重要特征之一就是“图文并茂”。
大家日常写作可以使用 PlantUML 、Draw.io 、Power Point 、Keynote 、tweetlet 进行配图。
使用 tweetlet 可以将文本变为比较美观的图片作为文章配图。
可以使用 carbon 将代码转为比较美观的图片作为文章配图。
使用 Unsplash、Pexels、Pixabay 等选择和主题相近的配图,让文章读起来更轻松。
可以使用思维导图列提纲、可以使用写作猫 或其他错别字检查平台进行语法和错别字检查,避免出现过的错别字。
下图为写作猫对本文部分内容检查的截图:
使用 ChatGPT 或 New Bing ,一些基础的概念讲解,一些基本的代码示例,都可以考虑让 ChatGPT
5.2.7 规范写作格式
推荐阅读 : 《中文文案排版指北》。
大多数同学写作最常见的问题是不同章节之间没有空行,文字过于密集。英文单词、数字前后没有空格,可读性较差。
六、总结
本文主要结合自己的写作经历,从战略和战术两个层面讲述如何写出高质量的文章,希望对大家写作有帮助。
如果你有不同的看法、有补充的建议,欢迎在评论区和我交流。
总之,高质量的文章少不了写作前大量的积累,深入地思考;离不开写作中认真的态度;离不开写作后的斟酌修改。
最后,为了更好地帮助大家理解这些原则如何在实践中运用,给一个简单的案例:《小代码大智慧: FilenameUtils.getName 函数分析》。
另外,如果你足够细心,你会发现本文也是按照文章说推荐的结构和工具来写作的。本文的标题也符合“给出结论和价值”的思想,采用了 2W1H 的写作思路,使用了凡科快图进行封面设计,使用 Xmind 做目录设计,使用 unsplash 和 keynote 配图、参考《中文文案排版指北》的格式,使用写作猫进行错别字检查等。
创作不易,如果本文对你有帮助,欢迎点赞、收藏加关注,你的支持和鼓励,是我创作的最大动力。
标签:5.1,战术,可以,高质量,写出,写作,思考,文章 From: https://blog.51cto.com/mingmingruyue/7462774