程序员写好技术文章的几点小技巧
简介:其我本身并不喜欢写字,之前写的几篇文章,涉及的话题自带流量,所以阅读量多了一些,谈不上有多擅长。不过我还是分享一下我自己写文章时用到的一些小技巧吧,希望对大家有帮助。
作者 | 门柳
来源 | 阿里技术公众号
去年成为了内网技术分享平台的年度作者,受邀写一篇关于“如何写好文章”的文章。我本身并不喜欢写字,去年写的几篇文章,涉及的话题自带流量,所以阅读量多了一些,谈不上有多擅长。不过我还是分享一下我自己写文章时用到的一些小技巧吧,希望对大家有帮助。
一 最重要的是内容
和所有人强调的一样,好文章最重要的是要有好的内容,好的技术文章要让读者有益。如果你想写一篇爆款文章,但是又觉得没有内容可写,那就不要勉强了,放下笔,合上电脑,有这个时间不如去看书打游戏。
如何让自己有源源不断的内容可写?这与平时的积累有关,多阅读,多思考,多写作,真正的技巧无外乎这些。方法论层面的东西不再赘述,我重点讲几个具体的小技巧,直接“授之以鱼”。
二 优秀技术文章的特点
1 阅读量 ≠ 文章质量
有些文章标题比较吸引眼球,有些话题自带流量,有些内容的受众比较广,所以有很高的阅读量,但这并不代表文章本身的质量。
前几天无意翻到一篇《超长用户行为建模在躺平家居内容推荐中的应用实践》,我觉得写得不错,但是内容我完全看不懂,是专业领域的文章,受众不多,有上千的阅读量就已经很不错了。但是另一篇《如何画好一张架构图?》就有超过 3W 的阅读量。当然反例也有很多,就不再列举了。我自己写的几篇讲技术细节的文章,就没有讲技术对比、讨论技术发展的文章阅读量高。内容越专越细,能读下来的人就越少,但并不代表文章质量不高,反之亦然。
技术文章盲目追求阅读量和点赞数不是件好事,所以第一个小建议就是不要太关注阅读量和点赞数,写的文章对别人有用,才是最有成就感的。至于除了阅读量和点赞数以外,还有什么指标可以衡量一篇文章的好坏,欢迎大家留言讨论。
2 文章要长长长长长长长长长长长长长长长(也别太长)
我翻了几篇阿里技术公众号里阅读量较高的文章,各种话题都有,风格差异很大,但是有一个共同点:文章写得很长。这并不代表文章写了很多字就是好文章,背后的真实含义是:好文章的内容足够丰富。
内容丰富详实,这是一篇好文章的必要条件。还有一个条件是要包含真正有价值的内容,不能含太多水分。
提供一个小技巧:如果你写了一篇文章但是觉得内容很单薄,可以先当成一篇笔记存起来,等有了更丰富的积累之后再整理成文章。扩展文章内容的方法,并不是添加无意义的空话套话,而是根据文章探讨的问题延展开来。
比如说介绍自己解决的一个老大难 Bug,可能真正修改的代码并没有几行,把过程讲出来也不过寥寥几段。这时候你就可以再分析一下 Bug 存在的原因,为什么一直拖到现在,再思考一下如何避免这类问题,遇到同类 Bug 怎样快速排查。这样自己想问题的角度更全面了,文章内容也更丰富了。
比如你想介绍一项自己在学的新技术,发现自己写的东西其实就是官方文档的简化版,去重之后几乎什么都不剩了。这时候不要再继续抄文档了,把自己的思考总结先记下来,继续学习技术,持续记录新的内容,有更全面的了解之后,再写文章。
3 清晰的叙事结构
优秀的技术文章,结构一定是清晰的,有可能目录就代表了某个技术体系,或者代表了解决问题的思路。
优秀的内容 + 清晰的结构 = 好文章
能把技术问题讲清楚,就很考验表达能力,这是大部分程序员比较欠缺的。对于技术类文章,常见套路也不多,我简单介绍两类吧:
- 线性叙事,逐步推进:适用于介绍排查问题的过程、分享设计思路、介绍项目的迭代进展。
- 结构化叙事,层层展开:适用于讲规划、做总结、画大图、介绍一整套技术方案。
4 线性叙事,逐步推进
对于这类文章,读者是应该按顺序一段一段看的,写的时候脑海中模拟读者的视角来写。这类文章的小技巧就是:模拟读者视角,设定一条主线,有节奏的向前推进。和讲故事差不多,每一步的推进要有逻辑,要保持思路不要断掉。
有时候稍微加点趣味也是不错的,比如《Flutter Widget 和 CSS 布局原理 PK》这篇文章,目标是分析 Widget 和 CSS 的设计差异,我把文章写成一场比赛,先介绍参赛选手,然后分了 5 个 Round 开始 Battle,然后是 Love&Peace,最后一个 Happy Ending。
另外一篇《记一次完整 C++ 项目编译成 WebAssembly 的实践》介绍了自己尝试新技术的心路历程,先介绍背景,再分析需求做拆解,然后讲尝试了什么方案,遇到了什么坑,又继续试其他方案,最终是什么结果。读起来比较流畅。
5 结构化叙事,层层展开
除了按顺序看的,还有不按顺序看的文章吗?有的,尤其在专业的技术文章里很常见,大部分是“总-分”的结构,先讲整体框架,再分章节介绍各个部分。
比较常见的是那种总结型的文章,比如《平台建设的7大问题:蚂蚁AI平台实践深度总结》和《救火必备!问题排查与系统优化手册》,就是翻阅性质的书,可以通读一遍,也可以只看其中一段,之后遇到相关的问题,根据目录跳着阅读。
对于文思泉涌的人,可以一口气把整篇文章写完。但实际情况是,很多时间被碎片化,可能还要引用一些专业内容,可能需要查资料,写文章的过程会被中断。这类文章不是一口气写完的,是先搭架子再填充完整的。其实写起来也很简单:先想好标题,再划分好目录结构,再一段一段的填充内容,最后再润色一下连接部分。文章可以不按顺序看,也可以不按顺序写。
我自己写的《关于浏览器、Weex、Flutter 的比较和思考》这篇文章就是先划分好了目录,再一点一点填充的,写文章的时间跨度也比较长,想起来一点写一点。
线性叙事是个链表,结构化叙事是树。
三 提升写作技巧
我初高中的时候比较喜欢看闲书,偶尔自己写点东西,但是我作文考得并不高,这里大言不惭地聊一下怎么写作文吧哈哈哈哈哈。只讲怎么写技术文章,并不能提升任何文学功底,但说不定能帮你避开一些小坑。
1 碎片化记录,结构化整理
大部分人的问题是不知道该写什么,即使已经有足够的积累,有明确的话题要写,也不知道该如何下笔。这就要靠日常的积累了。
在平时工作的时候,可以建个文档库,把日常的一些琐碎的想法记录下来,随时写随时存。我是用手机的便签 App 随手记东西,比较喜欢它的语音转汉字功能,工作相关、生活相关,随时随地想起任何话题都可以记录下来。
在有了明确话题,准备写文章之前,先把各种碎片化的记录收集起来,形成一份“素材”文档,然后梳理文章脉络,把素材应用进去。操作起来很简单,刚开始的时候会遇到前后不通畅的问题,那就不要直接复制素材的内容,重新换个表达方式写出来。多练习练习就好了。
2 刻意练习,先写再改
有了素材之后,平时可以专门练习写作能力,先写一小段话,明确的描述一个观点,然后不断修改。其实写周报就是一个很好的锻炼机会(现在不要求写了,自行练习),练习把做的事情描述清楚,说话的方式简单点,不要用太多高大上的词汇。最关键的部分在于:写完花五分钟再改一遍!读一下是否通顺,有没有把问题讲清楚。反复修改才是提升写作技巧的关键。
用周报举例有点奇怪,毕竟是邮件类型的东西,和写文章差别很大,还是不要乱改周报了,改自己以前写的文章吧。找一篇自己以前写的,内容很不错但是写得不太行的文章,重写一遍!这个过程既温习了技术,又锻炼了写作技巧。不要觉得无聊浪费时间,亲测很有效的。
3 注意排版和语法细节
对于不拘一格的程序员来说,写出来的文章没有排版,就是家常便饭。不需要追求高级的排版技巧,稍微注意一下几个常见的问题就好了。
正确使用标点符号(没想到我居然在讲这个……)
大部分的文章里就只有逗号和句号,逗号和句号也是看心情随意划分,键盘上按到哪个是哪个。其实还有单双引号、顿号、冒号、分号、叹号、破折号、省略号、书名号、中文括号「」【】等等…… 使用方法可以去网上搜,这部分我觉得问题很常见,就单独多讲了两句。对了,中文文章要用全角标点符号,尽量不要混用英文标点符号。
添加多种展现形式,可参考 GitHub 的 Markdown 语法
如果全都是普通段落,看起来太平,可以加上无序列表、有序列表、段落引用、表格等等。行内排版可以加上粗体、斜体、代码标记等,偶尔还可以用删除线。
其他还有一些小的建议:
- 区分大标题小标题,分配的均匀一些,最多不要超过三层。
- 每个章节的长短也尽量均匀一些,太长的内容就拆个小标题。
- 重要数据给出明确的数据源,扩展信息给出资料连接。
- 中英文混写的时候,在中间加一个空格。
- 注意英文的大小写,尤其是专业名词的缩写。
- 英文喜欢长句,复合从句一层套一层;中文追求言简意赅,错落有致,可以多加标点符号,把长句分隔开。
- 写完之后通读一遍,尽量少写错别字……
最后一个小技巧:多用图片。即使图片里只有文字,信息量也远超文字。
然而我这篇文章并没有加很多图片,因为这并不是一篇技术文章,大家在讲技术原理的时候要多用图片,一图胜千言!
四 写在最后
最后一个小建议:文章写多了就可以逐渐形成自己的风格,让所有文章都保持某种共性。
比如我每篇文章最后都会发招聘信息!
欢迎优秀的你加入淘系技术部-跨平台技术团队!一起打造靠谱的跨平台方案。这里有手淘核心链路在使用的 DinamicX、淘系的 H5 容器、Weex、淘宝小程序容器。淘系的基础架构、研发支撑是隔壁的兄弟团队,我们在广泛的支撑新零售的业务。技术深度足够深,业务场景足够丰富,欢迎优秀的小伙伴来一起搞事情,手淘跨平台技术团队欢迎你的加入!(请联系 hanks.zh@alibaba-inc.com )
原文链接:https://developer.aliyun.com/article/783387?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
程序员写好技术文章的几点小技巧相关推荐
- 程序员写好技术文章的几点小技巧,简述java内存模型面试
开头 该文档在Github上收获5K+star的Java核心神技(这参数,质量多高就不用我多说了吧)非常全面,包含基础知识.Java集合.JVM.多线程并发.spring原理.微服务.Netty 与R ...
- 程序员求职高峰期,这12条工作小技巧必看
过完春节,该拿的奖金都拿了,又到了一年一度的离职高峰期,新老手程序员纷纷走上了求职之路. 今天给所有程序员提12条工作小技巧,让你在新工作上越做越顺. 1.写文档的能力非常重要 像Spring,hib ...
- 身为程序员别再无脑学习撩妹小技巧,这篇聊天基础先记牢!
别再无脑学习撩妹小技巧,这篇聊天基础先记牢! 干货 作为一个曾经的话题废,十分理解各位的心情,这篇文章希望可以帮助所有在聊天和社交上有问题的朋友. 这是一个真实写给聊天小白的科普文. 全文分成四个阶段 ...
- 经验丰富程序员才知道的15种高级Python小技巧
本文将介绍15个简洁的Python技巧,向着简洁更高效,学习易懂出发. 目录 1.通过多个键值将对象进行排序 2.数据类别 3.列表推导 4.检查对象的内存使用情况 5.查找最频繁出现的值 6.属性包 ...
- 每个程序员都要知道的35个jQuery小技巧
1.禁止右键点击 $(document).ready(function(){$(document).bind("contextmenu",function(e){return fa ...
- 程序员写简历时的技术词汇拼写规范备忘录!
写在前面 每年这个时候又到了求职的旺季. 求职前,我们都会花很多的时间在自己的技术水平提升+笔/面试的准备之上,但往往却忽略了找工作第一步所需要的一个严谨且靠谱的简历.而程序员写简历,第一步就是需要注 ...
- dba的前景_运维、测试、程序员,这些技术岗位哪个更有前景?
在一个初具规模的互联网公司,从业务方面出发,有很多岗位类型,比如运营.客服.市场.产品.设计.技术等等. 在这些大类下面,还要细分各种小类,以技术为例,可分为前端(客户端).后端.测试.运维.DBA等 ...
- 如何写好技术文章(看张鑫旭老师的直播总结
大家好,我是若川.持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12 参与,每周大家一起学习200行左右的源码,共同进步.同时极力推荐订阅我写的<学习源码整体架构系列& ...
- 对标阿里P6-P7高级Java程序员的进阶技术路线
最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面试只不过是一种验证而已(注意,是验证,而 ...
最新文章
- ROS系统实现 tf坐标系广播与监听
- javaweb k8s_阿里云部署K8Sweb项目
- HDFS概述(5)————HDFS HA
- rabbitmq 不同的消费者消费同一个队列_RabbitMQ 消费端限流、TTL、死信队列
- rust如何进枪战服_rust手机版
- iPhone SE 3渲染图曝光:还是熟悉的味道
- C++中使用剪贴板复制UNICODE/ANSI字符数据
- WinCE偶尔不能正常启动(内存清理)
- Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
- arduino相关知识点思维导图合集
- 马云创业过程中的10次失败(转)
- ignite mysql 持久化_2 ignite关键特性
- linux的steam运行游戏,桌面应用|如何使用 Steam Play 在 Linux 上玩仅限 Windows 的游戏...
- 提起海洋和通海水域污染损害赔偿诉讼主体的几个层面
- 课程设计---族谱管理系统(c++)
- log4j2远程执行漏洞原理以及解决方案
- 一个强悍而优美的Android视频播放器
- 微信公众平台-测试号-测试接口的问题
- 孩子不是绑架婚姻的借口
- 鸿蒙之主的武器,别具心意 全门派T8武器赏析
热门文章
- 播放器常用手势操控封装GestureView
- C语言----周末舞会
- 最新织梦全国多城市分站地区插件dedecms分站网站源码插件
- lwIP 2.1.x 主要更新详情
- 计算机专用广告语简单易懂,便携式电脑广告语、宣传语
- MyEclipse搭建Web Service项目
- 源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
- Spring MVC关于源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。
- 计算机被限制无法打开C盘,Win7系统设置C盘提示"本次操作由于这台计算机限制而被取消"方法...
- 帆软之大学毕业生拍照管理系统