编程与写作

文 | 一鸣

读大学的时候我选的专业是计算机,大一下学期开始学习编程。我记得有一次,一项编程作业出了一点问题,我对其反复调试以找出错误,一直忙到凌晨四点才把问题全部解决。当时我心里兴奋难言,跟通宵写完了一部中篇小说一样痛快。那时候我就发现自己对编程感兴趣,毕业之后也找了一份程序员工作。

公司里的程序员分了两个方向,一个开发方向,一个维护方向。顾名思义,开发小组负责研发新产品,维护小组是在旧产品的基础上进行一些小改动或者修复小毛病。大部分时间里我都呆在开发组,我认为开发比维护更有意思。工作几年来,我发现自己的兴趣点在于创造,编程和写作都能给我满足感。尽管我喜欢编程这份工作,但也知道它并不是我此生最大的兴趣所在,后来我选择了更加纯粹的创造性工作,当一个小说写作者。

几年程序员工作的一些感悟和习惯可以很好地应用到写作领域。软件开发中有一个术语叫“迭代式开发”,简单理解就是先做出一个功能简单但是可以运行的系统,然后在这个可运行的系统上进行逐步扩充。有一个时期我负责一个大模块的开发,那也是我第一次接到大任务。那时我还不会采用迭代式开发,而是习惯性采用“瀑布式开发”,先把所有的细节和功能设计好,然后再开始编程实现功能。

一开始光是数据表就设计了几十个,各种设计文档写了一堆。随着设计工作一路下来,我发现那个模块组件的复杂性超出我的想象,里面复杂多变的程序逻辑也让我头大如斗。这种情况就好比工头要我建一所房子,而我却建成了迷宫,还把设计图弄丢了,自己困在里面无法脱身。主管见我被这个任务折腾得心力交瘁,没有让我跟进后面的编码工作。这是我工作几年来最大的一次失败,我一度感到羞愧郁闷。但这次失败的经历让我明白到,面对大规模任务“瀑布式开发”并不适合自己。

之后我又接了一个任务,也是一个重要的系统功能开发。这一次我就没有再用“瀑布式开发”,而尝试使用“迭代式开发”。我先提取出关键功能,并早早把它实现出来,这是一个能运行的系统。接下来,我再对总体功能进行拆分,把功能要点罗列出来,每一次只实现一个功能。在这样不断扩充之下,复杂的系统逐渐成型,实现过程也比我之前想象的要容易一些。

跟之前“建迷宫”的感觉很不一样,这一次开发的条理性清晰了很多,系统开发的进度,当前的功能状况我都能心中有数。当然,原来的一些设计跟后面的功能相冲突,也需要及时修正而付出一些时间精力。事实上,也难保“瀑布式开发”的实现过程中不会出现矛盾,而且各种设计已经确定下来,引发出连锁效应式的修改成本可能更大。最重要的是,这个过程来得舒服,还有几分实验成功的乐趣。能在工作中感受到快乐,这是一件很难得的事情。

后来我开始写长篇小说,我也不知不觉地沿用了迭代式开发的方式。在写一部小说之前,我会先设计好作品的完整性。我把作品中的一些大事件想出来,然后进行估算,如果这一部作品包含了这些事件,它的起承转合是不是完整了,以这些事件作为作品的主要剧情是不是足够好看。这些事件列表也可以理解为简单的大纲。定好大纲之后,我针对每个大事件进行写作,类似于迭代式开发中的功能扩充。创作每个大事件的过程,也是这个模式的嵌套实现:先定好事件,起承转合都安排好之后再创作正文。我之前写过一些关于大纲设计的文章,谈到大纲的一个作用就是保持作品的完整性。大纲的价值在于,在最坏的情况之下,小说的情节也能写到这个水平。

一开始我并不能把小说的各个细节完全想好,我只是先把关键事件记录下来。每一个大事件作为一次创作的完整过程:包括情节构思,写正文,修改分章。跟编程类比,相当于一个功能的开发过程,先设计再实现后测试。我发现这样的写作方式更容易保持我的创作热情,我的作品有一个逐渐成型的过程,它的进度能被我清楚感知。

作为写作新人,我也经历过全凭灵感创作的阶段。有一年我花了十个月的时间写一部武侠小说,起初想写六万字左右的篇幅。写下来收不住,结果写了差不多十八万字。而且这个写作过程常常感到痛苦,不知道接下来要怎样写,脑子里一团混乱。我隐约知道故事发展的方向,但细节毫无头绪。到了后来,我回想起这个写作过程,感觉它跟之前那次失败的编程经历差不多。总体感觉是混乱,更难受的是长期看不到尽头,不知道哪一天才能将它完成。这种挫败感一度让我创作停滞,造成恶性循环。我不知道自己会不会摸索出更好的创作方式,而目前迭代式的创作模式是最适合我的。

曾经有朋友问我,为什么从程序员转变成小说写作者,感觉这个两个职业完全没有相通的地方。这篇文章正好回答这个问题,两者确实有相通点:第一点,它们都是创造性的工作;第二点,工作过程相似,迭代模型可以适用于编程和写作。

它们之间确实也有不同的地方,我感觉最明显的一点就是对灵感的需求。编程工作在设计阶段需要的灵感比较多,实现过程所需的灵感不多。甚至,编程有很多成熟的设计模式,可以直接采用相应的设计解决对应的问题,免去自己动脑设计。编程的实现过程基本上是体力活,哪怕脑子有点累了,但还是知道工作应该怎样做下去,依然可以码字如飞。写作则不然,不管在设计阶段还是实现阶段,无时无刻都需要灵感。写作者大概都有过这样的经历,明明脑袋很清醒,但是没有灵感,想写也写不下去。

在我看来,写作跟编程最大的区别在于对待“复用”的态度。编程鼓励复用,以提高工作效率,把现成的功能和代码稍稍改一下就可以直接使用。编程者可以自己开发完整的组件,同一个组件可以用到多个项目之中。而写作则不鼓励“复用”。精巧的比喻只能出现一次,如果多次出现就会被读者批评,甚至作者惯用的高频用词被读者发现了,他们也会觉得别扭。写作者不要有“口头禅”,发现了要及时修改。有趣的情节设计也只能出现一次,用多了读者同样会反感。如果某些桥段跟另一部作品类似,更有可能被指责抄袭,这可是写作界非常严重的罪名。说到这里,可能有朋友会以网文的套路模式向我反驳。熟悉我的朋友都知道我对这种现象的态度,在此也不多作讨论了。


更多写作经验分享请点击:【写作那些事】目录
关于转载问题:请联系我的经纪人 南方有路
青春小说《晴时有风》已经上市,请大家多多支持~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,373评论 25 707
  • 在编程方法论上有个有趣的现象可以对应写作谈一谈。最早的编程方法,强调写代码前的静态分析,相当于动笔写作前要进...
    思考的蓝阅读 373评论 0 0
  • 我是个三分钟热度的人,兴致来了会非常投入的专注一件事。只是不多久激情消退后会放下,坚持不下来。唯有一件事倒是例外,...
    思考的蓝阅读 235评论 0 2
  • 随着移动互联网的蓬勃发展,技术编程和知识变现越发的成为许多人关注的话题。感觉自己没赶上一个,就是落后了。 2016...
    梦想猫阅读 709评论 2 4
  • 这里的MVC 是一种设计模式,它将应用划分为 3 个部分 : 数据(model)、展现层(view)和用户交互层(...
    七_五阅读 400评论 0 0