写作是人类的超能力--如果写得好,它能提供信息、激发灵感和娱乐。也许这就是为什么博客在程序员中如此流行的原因。我们是一个天生好奇的群体,分享知识是我们精神中不可或缺的一部分。
对于读者来说,好文章的好处是显而易见的。当作者花时间准备一篇高质量的文章时,知识就会从一个头脑无缝地流向另一个头脑。不过,我会争辩说,对作家来说,好处可能更大。写一篇好的技术文章需要深入的研究、仔细的思考和大量的实验。换句话说,作者必须先掌握主题,然后才能写作。
仓促发表的文章吸引的读者很少,提供的信息更少。所以让我们花几分钟时间来思考一篇好文章是什么样子的,以及我们如何才能生产出更多的好文章。
技术博客作者倾向于专注于他们工作的技术方面-通常是以牺牲他们的写作为代价的。别掉进这个圈套。技术写作就是写作,所有的标准规则都适用。这里是其中的几个。
言简意赅。短句比长句好。段落也是如此。你的目标是告诉你的读者,而不是让他们不知所措。让事情变得简单。
要有明确的目标。你文章中的每一件事都应该朝着同样的目标努力。避免与主题无关的切线。如果切线很有趣,请将它们保存到以后的文章中。
找出你的论点。所有好的写作,包括技术写作,都有论据。参数可以是“此设计模式有用”或“此功能按以下方式工作”。如果你不确定你的论点是什么,退后一步,在继续之前确认一下。然后,你可以通过提出适当的证据,围绕论点来撰写你的文章。
语法,语法,语法。标准的语法和拼写使散文清晰易懂。这在所有写作中都很重要,包括技术写作。打字错误和语法错误可能看起来并不重要,但当读者发现它们时,就会削弱你的信息。
无情地编辑。作家可能犯的最大错误是未经编辑就发布。几乎可以肯定的是,你的初稿太长、太乱,或者错误百出。花点时间编辑你的文章,在删减不必要的材料时要积极进取。
与任何类型的写作一样,科技写作必须吸引并保持读者的注意力。仅仅提供事实和数字是不够的。你需要说出读者的兴趣,并证明你的文章值得他们花时间。好的写作是做到这一点的最好方式。
技术写作可能只是写作,但这并不意味着它不是独一无二的。如果您正在撰写关于技术主题的文章,那么使用该领域的示例是很自然的。对于程序员来说,这意味着使用代码片段。当然,编写代码本身就是另一种编写!这意味着我们早先的许多规则仍然适用。
当您演示代码片段时,请尝试与您的读者产生共鸣。你的片段清楚了吗?它是否直接针对您的主题?它是否引入了不必要的复杂性?让我们看一个例子。假设您试图解释映射函数在Python中是如何工作的,并且您起草了以下代码片段。
这段代码可以工作,而且它确实利用了MAP,但是在其他方面很难理解。函数和参数名称是无稽之谈,lambda函数的使用不必要地复杂,并且代码段没有特殊原因地使用一流函数。重点是让读者了解地图的功能--不要将它们与相关但切题的主题混淆。这里有一个更好的版本。
在这个版本中,意图要清晰得多。Map函数是代码段的核心,变量名有意义,并且没有分散注意力的切线。在不必要的时候抵制使用高级功能的诱惑。您的目标应该是起草简单而直接的示例,不要被无关的内容弄得模糊不清。
不过,有时候,清晰的代码是不够的。您的代码片段也需要有趣。例如,以下面的片段为例,它说明了类继承的概念。
这段代码本身没有任何错误-它清晰、简洁,并且集中在我们感兴趣的主题上。唯一的问题是它不是特别引人入胜。汽车的例子被广泛使用,感觉有点乏味。我们再试一次。
收据示例可能很平凡,但感觉像是您作为开发人员可能会实际做的事情。从这个意义上说,它比汽车的例子更相关。主题可能很无聊,但至少它是真实的,因此是相关的。
相关性是帮助读者与您的片段建立联系的一种方式,但不是唯一的方式。不要害怕使用一点奇思妙想。既然你可以写星际飞船和恐龙,为什么还要写交通工具和动物呢?发挥你的想象力!为您的代码片段选择引人入胜的原创示例将保持您的读者的注意力和兴趣。
现在,您已经有了一篇写得很好的文章,其中包含深思熟虑和引人入胜的代码片段,但是仍然有一种方法可以让您彻底失败:糟糕的表示。文章的视觉设计提供了结构,并控制主题如何相互流动。如果你不注意,你的话可能会被笨拙的设计所掩盖。
大多数博客平台都有丰富的设计功能,无论是斜体、代码突出显示、项目符号、副标题还是图片。利用这个功能--它可以帮助你设计一篇视觉上有吸引力的文章,吸引读者,而不是把他们推开。
好的视觉设计应该干净实用,带有些许风格。不过,按照惯例,我们的简明原则是适用的。没有必要在你的文章中散布不必要的图片或图表。一点点就能走很长一段路。当您决定使用非文本元素时,请慎重考虑。视觉元素和文本一样是你文章的一部分,应该给予同等的关注。请考虑下面的代码片段,这是一篇关于搜索算法的概念性文章。
Def binary_search(Items,target):Left=0 right=len(Items)-1 While Left<;=Right:MID=(Left+Right)//2 If Items[MID]==target:如果Items[MID]>;target:Right=MID-1 Else:Left=MID+1 Return False Company_Languages=[";C++";,";Clojure";,";JavaScript";,";Python";,";Ruby";]Candidate_Language=";Python";IF BINARY_SEARCH(COMPANY_LANGUAGE,CADIDATE_LANGUAGE):PRINT(f";我们也使用{CADIDATE_LANGUAGE}!";)否则:PRINT(f";您愿意学习另一种语言吗?";)。
不是很吸引人吧?内容很好,但缺少语法突出显示会让人分心,而且单调乏味。
好多了!这是一个很小的改变,但会带来更愉快的视觉体验。这也表明你在花时间考虑细节。如果你用语法突出显示这类简单的东西来考虑细节,那么读者就会知道你在文章的内容中也考虑了细节。
写作很难,但也很快乐。对于一个作家来说,把你的想法写在纸上是非常令人满意的。在这个过程中,你不仅可能学到一些新的东西,你的读者也可能学到一些新的东西。你写得越多,你得到的快乐就越多。
对于技术博客写手来说,冒名顶替者综合症一直是一个令人担忧的问题。不管你学了多少,总会让人觉得别人知道得更多。不过要记住,你不是在写教科书。你在为你自己写作。你应该努力做到准确,并做足够的研究和测试来证实这一点,但归根结底,你仍然是一个业余爱好者。这没什么大不了的!
好的写作既是关于教学的,也是关于学习的。如果你对一个话题感到好奇,甚至被它弄糊涂了,你能做的最好的事情就是写下它。这一过程将迫使你在此过程中不断学习。
与编码、数据或工程一样,写作是一项需要练习的技能。但数量并不一定意味着质量。不要以多产为目标--要以深思熟虑为目标。所有的写作,无论是技术上的还是其他方面的,都是非常个人化的。它向世界表明了你是谁,如果你花时间做对了,读者会注意到的。