Teaser Image

mindwind

十日画一水,五日画一石




在网上看到有个讨论程序员是否应该写作,这里的写作主要是在说写技术博客。 我个人是支持写技术博客的,不过有个前提,在能把程序写好前不要过多的写技术博客。 为什么这么说呢,写程序是程序员的本职工作,而写技术博客是对自身知识掌握的总结梳理,并向特定的人群提供一些有价值的参考信息。 所以只有先写好了程序,才可能写的好技术文章。

程序是用计算机语言来表达的,技术文章是用自然语言来表达的。 计算机语言的逻辑性和精确表达能力要比自然语言强的多,自然语言是模糊的、混沌的、不精确的, 因此写的一手好程序的人不一定能写的一手好文章,因为他们需要驾驭的语言特性完全不同。

刚学写程序时是磕磕碰碰的,好不容易才能搞得编译通过,这就和多数程序员写文章一样,使用自然语言遣词造句虽然从小就学起,写起来也是磕磕碰碰的。 能一气呵成写出无编译错误的一段程序时,这样的水平大概就和职业写作者一气呵成写出一篇文章大致相当。 一气呵成写完一篇文章,职业写作者要从头读一遍,对遣词造句加以润色,分段过长段落便于阅读等等。 而程序员也要对一段程序进行调试运行,有时还会优化重构,重命名变量就像遣词造句润色,分拆过长的程序类似分段过长段落。 一个稍微正常点水平得程序员很难写出一段什么也不干的程序,但写文章就不同了,经常有人写出什么也没说或者没说清的文章。 这就是程序语言精确性的优势,一段程序总要解决个问题,自然语言的模糊性经常导致写作者写一篇文章很可能什么也没说,完全跑偏了。 这也是为什么很多程序员感觉驾驭自然语言更难的原因。

为了避免一篇文章写出来让读者感觉什么都没说的窘境,一个简单的办法是保持言之有物,表达思想。 思想不一定要主流或正,但关键要有,所谓形散而神不散,是之谓也。这就是所谓文章的神,神为内,形为外。 神是内功,是思想,是故事布局,对应写程序无非架构与设计,而外功是形式、包括文风、用词、句式等等,对应程序的实现。 写过程序都知道同样的架构设计,选择不同的语言、框架、算法和数据结构来实现,实现的技巧可谓千差万别。 外功如招,程序的中的基本招式无非基础算法、数据结构、系统基础、语言语法与技巧等,最终的差别体现在招式的运用上。 写文章也类似,思想可能一点就透,招式则非一日之功非苦读苦练不可。

同样主题的文章,不同人写来明显有高下之分,可见功力之深浅。 网络小说兴起后看过一些,主角人物多男神,帅则温润如玉、玉树临风;正则气宇轩航、丰神俊朗。 一般太正呢,女生还不太喜欢都要加点邪气,如狂浪不羁等描述。 再看下金庸是怎么描述黄老邪的:

这本来面目一露,但见他形相清癯,风姿隽爽,萧疏轩举,湛然若神

这四组四字描述说的直白点大概就是:他身形清瘦、风姿绰约,洒脱轩昂、目光有神却又透出一股子高处不胜寒的空虚寂寞冷。 这是不是就是你心中一个活脱脱得黄老邪形象了,金庸用词简练而韵味深长、境界高下立判。 就这么简单一句描述一般人读来都未必顺口,何论随手用出了,这正是招式运用得的精妙之处了。

最后,本文作者写程序十余年,写文章的感觉还在努力解决编译错误一气未能呵成阶段,路漫漫兮,共勉。