我是如何写一篇技术文的?

大家好,我是三友~~

今天咱就不卷技术了,来跟大家伙讲一讲我是如何写一篇技术文的

其实这个问题也是之前一个兄弟问我的,我当时只是简单的回答了一下

后面想了想,觉得还是值得去好好总结分享一下

所以这里我就把这差不多两年写作时间里踩过一些坑和一些经验,总结成了一些小小的心得分享给大家

也算为一些想要写技术文的兄弟提供一点小小的帮助

整篇文章我会分成写作前、写作中、写作后三个大方面共16个小点来跟大家分享

公众号:三友的java日记

写作前

1、选题

首先在写一篇技术文之前我大概会了解自己想写什么内容,也就是选题,这一点很重要

在选题的时候,我会思考下面几个问题:

  • 这个选题能为读者带来什么价值,有没有可写性
  • 大概写到什么程度,深入还是简单的剖析

而选题的灵感我一般来自于以下几个方面:

  • 日常工作中所遇到的问题
  • 日常学习之后的一些总结
  • 一些兄弟提的问题,就比如这篇
  • ...

2、查资料

有了选题之后,我会对这个选题所涉及到的技术点进行充分的了解

比如我会通过以下途径去查找资料:

  • 书籍
  • 一些技术网站的博客
  • 开源项目的官网
  • ChatGPT
  • ...

除了这些,如果涉及到源码相关的东西,我都会亲自再翻一遍源码

而在这个过程中,其实我可以学到很多东西

比如重新翻源码的时候,我会发现了一些我之前可能没注意的细节

又或是一些我之前没弄懂的问题突然就找到答案了等等

还加强了对一些错误信息的判断能力,比如ChatGPT,有时就有一些莫名其妙的错误

所以写文章本身也是一种学习的方式,这也是我一直坚持写文章的一个非常重要的原因

3、内容注意闭环

所谓的闭环的意思就是需要成体系的去写文章。

比如说,你在说讲一个核心的主题的时候,这个核心的主题一定包括一些相关的主题

而这些相关的主题就可以被拆分成不同的子模块,并且可以放到文章的前部分去讲

再讲每个模块一定要讲清楚这个前因后果,核心作用,尽可能详细

最后再把所有的模块进行整合,再来讨论文章的主题

这样文章的内容就成体系,也就成功闭环了。

4、列大纲

当做完上述步骤,在写之前我会列一下本文大致的大纲

列大纲非常重要,主要有一下几个原因:

  • 梳理好文章的思路,先写什么再写什么,保证全文的前后连贯
  • 减少写作时间,由于已经有大纲,所以就知道每一步需要写什么了
  • 减少不必要的修改,列大纲可以保证良好的文章结构,大大减少后期修改的必要
  • 保证内容完整,通过大纲可以检查是否覆盖了全部的文章内筒,确保不会遗漏重要的信息
  • 提供指导,当你在写作过程中迷失时,大纲可以提醒你接下来需要写什么

列大纲就跟平时写代码一样的,先写思考技术方案然后再写代码实现,而技术方案可以就是认为是大纲

5、找一个充裕的时间点写

当前面所有的东西都搞定之后,需要找一个时间充裕的时间来写文章

因为集中时间来写可以保证你的整个协作思路是连贯,这样写起来也比较快,写出的文章就比较连贯

我一般周一到周五都不写文章,统一都放到周末来写,因为没什么事,时间比较充裕

写作中

当你前面所有的准备事都完成之后,那么就可以动手来写了

不过再讲写作中注意的事项之前,这里我先推荐一个在线写作网站

editor.mdnice.com

网站是基于md语法来的,而且提供了很多精美的主题,很多公众号博主,包括我自己都在这个网站上写文章

写完之后只需要通过cv大法或者一键就可以把文章(包括主题),直接复制到其它平台,非常的爽!

ok,继续进入主题

1、语言精练

写作过程中第一点就需要注意语言的精练,通俗易懂,尤其是不要有大段的文字

试想,如果你看一篇文章一上来就是一大段文字,那么你还会看下去么

我想大概率不会,毕竟现在是一个快节奏的时代,很少有人能面对大段文字还能耐心地看下去

我在写作的初期也很容易写出一大段文字

后面当我遇到这种情况的时候,我就尝试对大段文字进行优化

比如,我会首先尝试先删除一些可有可无的文字

之后尝试通过列举的方式把大段文字来列成一项一项的

还可以通过多换行的方式,比如一句话就换一个行,让文章看起来就没那么挤

2、少写概念

在文章中尽量少写概念性的东西,能不提就不提

因为对于读者来说,如果他们阅读过程中发现了很多概念性的东西

而这些概念性的东西恰恰又是他们不懂的,那么此时就坏了

他们大概率就可能会产生抵触的心理,甚至就直接不看了

所以,尽量少提概念,如果真的需要提,记住,一定尽量用白话去解释清楚

我一般都会通过类比的方式去解释,帮助读者更好地理解概念

3、多配图

在写文章过程中记得多配图

有时一大段文字可能都描述不清楚的东西,一张图就可以随便搞定

所谓一图胜千言就是这个道理

所以我在我的文章里都会手绘大量图,帮助读者更好地理解文章

同样地,这里我推荐两个画图工具

processon是收费的,我在前期写文章的时候,画图基本上都是通过processon来的

但是后来我了解到了draw.io,觉得好像画图还挺好看的,并且是免费的,后面就用这个了

4、多举例

在咱技术圈中流传这么一句话

Talk is cheap , show me the code !

从这可以看出举例说明其实挺重要的

所以经常读我文章的兄弟会看到这么一句话

举个例子

我基本上都会列出一些代码来帮助我佐证一些观点

5、划重点

划重点在写作过程中也是比较重要

因为一篇文章比较长,说的东西也比较多,读者有时很难抓住一些细节,或者说是重点

尤其是当上下文有关联的时候,记得做进行一些强调、提醒操作

比如说可以用如下的字眼来描述

后面有大用、非常重要

这样当后面再提到这个点的时候,读者就会有映像,也就更容易看下去

6、小总结

当写完一个小模块的东西的,如果这么模块的东西相对来说比较复杂

那么此时就可以值得去做一个小总结

小总结可以列举这个模块所讲的知识点以及这些知识点各自的作用

或者通过画图的方式把所讲的知识点串联起来

让读者明白这一节大致讲了哪些核心的内容

7、尽量幽默

在写作的过程中,文章让人看起来尽量幽默

比如可以弄点表情包,写点段子,彪点英文,来个中西结合,加个梗之类的

这样就可以使得技术文章有趣味性,读起来不那么枯燥无味

但是注意要适当啊,不然可就会物极必反了,毕竟技术文还是以内容为主

这一点其实虽然我一直在尝试再做,但是做得还不理想,后面争取做的更好吧

写作后

每当我写完文章之后,我都会从头到尾多读几遍自己写的文章

在这个过程中,我主要是做以下几件事

1、整理排版

好的排版可以抓住读者的眼睛

整理排版主要包括一下几个东西:

  • 标题的级别做到统一
  • 适合的副标题
  • 适当的换行
  • 重点的突出
  • ...

2、改错

一篇文章有错再正常不过了,俗话说的好

人非圣贤孰能无过

所以我们在读的过程中要去识别错误

比如错别字,标点符号等等

当然还包括一些技术点描述的错误

我们要尽可能的去寻找这些错,改正,让文章尽可能没有错误

3、尝试再精练

前面在写作中的时候我已经提到要精练语言

但是在文章写完之后,我们还可以再尝试精练整篇文章

因为此时你可以站在整篇文章的角度去思考有些文字是否可以再精练,甚至有的文字是否有留下来的必要

我经常发现,写的有些东西并不是文章的主线内容

这部分内容直接被删除之后,对于文章的阅读和理解并没有什么实质性的影响,尤其是一些概念性的东西

4、总结标题

最后,根据文章的内容去总结出一个合适的标题,尽量做到见名知意

最后

前两天我翻了一下早期写的文章,当时觉得写得还不错的文章,现在看起来真的是惨不忍睹

光是看到格式,就觉得low得不行

而现在的文章,我基本上就是按照上面提到的那些点来写的

虽有不足,但是好歹也算上了摸着了正确的路,一切都在朝着好的方向法发展

最后,既然都看到这里了,不如点个赞再走吧~~

往期热门文章推荐

如何去阅读源码,我总结了18条心法

如何写出漂亮代码,我总结了45个小技巧

三万字盘点Spring/Boot的那些常用扩展点

三万字盘点Spring 9大核心基础功能

万字+20张图剖析Spring启动时12个核心步骤

1.5万字+30张图盘点索引常见的11个知识点

两万字盘点那些被玩烂了的设计模式

相关推荐
虾球xz5 分钟前
游戏引擎学习第61天
java·学习·游戏引擎
CodeClimb5 分钟前
【华为OD-E卷-租车骑绿道 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
梓沂7 分钟前
idea配置gitee仓库
java·gitee·intellij-idea
CodeClimb8 分钟前
【华为OD-E卷-MVP争夺战 100分(python、java、c++、js、c)】
java·python·华为od
大大怪将军~~~~17 分钟前
SpringBoot 入门
java·spring boot·后端
编码浪子19 分钟前
Springboot3国际化
java·spring·mybatis
HUNAG-DA-PAO27 分钟前
Spring AOP是什么
java·jvm·spring
带刺的坐椅30 分钟前
Solon v3.0.5 发布!(Spring 生态可以退休了吗?)
java·spring·solon
怒码ing33 分钟前
Java包装类型的缓存
java·开发语言·缓存
Roy_Sashulin1 小时前
Sashulin升级啦,开箱即用!
java·中间件·sashulin