前言
合抱之木,生于毫末;九层之台,起于累土,千里之行,始于足下。
正文
写作价值
传递和分享技术
前人栽树,后人乘凉。 在日常开发和运维工作中,开发人员往往会借助大量的手段学习、分析、解决问题,比如:官方文档、开源社区、技术博客和公司内部论坛等。
通过写作技术文档、技术文章,可以在技术圈子传递和分享自己对一个技术的 认知 和 经验总结,接受反馈、相互学习,加强对技术的探讨和升华。通过他人技术文章解决问题的同时,我们也应该学会 反哺。
打造个人影响力
一篇实用的技术原创文章,可以为自己带来大量的读者,可以发掘和提高个人包含技术在内的能力,大幅提升个人的 影响力。
- 写作好的技术文章可以提高自己在 行业、公司内部 的影响力,为行业或公司 沉淀知识体系。
- 持续输出高质量的文章可以 打造个人流量,帮助他人的同时 获取流量 和 知识付费变现。
提高个人总结能力
写作对个人的专业水平和综合能力是有一定的门槛的。正所谓技多不压身,除了基本的编程开发能力,开发人员还应该具备一些其他技能:
- 技术学习能力:擅于学习新的技术,总结规律、形成自己的学习体系和知识库,对任何新技术都能快速上手、举一反三和融会贯通。
- 文档沉淀能力:学而时习之,由于技术和知识体系过于庞大,需要定期进行总结和归纳,形成自己的知识备忘录,加深对技术的理解。
- 问题排查能力:将线上疑难杂症的分析解决能力以文档、博客的方式总结,方便后续遇到同类问题时能够快速分析、定位和解决。
写作障碍
从0到1:从没写过到写过
万事开头难,技术写作也是一样,通常迈出第一步是最难的,这个阶段的核心是 突破自己内心的障碍。这时的障碍主要来自两方面:
- 个人内容方面:担心自己的文章 描述有误、内容不足 以及 深度不够。
- 他人观点方面:担心比自己厉害的人笑话自己写的 文章不好,无法解答他人提出的 疑问。
有这两方面担心很正常,当然这两方面的担心其实也都好解决。
- 个人内容问题:
明确定位文章的 面向群体,面向初级、中级、高级、TL 还是技术总监,内容高度是有很大区别的。不同岗位、不同职级的人本身对 文章层次 的需求相差甚大,并不是高度越高就越好。
- 他人观点问题
一定有很多比我们厉害的人,那么这些人会带着什么心态去看这些文章呢?
首先可以明确不是带着批判的心态,其次他们可能也希望通过文章去补充自己,看看是否有新观念、新想法的出现。即使不符合他们的胃口,比如讲的内容自己可能做得更好,他们会很快关闭去看其他的,而不是继续浪费时间。当然,还有一种可能,他们可能并 不会打开。总之,这方面也没有什么可顾虑的。
从1到N:从不想写到主动写
迈出第一步之后,接下来这个阶段的核心是 持续积累、总结 和 输出。
不积跬步无以至千里。要写出 高质量 的文章,需要不断地 积累素材 和 总结经验,最后通过文字表达出来。先说下积累和总结,这个分 积累素材 和 系统总结:
- 积累素材
在日常学习和工作中,要养成 记录随笔 的习惯,随时记录一下自己对技术的理解和思考,也包括工作实践中的 踩坑避雷 的经验总结。这个过程不限于 阅读、收藏 他人的好文章、提炼 出核心的 技术知识点,并对素材和知识点进行 标记 和 归类。
- 系统总结
当某项技术的收藏和记录 知识素材 积累到一定程度时,你对技术的 理解 和 认知 也会达到一定的 广度 和 深度。当你在工作中 应用到 这项技术,将理论基础和实践中的 技术方案、技术调优 和 数据支撑 相结合,融入工程化实践和自己的观点,最终将知识 结构化 和 文档化,就形成了一篇 高质量 的文章。
写作方式
好记性不如烂笔头,写作不是一个作者的专职工作,日常工作和学习有很多锻炼的方式,对于程序员来说有哪些方式呢?
写代码注释
在日常开发工作中,写好代码注释也是一种好的手段。如果你的代码写得足够优秀,是不需要过多注释的,注释是对代码的一种理解的增强。
对于 复杂业务场景、公共代码库 以及 晦涩难懂 的代码,清晰的注释可以帮助其他开发人员快速理解 业务上下文 和 代码逻辑。
什么是好的注释:
- 注释应当 简短、精炼 和 清晰,避免长篇大论的说明论述。
- 告诉大家你 “为什么” 写这个注释,而不是 告诉大家这段代码 “是什么” ! “是什么” 应该交给代码本身去解释,这个最为关键。
- 注释有 时效性,持续维护 你的注释,也就是记得及时更新,与当下 代码语境 匹配。
回答技术问题
- 回复简书、掘金、知乎、51CTO、CSDN、博客园和思否等平台上他人提出的问题。
- 在 Github、Stack Overflow、官方技术平台等平台提出、回答问题。
- 在公司内部技术论坛、其他团队的技术文档下提出问题。
- 在内部代码检视时和 Pull Request 时给予合理的评论。
写技术博客
- 在微信公众号、简书、掘金、知乎、51CTO、CSDN 和博客园等平台发表技术文章。
- 在 InfoQ、51CTO、阿里开发社区等官方技术平台刊登杂志、技术博客。
- 定制自己的技术博客网站,通过内容品质、站点运营推广自己的技术文章。
- 开通个人知识星球圈子,将个人技术文章进行沉淀、整理和归档。
- 在公司内部技术论坛、技术博客发表技术博客,包含内部技术和开源分享。
写技术文档
- 利用 Gitbook、Docsify、VuePress 和语雀对某个技术领域进行长期的知识沉淀。
- 在公司内部 Confluence Wiki、WPS 文档和公司代码仓库编写技术文档。
写技术书籍
对某个技术领域有了深入和系统的学习、理解和思考,有了 成系列 的技术文档、技术博客以后,就可以考虑出版技术书籍的可能。
如果需要出版技术书籍,要先了解市面上同类书籍的内容,确定出版书籍 针对的方向、侧重点、独特性。主要的出版社如下:
- 图灵出版社
- 机械工业出版社
- 人民邮电出版社
- 电子工业出版社
- 清华大学出版社
写作技巧
拟定标题
标题是对文章内容的总结和 引导,在符合文章内容的基础上适当增加一些 趣味性,让读者有点进来看的想法。千万不要 标题 和 内容不符,也就是所谓的 标题党,这样会增加读者阅读文章时的反感。以下是一些标题实例:
- 引发好奇心
满足好奇心是人类的基本诉求之一,所以很多博主会采用这种标题,用一个比较博眼球的点来引入自己要讲的内容。
我破解了隔壁小姐姐的WIFI
我用python爬取了XXX,发现XXX
我30行python代码发现女朋友的惊天秘密
震惊了,原来xxx是这样的
我在老王电脑里发现个加密文件夹,破解后里面竟然是……
- 大厂背书
大家普遍都有一种 迷信权威 的心理,好多人都认为 大厂出品、必属精品,于是就出现了打着大厂名义来吸引读者的标签
大厂程序猿都是这么学xxx的
阿里专家总结的xxxx
字节跳动内部xxx学习资料
互联网10年老兵给你讲xxx
腾讯字节高频面试题
- 全网系列
这个和大厂背书类似,都是抓住了人迷信权威的心理,但这里没有背书的实体,而是 自我标榜。
全网最详细xxx讲解
全网最通俗易懂xxx讲解
全网最火的xxx学习资料
全网最值得收藏的xxx讲解
全网最靠谱xxx讲解
- 低门槛系列
这点借助了人急于求成想 走捷径 的心理。
看懂/学会xxx,这一篇就够了
十分钟学会xxx
看完这个你要是还不会xxx就来打我
村头老大爷都能听懂的xxx
漫画xxx
写给小白看的xxx
小白都能看懂的xxx
- 结果导向
就因为这么学xxx,我成为了别人眼中的大神/offer收割机
学会xxx,年薪百万不是梦
我通过xxx找到了女朋友
我给学妹教xxx,把她教成了女朋友
这篇文章让我轻松拿到了阿里offer
真正的牛人都是这么学xxx的
当然,金玉其外,败絮其中 的文章永远也无法长久,好的标题 + 好的内容 才是一篇好文章的标配。好标题 + 不好的内容 只会给人们留下标题党的印象,甚至搞坏整个社区环境,所以写标题有套路,但用套路也要慎重。
选定封面
封面也是一样,最好和文章相关,有条件的可以自己画,也可以用一些工具来生成,比如 创客贴、稿定设计 等,也可以是任意的图片。
- 创客贴
创客贴 是一款简单易用的 线上图形设计神器,功能十分强大,涵盖了新媒体营销、公众号运营、广告印刷、工作文档、电商、生活等多个场景。
- 稿定设计
稿定设计 是一款专为电商运营者、新媒体运营人员和作图爱好者打造的在线智能化平面设计工具。通过 简单拖拽 操作,一分钟即可轻松搞定不同场景不同尺寸的各种设计。
结构清晰
有了好的内容,还要注意文章的 结构。关于 结构,有一本 《金字塔原理》 告诉我们在写作和表达的时候,要构建清晰的结构。
对于一篇文章来说,金字塔的顶点是 中心论点 通常就是文章的 标题。围绕着这个中心论点,我们可以用 多个观点 去支撑 中心论点,如果表达的内容很多,观点还可以进一步往下细分。形成一个 以上统下、逻辑递进 的 金字塔结构。
通过这种形式写出的文章,就会显得 逻辑清晰,结构紧凑。
对于技术文章来说,我们可以考虑使用 3W2H模型 来帮助我们构建结构。比如要写一篇关于抽象能力的文章,就可以通过以下角度去说:
- What:什么是抽象。
- Why:抽象为什么重要。
- How:如何进行抽象。
- Where:抽象可以用在什么地方。
- How much:抽象到什么程度。
刻意练习
因为写的多了,练习的多了,水平自然就会提高。然而,所谓的《刻意练习》,不是 简单地重复,而是要给自己 阶段性 地设定 更高的目标,这样才会持续地进步。
迭代优化
写文章和写代码有非常多相似的地方。比如,文章和代码都需要 结构清晰。又如,好的系统不是 设计 出来的,而是 迭代 出来的。好的文章也是如此,需要不断的 打磨、修改。
很多文章都需要经过多次 反复修改,重新编排结构,补充删除信息,调整措词,直到最终发表出来。所以,重要的是要敢于去 “动笔”,不要担心一开始的粗枝大叶,万事开头难,写着写着你就有感觉了。
写作工具
俗话说得好,工慾善其事,必先利其器。最后分享一下不错的文章写作工具。
画图工具
ProcessOn
ProcessOn 是一款专业强大的作图工具,支持 多人实时在线协作,可以用于在线绘制 流程图、思维导图、UI原型图、UML图、网络拓扑图、组织结构图 等。ProcessOn 只能支持 9 张免费在线图片存储,支持多种格式的图片文件 导入导出,能够兼容不同的操作系统,不管是 Mac 还是 Windows,一个 浏览器 就可以完成画图工作。
- 价值链图(EVC)
- 常规流程图(Flowchart)
- 事件过程链图(EPC)
- BPMN2.0 图
- Venn 维恩图
- Org 组织结构图
- iOS 线框图
- UI 页面原型设计图
- UML 统一建模语言
- 高端时序图
更强大的功能,支持多标准的格式交换:
- 支持将 Visio 图转换成 ProcessOn 文件
- 支持将 BPMN2.0 文件转换成 ProcessOn 文件
- 支持将 ProcessOn 的 BPMN 图导出成 BPMN 格式文件
- 支持将 ProcessOn 的图导出成开放格式的 pos 元数据文件等
Draw.io
Draw.io 是一个很好用的 免费流程图 绘制工具。
你可以利用它绘制一系列的图表、图示或图形,包括 流程图、UML类图、组织结构图、泳道图、E-R图、文氏图等,适用于商务、工程、电气、网络设计、软件设计等诸多领域的专业绘图。它致力于成为 完全开源、免费、并且高质量的绘图软件。
软件内置了相当丰富的绘图资源,包括各类形状、图标、连接器、模板,能满足绝大大多数的绘图需求,还可以导入第三方图标资源满足更多需求,完全可以取代微软 Visio 等流程图软件。
Excalidraw
Excalidraw 是一款非常轻量的 在线白板 工具,可以直接在浏览器打开,轻松绘制具有 手绘风格 的图形。Excalidraw 基于 Markdown 语法实现绘图功能,不仅 简洁轻量,还可以和 Markdown 编辑器的工具集成,实现各种特色功能。
与 Visio 绘图相比,在 Obsidian 工具中使用 Excalidraw 绘图的优势体现在:
- 基于 Markdown 语法创建绘图,源文件简洁轻量。
- 图形源文件完美嵌入 Obsidian 笔记,支持随时编辑修改。
- 灵活的个性化设置,实现创建、编辑、管理、分享图片一气呵成。
- 手绘风格清新优雅。