写小说和编程,都要将字符拼凑到一起。
小说里,有人物和情节;代码里,有数据和算法。
下面看看大佬的经验之谈,会发现相似的地方。
1、什么更重要?
人物 or 情节 ?
创造人物是小说家的第一项任务。把一件复杂热闹的事写得很清楚,而没有创造出人来,那至多也不过是一篇优秀的报告,并不能成为小说。
人物的创造是件最上算的事。
老舍. 我怎样写小说[M]. 文汇出版社, 2009.
数据 or 算法 ?
数据压倒一切。如果已经选择了正确的数据结构并且把一切都组织得井井有条,那么,正确高效的算法也就不言而喻。
编程的核心是数据结构,而不是算法。Raymond E S. UNIX 编程艺术[J]. 2006.
村上在《海边的卡夫卡》的序中也说:
总而言之,人物>情节;数据>算法。
我说,应当先写简单的故事,好多注意到人物的创造。
试看,世界上要属英国狄更司的小说的穿插最复杂了吧,可是有谁读过之后能记得那些勾心斗角的故事呢?
狄更司到今天还有很多的读者,还被推崇为伟大的作家,难道是因为他的故事复杂吗?不!他创造出许多的人哪!
老舍. 我怎样写小说[M]. 文汇出版社, 2009.
表示原则:把知识叠入数据以求逻辑质朴而健壮。
即使最简单的程序逻辑让人类来验证也很困难,但是就算是很复杂的数据,对人类来说,还是相对容易地就能够推导和建模的。
数据比编程逻辑更容易驾驭。在复杂数据和复杂代码中选择,宁可选择前者。在设计中,你应该主动的将代码的复杂度转移到数据中去。
Raymond E S. UNIX 编程艺术[J]. 2006.
原因似乎挺简单:人的脑袋更擅长记忆人物而非情节,更擅长理解数据而非逻辑。