小数乱谈 | 编程即写作,谁说程序猿不是作家呢?

都是以“码字”为主要工作内容,作家和程序猿却仿佛走向了两个极端,但小数觉得除了使用语言的不同之外,作家与程序猿并无太大的区别。或许你在看完本文后,会觉得“C++作家”、“Java作家”、“中国汉语程序猿”也是不错的名称呢。

PS. 小数给大家推荐本书《编写可读代码的艺术》,让我们把代码写得更优雅!

程序猿&程序媛通常给人的印象都是缺乏沟通技巧、过于讲究逻辑的宅男,而狂放的作家则往往是有着数学恐惧症、喜欢天马行空的一群人。然而事实是,他们有的时候却惊人的相似——

写作和编程从根本上来说都是需要长期创新的领域,他们都以一个美好的、着眼于解决人类问题的愿景开始,希望结束时候能够达成这个愿景,他们都需要一个编辑的过程来实现它。

那么相似之处在那里,值得一探究竟。

白天黑夜的码字时间

程序猿和作家都是深夜加班的常客。

对作家来说,往往夜晚才是属于他们的时刻。一杯茶沏好放在手边,神思泉涌奋笔疾书。停笔抬头之时,天已露白,茶早已凉。

而程序猿夜生活的原因则有些不同。项目Deadline有如一道加班符,牢牢地贴在每个程序猿的头上,尽管早上依旧要来上班,然而夜深时分,他们依然奋斗在公司电脑前。不过这种加班也是充满激情的,为什么bug越来越多,为什么卡在这里运行不了,我觉得我可以这样试一下……

从想象中开始码字的一天

作家在开始写作前,都会有一个思路——对文章立意和框架的构思。我要写一篇言情还是科幻还是武侠,我要塑造怎样的主角和配角,我要怎样设置一波三折扣人心弦的情节?

而程序猿拿到项目的时候,也会有同样的思考——小到每一段代码的结构,大到整体架构的搭建,都需要程序猿有充分的构思。程序猿也是充满想象力的,所以才有了改变我们生活的各种科技产物。

所以美好的一天,让我们从充满想象力的构想中开始吧!

重构=编辑

“在用心地写完初稿后,重写你的开头。”——詹姆斯•埃里森。

经过了最初的想象与夜以继日的加班之后,作家与程序猿都完成了他们的第一阶段工作,拿到了初稿。

接下来作家需要对初稿进行编辑,精炼语句简化文章,使之更加清晰易读。

而程序猿则投入进与bug无休止的斗争当中。牵一发而动全身,一修改激起千般报错,也是时常发生的事情。

这时程序猿的工作可以称之为代码重构,而作家的编辑也与之类似。因为距离最初的创作已经过去了很长一段时间,所以他们可以用一种新的目光来审视手中的作品,颇有些二次加工精益求精的味道。

流程,流程,还是流程

同事和QA是创作过程中非常重要的组成部分。相互交流探讨对于激发灵感和想象是非常有好处的,所以作家喜爱聚会喝茶聊天,而程序猿结对编程也愈加流行起来。

职业本能和直觉也很重要,更老练的专业写手会比新手容易发现更深层次的错误和机遇,在编程领域这叫做“代码味道(code smell)”。

新流派与新技术

每过一段时间,文学界总会冒出一个新的流派——伤痕文学,反思文写,80后创造,打工文学等等,此消彼长,总会在一段时间内占据着一定的热度。而IT领域亦是如此,虚拟化还尚在繁盛,容器技术又在近两年兴起,初露锋芒。

容器开发者就如同新流派作家一样,享受着新技术带来的惊喜与挑战,就如同新流派作家享受着新文风带来的新感悟一样。容器开发者或许使用的语言是不一样的,不管是C/C++或者JAVA还是GO,跑在Linux或是Windows都不重要,重要的是他们有共同的理念。

相似之外的差异

这两个富有创造性的工作中有着很多相似之处,但是也有值得承认的关键差异:

编程通常比写作更实用更功利,很少有程序猿专门因为兴趣爱好而编程。

编程可以变得很美丽,但是这种美丽通常只能被其他训练有素的程序员所理解。

写作达到98%的正确率就可以没有任何负担地发布而不需要重审或者改善,而98%正确的代码意味着挂掉,需要立刻修复。

作家对于读者阅读环境的掌控力度远比程序猿要高得多。程序猿必须关注用户的设备、他们浏览器的类型等等。而作家只需要提前知道写作的格式和专注的媒体(报纸,杂志,书籍)即可。

程序猿的华丽转身

很多程序猿不认为自己具有良好的沟通技能和写作的能力,但是现在很多人已经开始重新审视自己。也许,所谓木讷的程序猿只是暂时的珍珠蒙尘,他们只是太忙了还没有来得及去表现自己另一面的优势。

而将技术思维和有效沟通能力结合以后,程序猿将会是一个强大的技术创始人,能够清晰地表达愿景并实现它。

小数在学生时代看过一本书,沈致远先生所著《科学是美丽的》。科学与人文,本就不是陌路人。只是现在能够欣赏它的美,愿意分享它的美的人,还远远不够多。乔布斯说过,他希望每个人都学习编程,因为它教会你如何思考。在这个云的时代,软件定义世界,数据驱动未来——程序猿,他们写下的一行行代码,才是构建未来的核心力量。

另外,数人云招收能把代码写得像文章一样优美的分布式系统核心开发者,简历快快丢过来吧!