文 | 一鸣
读大学的时候我选的专业是计算机,大一下学期开始学习编程。我记得有一次,一项编程作业出了一点问题,我对其反复调试以找出错误,一直忙到凌晨四点才把问题全部解决。当时我心里兴奋难言,跟通宵写完了一部中篇小说一样痛快。那时候我就发现自己对编程感兴趣,毕业之后也找了一份程序员工作。
公司里的程序员分了两个方向,一个开发方向,一个维护方向。顾名思义,开发小组负责研发新产品,维护小组是在旧产品的基础上进行一些小改动或者修复小毛病。大部分时间里我都呆在开发组,我认为开发比维护更有意思。工作几年来,我发现自己的兴趣点在于创造,编程和写作都能给我满足感。尽管我喜欢编程这份工作,但也知道它并不是我此生最大的兴趣所在,后来我选择了更加纯粹的创造性工作,当一个小说写作者。
几年程序员工作的一些感悟和习惯可以很好地应用到写作领域。软件开发中有一个术语叫“迭代式开发”,简单理解就是先做出一个功能简单但是可以运行的系统,然后在这个可运行的系统上进行逐步扩充。有一个时期我负责一个大模块的开发,那也是我第一次接到大任务。那时我还不会采用迭代式开发,而是习惯性采用“瀑布式开发”,先把所有的细节和功能设计好,然后再开始编程实现功能。
一开始光是数据表就设计了几十个,各种设计文档写了一堆。随着设计工作一路下来,我发现那个模块组件的复杂性超出我的想象,里面复杂多变的程序逻辑也让我头大如斗。这种情况就好比工头要我建一所房子,而我却建成了迷宫,还把设计图弄丢了,自己困在里面无法脱身。主管见我被这个任务折腾得心力交瘁,没有让我跟进后面的编码工作。这是我工作几年来最大的一次失败,我一度感到羞愧郁闷。但这次失败的经历让我明白到,面对大规模任务“瀑布式开发”并不适合自己。
之后我又接了一个任务,也是一个重要的系统功能开发。这一次我就没有再用“瀑布式开发”,而尝试使用“迭代式开发”。我先提取出关键功能,并早早把它实现出来,这是一个能运行的系统。接下来,我再对总体功能进行拆分,把功能要点罗列出来,每一次只实现一个功能。在这样不断扩充之下,复杂的系统逐渐成型,实现过程也比我之前想象的要容易一些。
跟之前“建迷宫”的感觉很不一样,这一次开发的条理性清晰了很多,系统开发的进度,当前的功能状况我都能心中有数。当然,原来的一些设计跟后面的功能相冲突,也需要及时修正而付出一些时间精力。事实上,也难保“瀑布式开发”的实现过程中不会出现矛盾,而且各种设计已经确定下来,引发出连锁效应式的修改成本可能更大。最重要的是,这个过程来得舒服,还有几分实验成功的乐趣。能在工作中感受到快乐,这是一件很难得的事情。
后来我开始写长篇小说,我也不知不觉地沿用了迭代式开发的方式。在写一部小说之前,我会先设计好作品的完整性。我把作品中的一些大事件想出来,然后进行估算,如果这一部作品包含了这些事件,它的起承转合是不是完整了,以这些事件作为作品的主要剧情是不是足够好看。这些事件列表也可以理解为简单的大纲。定好大纲之后,我针对每个大事件进行写作,类似于迭代式开发中的功能扩充。创作每个大事件的过程,也是这个模式的嵌套实现:先定好事件,起承转合都安排好之后再创作正文。我之前写过一些关于大纲设计的文章,谈到大纲的一个作用就是保持作品的完整性。大纲的价值在于,在最坏的情况之下,小说的情节也能写到这个水平。
一开始我并不能把小说的各个细节完全想好,我只是先把关键事件记录下来。每一个大事件作为一次创作的完整过程:包括情节构思,写正文,修改分章。跟编程类比,相当于一个功能的开发过程,先设计再实现后测试。我发现这样的写作方式更容易保持我的创作热情,我的作品有一个逐渐成型的过程,它的进度能被我清楚感知。
作为写作新人,我也经历过全凭灵感创作的阶段。有一年我花了十个月的时间写一部武侠小说,起初想写六万字左右的篇幅。写下来收不住,结果写了差不多十八万字。而且这个写作过程常常感到痛苦,不知道接下来要怎样写,脑子里一团混乱。我隐约知道故事发展的方向,但细节毫无头绪。到了后来,我回想起这个写作过程,感觉它跟之前那次失败的编程经历差不多。总体感觉是混乱,更难受的是长期看不到尽头,不知道哪一天才能将它完成。这种挫败感一度让我创作停滞,造成恶性循环。我不知道自己会不会摸索出更好的创作方式,而目前迭代式的创作模式是最适合我的。
曾经有朋友问我,为什么从程序员转变成小说写作者,感觉这个两个职业完全没有相通的地方。这篇文章正好回答这个问题,两者确实有相通点:第一点,它们都是创造性的工作;第二点,工作过程相似,迭代模型可以适用于编程和写作。
它们之间确实也有不同的地方,我感觉最明显的一点就是对灵感的需求。编程工作在设计阶段需要的灵感比较多,实现过程所需的灵感不多。甚至,编程有很多成熟的设计模式,可以直接采用相应的设计解决对应的问题,免去自己动脑设计。编程的实现过程基本上是体力活,哪怕脑子有点累了,但还是知道工作应该怎样做下去,依然可以码字如飞。写作则不然,不管在设计阶段还是实现阶段,无时无刻都需要灵感。写作者大概都有过这样的经历,明明脑袋很清醒,但是没有灵感,想写也写不下去。
在我看来,写作跟编程最大的区别在于对待“复用”的态度。编程鼓励复用,以提高工作效率,把现成的功能和代码稍稍改一下就可以直接使用。编程者可以自己开发完整的组件,同一个组件可以用到多个项目之中。而写作则不鼓励“复用”。精巧的比喻只能出现一次,如果多次出现就会被读者批评,甚至作者惯用的高频用词被读者发现了,他们也会觉得别扭。写作者不要有“口头禅”,发现了要及时修改。有趣的情节设计也只能出现一次,用多了读者同样会反感。如果某些桥段跟另一部作品类似,更有可能被指责抄袭,这可是写作界非常严重的罪名。说到这里,可能有朋友会以网文的套路模式向我反驳。熟悉我的朋友都知道我对这种现象的态度,在此也不多作讨论了。
更多写作经验分享请点击:【写作那些事】目录
关于转载问题:请联系我的经纪人 南方有路
青春小说《晴时有风》已经上市,请大家多多支持~