极客时间已完结课程限时免费阅读

30 | 写作:写字如编码

30 | 写作:写字如编码-极客时间

30 | 写作:写字如编码

讲述:刘飞

时长13:40大小6.26M

程序员群体有个共同的弱点,那就是写得了代码,解决得了问题,但却不能很好地展现自己的能力。从今天开始,咱们专栏即进入一个关于 “展现” 的主题,聊聊(写作、画图和演讲)三类最常见的展现手段。
其中,展现的最常见形式之一就是:写作,它是一种能随着时间去沉淀的长尾展现形式。
曾有多人问起,写作除了坚持写、持续写、长期写,还有什么其他技巧么?答案是:有的。虽说我并没有上过专业的写作课,但在长期的写作过程中,我已通过实践摸索出来了一套符合程序员这种理性逻辑思维的写作技法,简言之,就是:写字如编码。
把每一篇文字当作一个需求,把写作当成在编码的过程去完成这个需求,它会非常类似于程序开发的整个过程,包括需求、设计、实现、测试和交付五个阶段。

一、需求

程序的需求,对应于写作的主题。
你之所以写程序,是因为有人给你提需求;但你业余的写作,通常就不会有人给你提相关的写作需求或主题了。所以,就需要你自己去主动寻找和发掘你自己的写作需求或主题。
对于我来说,写作主题的来源可以有很多方面:有时,是来自身边的工作和生活中的事件引发的感触;有时,是阅读过程中突然产生的启发与领悟;有时,则是曾经一直困惑的问题突然碰到或找到了答案……这些都属于灵感乍现的时刻,也是我写作主题的来源。
但只是等到写的时候去灵光一现是很难保障持续写作的主题供应的,所以为了持续写作,我很多时候在大脑的潜意识里都会考虑主题的问题,等有了灵光一闪的时刻,就随时记录下来,形成一个主题列表。这个主题列表,就有些像产品的需求特性列表了,呆在需求池里等待被 “实现”,也即,“写出来”。
所以,如果你想要持续地写作,你得养成一个习惯,也就是前面《提问:从技术到人生的习惯》一文中关于提问和记录的习惯。
随手记录的主题可能很多,但真正能写的时间和精力却有限,因此你得挑选值得写的主题。如果把每一篇文字想象成一件产品,那么定义写作的主题,就像定义产品的灵魂,你得确定一个产品的目标、定位,以及面向的读者人群。
美国作家库尔特·冯内古特说:
想一个你关心,其他人也会关心的话题来写。要记住,不论你用多么发自肺腑的情感表达,对于读者来说,除非是他们真正关心的主题,不然怎么都不会太关心,而只有主题才是读者最真切的关注点。所以,关注你的主题,而不是想办法去显摆自己的文字。
是的,一个好的主题很可能是一篇好文字的开端,毕竟如果一开始产品方向错了,实现得再好又能有多大意义呢?

二、设计

确定了本次写作的主题(需求),接下来就该进入到设计阶段了。
而程序开发的设计一般分为两个层面:

1. 概要设计

在软件程序系统的设计中,这部分内容主要是架构设计,系统或子系统的拆分、交互逻辑、边界等等。而对于写作而言,这部分对应的就是设计本篇文字的逻辑结构,换言之,即在主题确定的基础上,采用怎样的逻辑去展开主题,形成合适的衔接。
比如,我写的文章多为随笔散文类,而散文的结构,上过中学语文课的我们都知道:形散而神不散。其中的 “神”,就包括了文章的核心主题观点,以及围绕主题展开的逻辑结构、文字附着的延展线条等。

2. 详细设计

有了逻辑骨架后,就需要补充真正有血有肉的文字了。
围绕主题想表达的观点,考虑需要添加哪些支撑观点的素材,以及设计整理、引出和排布这些素材的方式。而为了让文字更有阅读的趣味,还需要有适当的故事,因为人们都喜欢读故事,而非说教,那故事又该如何切入与布局?这也是需要考虑的点。
另外,这些素材或故事又从哪里来?只能来自平时的阅读积累。大部分我们读过的东西很快就会被遗忘,所以为了在需要的时候找到合适的内容,就需要在平时的阅读时记录笔记,留下索引,必要时再根据笔记索引的关键词去搜索。
经过了编程强大且反复的逻辑训练后,对于你、我写作而言,逻辑结构的设计就不该有障碍了,其实最大的差异与障碍可能是在 “实现” 上。

三、实现

写文字和编码在实现层面最大的差异是:实现过程的技能和要求不同。
在实现技能层面,程序是用计算机语言来表达的,文字是用自然语言来表达的。计算机语言的逻辑性和精确表达能力要比自然语言强得多,自然语言是模糊的、混沌的、不精确的。因此写得一手好程序的人,不一定能写得一手好文字,因为他们需要驾驭的语言的特性完全不同。
刚开始写文章时,即使自然语言我们从小就学会了,也能熟练使用,但用它写起文章来也会有一种磕磕碰碰的感觉。就好像刚学写程序时,好不容易才能编译通过,也是磕磕碰碰的。
对于编码,编译通过的程序才算刚刚开了头,接着还会进行程序的调测,有时还会优化重构。对于写文字也需要类似的过程,毕竟一气呵成地写出一篇完美的文章,就像是个不可实现的传说。其中,代码重构中的重命名、分拆过长的函数等,就类似于对文章重新进行文字的遣词造句、润色打磨、段落分界等过程。
另外,之于编程和写作,不同的技能应用水平,实现效果就完全不同了。写过程序的都知道同样的架构设计,选择不同的语言、框架、算法和数据结构来实现,实现的技能水平要求可谓千差万别。而同样主题和逻辑结构的文章,不同文字技能水平的作者来写,高下立见。
比如,网络小说兴起之后,我也看过一些,对男主角人物的描写,多是男神化。用词无非,帅则温润如玉、玉树临风;正则气宇轩航、丰神俊朗。但太过正的角色还不行,又会加点邪气,如狂浪不羁等描述,这样更讨读者喜欢。再对比下金庸是如何描述类似这样的人物的:
这本来面目一露,但见他形相清癯,丰姿隽爽,萧疏轩举,湛然若神。
短短四组词,一个身形清瘦、风度俊爽、洒脱轩昂、目光有神却又透出一股子高处不胜寒的人物——黄老邪——就跃然纸上了。金庸用词简练而韵味深长,境界高下立判。这就是文字技能的应用水平了,就像武功招式。金庸在文字上浸淫多年,随手用出一招,自是比普通人精妙许多。
写程序和写文章,本是两种不同的 “武功”,“心法” 可以类似,但 “招式” 自不相同。而 “招式” 的积累与应用,无论写程序还是写文字,都没有什么捷径可走,只能多看、多写、多练。
除此之外,写程序和写文字的实现过程的环境要求也有类似之处:程序员写代码的时候很讨厌被人打断,需要一段能安静且专注的时间,通常 2~4 小时不等。写作也一样。所以,我经常选择在晚上夜深人静的时候进行写作的 “实现” 阶段。
这一点,不仅程序员是这样,很多知名作家也都有自己独特的写作过程要求,他们的共性都是需要一段能实现不被打扰且专注的时间。
村上春树,当他进入创作小说的写作模式时,他通常早晨 4 点起床,连续写作 5 到 6 个小时,然后会去跑上 10 公里或游 1500 米(或者二者都有)。下午就不再写作,而是读点东西,听听音乐,晚上 9 点便上床睡觉。他日复一日地保持这样的作息时间、这样的重复过程,据称能帮助其进入一种思维的深层状态。
海明威,通常是早晨天一亮就开始动笔。在采访中,他说道:“没有人打扰你,早晨凉爽,有时候冷,你开始工作一写就暖和了。你读一遍你写好了的部分,因为你总是在你知道往下写什么的时候停笔,你写到自己还有活力、知道下面怎样写的时候停笔。”他通常每天只写 500 字,而且喜欢用一只脚站着,采取这种资势,据称可以使他处于一种紧张状态,迫使他尽可能简短地表达自己的思想。
实际上,这些年写作下来,我也尝试了在很多不同的时间段,甚至分多次写完一篇文章。这里没有一定之规,你总会找到适合自己的写作实现方式。在这个过程中,你有一段专注、忘我甚至像是做梦的过程,与自己的思维深处对话。
在这个过程中,你也可能会产生意外的大脑神经元连接,获得一些更高质量的思考,灵光乍现的启发,以及更好的文字表达。

四、测试

每次写完一篇文章后,就感觉自己好像是被清空了,甚至不再想去读一遍,这时我就会把它“扔”在一边。
写作的过程中,大脑从冷的状态逐步升温,直到进入一种很热的状态,文字就是在这样的状态下自然流淌出来的。直到写完之前,大脑一直在高速运作,就像一颗 100% 利用率的 CPU,它的温度很高。写完后,CPU 终于降低了负载,但温度的降低还需要一个过程。
而对写完的文字再读一遍,进行再编辑和优化,这就像软件开发中的测试过程。但我需要在一个冷却的状态下进行,站在一个读者或编者的视角去重新审视这篇文章。所以,这个过程通常发生在写作完成后的一天或几天之后。这中间的间隔,我称之为写作后的冷却时间。只有在冷却的状态下,我才能更客观地检视自己写的文字,同时进行合适地编辑和修改,这个过程就是对文字的测试。
作为程序员,其实我并不喜欢做太多的测试工作,所以在以前我写作完,只是“履行”最简单的文字测试内容:必要的错别字、用词理解性和语句流畅性检查。和 “极客时间” 合作写专栏就给配备了专业的编辑,编辑主要会从下面几个方面进行测试或检查。
文词使用:进一步发现有时作者自己很难发现的错别字和用词的适当性、理解性问题;
逻辑结构:整体文字内容的逻辑结构,衔接过渡是否自然等;
读者感受:站在读者的角度,去考虑其感受以及能够得到的收获;
……
这就是关于文字的测试,就像一个好的测试总是能帮助开发者得到一个更好的软件一样,一个好的编辑也总是能帮助原作者形成更好的文字输出。

五、交付

完成了必要的编辑测试工作后,就到了最终的交付(发布)阶段。
写作本身是一个不断积累压力的过程,而交付之后则完成了一种压力的释放与转换。关于这一点,和菜头描述得特别精确:
写作真正的压力来自于完成一件事情的压力,你要么一开始连个标题都想不出来,要么写两段之后就不知道如何继续下去。写第一篇文章会是一次漫长而痛苦的自我挣扎,你大概有 30% 的精力花在构思内容上,剩下 70% 的精力花在自我怀疑和自我否定上。
而交付,就是发布这篇新写的文字,让它面对读者,获得反馈与验证价值。
交付一篇新的文字,就像是往这个互联网的文字海洋中扔下一滴水珠,偶尔也会激起几丝涟漪。时有读者留言、评论,或有赞,或有踩,而从作者的角度出发,交付的目的之一是希望有一些更有价值、值得思考和讨论的声音出现。
写作与文字的价值实现分两部分,写完后就完成了对自我的价值实现,而交付后才算完成了对他人的价值实现。
当你把写作拆解成了类似编码的过程,也许阻碍你写作的障碍与阻力也就变得没那么大了。如果你能编写清晰有效的代码,也就应该能写出主题结构清晰的文字。至于一开始文字的好坏,技巧的高明与否,反而并不重要,在持续写的过程中,它们会自然而然地得到提升。
方法有了,还需要找到写作的源动力,而大部分作者的源动力都来自于一颗想要表达的心;再配合一部分外部的激励机制,和相应的自律约束,才有可能持续地写下去。
最后,多说一句,极客时间上的留言质量很多都不错,如果你还没有开始写点东西,不妨从留言开始记录一些你的思考和观点,留下价值。
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 11

提建议

上一篇
29 | 偏好:个人习惯的局限与反思
下一篇
31 | 画图:一图胜千言
unpreview
 写留言

精选留言(22)

  • 公号-技术夜未眠
    2018-10-13
    峰哥将写作的步骤、方法与编程进行类比,对程序员有极强的代入感,对我而言更是醍醐灌顶。结合文章内容与平时自己业余时间进行技术写作的感受,有以下几点深刻的启发: 1 为什么要写?(why) 就是所谓的“初心”,这也是将来能进行持续写作的底层驱动力。对程序员而言,技术是本,而写作、表达、沟通等软技能是程序员能不断进阶的催化剂。让技术与写作产生并联,建立协同,相互促进是我个人写作的初心。一旦持续写作下去,您获得的不仅仅是文字。 2 写什么?(what) 长时间写什么内容基本就决定了你的写作标签。在深度上,可以在一个特定的领域精耕细作,将技能掰开揉碎讲个明白;在广度上,也可以围绕自己熟悉的领域慢慢扩展到其他关联领域,百花齐放。但是,最为关键的就是忠实自己的技术梦想,持续坚持下去,形成自己鲜明的写作标签。 3 写给谁看?(who) 同样的东西,给不同的人看,需要有不同的表达方式。程序员有很强的专业属性,我们需要在头脑里安装不同的虚拟机,结合IF-THEN的场景规则,在不同场合开启不同的虚拟机进行写作、交流与沟通。在技术讨论会上,由于参会的大多是技术人员,那么技术细节、实现方式都是可以谈的;但是,在工作总结与汇报会上,由于参会的大多是业务领域专家与领导,直接汇报成果、问题、解决措施来得更加直接。 4 如何写?(how) 著名的认知科学家斯蒂芬·平克对写作的本质有过一个描述:写作之难,在于把网状的思考,用树状结构,体现在线型展开的语句中。有一些简单的技巧,比如每一自然段的第一句话就是这段的中心思想;每一段的内容要有内聚性,遵循一定的逻辑关系,比如并列、对比等;相邻的两段之间要有逻辑关系等。这是一道坎,信、达、雅是永恒追求的目标,但是一定要以读者能看清楚、想明白为最重要的目标。 5 何时写?(when) 利用碎片时间,AnyTime、AnyWhere、AnyDevice随时写。接收到新的观点,有了新的想法,立即记录下来,平时喜欢用云笔记做这件事情。和峰哥类似,也是在夜深人静的时候,把材料同步到PC上,继续写作。而这一切,只是兴趣使然。 最后,感谢峰哥关于写作与编程类比的“五段论”,自己深受启发。
    展开

    作者回复: 嗯,作为长期写作者,你感受到了更深处🤝

    20
  • 北风一叶
    2018-12-19
    我对于写作挣扎了好久,最后得出一个观点:写就是了,持续的去写,写什么不重要,有没有人看也不重要,重要的是写下去

    作者回复: 赞👍

    7
  • 汪玉斌
    2019-01-30
    写技术文章经常写之前一股热情,觉得自己要表达的东西多么重要,写了一半发现不过如此,还没写完就不想要了。 确实像和菜头所说,写作的过程不断自我否定。能完整写一篇已经很不容易,胡老师这样极客时间做一个系列,令人不得不服。

    作者回复: 自我否定是成长的必经之路

    3
  • 刺猬
    2018-10-16
    学生时代平时作文写不出来,考试才能写出来。现在要写周报,或者公司内部分享,才觉得真的不会写

    作者回复: 考虑谁读你的周报,他们关心些什么

    3
  • third
    2018-10-11
    写作的过程,可以与写代码的过程类似。需求,设计,实现,测试,交付。 需求,对应主题 设计,分为两个部分,概要设计和填充(故事) 实现,写 测试,写完之后,要再看看 交付,发布,获得正反馈与验证价值 之前写过一年的公众号文章,拿到了赞赏资格,后来去百度当了一段时间的写手。个人对写作的想法是,动笔写,持续的写。你不能等待灵感乍现,只能日复一日的写,然后等灵感乍见你。 现在写作的话,多是在记一些笔记,写一些感想,做一些记录
    展开

    作者回复: 嗯,只要你决定坐在案头写,总能写点啥出来

    3
  • 叶玉林
    2018-10-10
    之前在CSDN写了几篇,就写不下去了,现在是在看视频或看书时理解了一个新的概念或新的技巧我就会写在幕布上,并略微拓展,感觉自己写的也轻松,随手涂鸦。定个目标,每个主题学习后重构,在重构。

    作者回复: 只要开始写,就一定会重构你的思维,过程也很重要

    4
  • 行问
    2018-10-10
    而对写完的文字再读一遍,进行再编辑和优化,这就像软件开发中的测试过程。但我需要在一个冷却的状态下进行,站在一个读者或编者的视角去重新审视这篇文章。所以,这个过程通常发生在写作完成后的一天或几天之后。这中间的间隔,我称之为写作后的冷却时间。只有在冷却的状态下,我才能更客观地检视自己写的文字,同时进行合适地编辑和修改,这个过程就是对文字的测试。 我把它概括为“延迟满足”。感觉现在很多人都是很浮躁,没有能够沉淀下来,没有能够坚持,都是向着“快钱”跑。这1、2年来,逐渐在学会并执行“延迟满足”。买手机、电子设备、写日记后的阅读、写代码、投资理财等。 学习很苦,坚持很酷。
    展开

    作者回复: 延迟满足也很有挑战的

    3
  • Franklin.du
    2018-10-19
    将写作的过程和编程的过程类比,有种豁然开朗的感觉。到现在我都惧怕写文章,以前写作文没有什么华丽的词藻,也没得到过什么肯定。总觉得没什么好写的,也许是源动力缺失吧。现在写文章以记录知识点和相关问题解决方案为主,文章只在能看懂的水平,也没想过影响他人,也没想过写系统性的专栏。写文章不是我的喜欢或爱好,但记录和总结我会一直坚持。

    作者回复: 嗯。运动不是我的爱好,但我还是会去运动下,因为我知道这是有益的

    2
  • 2018-10-11
    我从小都有写日记的习惯,在博客园也在坚持写自己博文,写一篇好的文章需要花费比较多的时间和精力,就我而言是这样的。 刚开始想写一些他人没写的东西,后来发现除了个人生活或感悟,技术总结类型的有好多都是有写的,而且有好多重复的,刚开始还想发布到首页,希望更多人看到,后来觉得留下自己的思考、总结,即是无人知晓也是应该坚持的。 在坚持中!
    展开

    作者回复: 嗯,坚持写下去💪

    2
  • 艾尔欧唯伊
    2018-10-10
    用写作来接你行自己的知识总结和输出,同时也是复习和提升。。

    作者回复: 对

    2
  • kissingers
    2020-03-28
    编码如写作,功夫在代码外,需求分析方案选择,做不做怎么做,具体代码的实现倒没那么复杂了
    1
  • June Yuan
    2019-01-12
    学习编程的时候,产生过编码可能类似写字的联想,但没作什么深入思考。您这下反过来类比,竟能说得通通透透,别有洞天。

    作者回复: 实践得多了,就发现了😄

    1
  • 百千
    2018-10-21
    一只脚站着,可能是在找平衡感,在找写作的感觉。

    作者回复: 哈😄,有可能

    1
  • 2021-11-17
    听完这章,有写作的冲动,谢谢老师。
  • Sch0ng
    2021-02-23
    看完这篇文章,有写作习惯的人会继续写作,没有写作习惯的,看完以后开始的能有几个呢
  • javaadu
    2019-12-14
    写作要考虑考虑自己的读者关心什么,就像我们平常工作的时候做汇报材料的时候要知道汇报单是对象关心啥一样
  • hinzer
    2019-12-10
    有意思,可以借鉴一下
  • 丁丁历险记
    2019-10-11
    个人感觉 帅则温润如玉、玉树临风;正则气宇轩航、丰神俊朗。兼之狂浪不羁等 但见他形相清癯,丰姿隽爽,萧疏轩举,湛然若神。 一个是java 一个是python

    作者回复: 哈哈😄

  • 严某
    2019-07-21
    在你练习写作的过程中有什么书籍参考吗?能否推荐?

    作者回复: 没怎么看过专门讲写作的书,主要是多写

  • kevin
    2019-07-13
    拿写作和编程做对比很形象,这个角度也不错,对于写作业开启了新视角的认识

    作者回复: ^_^