财新传媒
位置:博客 > 老万故事会 > 【老万】程序员要学好语文

【老万】程序员要学好语文


今天翻出自己三年多前写的一篇文章,叫《我要写字》。那时刚开始写公众号,没几个读者,文章只有几百阅读量。但我觉得这篇还有点价值,稍微修改了一下重发,物尽其用。正好今天是 10/24 程序员节,这篇涉及程序员的修养,也算应景。


自打开博客和公众号以来,不时有人问我“大哥你一程序员写这玩意儿干嘛呀?能当饭吃吗?”


说实话,以我的写字水平,还真不能当饭吃。我也没有《睡在我上铺的郭教授》的颜值,做网红不是我的目的。但是我觉得写字这件事有意思,就想坚持下去。


一来这可以锻炼自己的毅力,二来凡是用心经历过的必然都有收获。这是我很早以前就意识到的一个道理,得到了罗大佑先生的应证。


可能有的同学不清楚这段历史:罗大佑做音乐是第二职业,他的正业是看X片儿的:放射科的医生,每天在黑屋子里给人照X光。后来,他在副业上越跑越远,欲罢不能,最后彻底转型。据他讲,学医让他看尽生老病死人生百态,对生命的感悟融入了他以后的创作。这段经历成就了他华语歌坛的教父地位。


我写字还有一点小小的功利心:在现实生活中,我是一个不善表达的人,经常张口结舌辞不达意,反应也慢,别人都讲第三个笑话了,我才想好第一个该怎么回应。不用说,这种情况让我在职场上痛不欲生。


遇到困难的时候,你可以放弃,也可以正面硬刚。我选择后者。只要写不死,就往死里写。抱着这种态度,一定能早死早超生,提升表达能力,从段子反应迟缓症患者向段子手进军。


既然要写,那就要正儿八经写出个样来。我对自己要写成什么样子还是有一点要求。我觉得好的文字应该简单明了、不浮夸。在此基础上,如果还能让人觉得有点趣味,甚至偶尔拓宽一点知识面,那就是锦上添花了。


把话说明白,其实不是一件容易的事情。自然语言有歧义,同一件事情也有很多的表达方式,这就考验作者取舍的能力了。


从多种表达方式中,快速选出一种效果足够好的,是一种高端的能力。有的人欠缺这样的能力,还抱怨自己怀才不遇,好像别人有义务从他不知所云山雾罩的表述中提炼出脉络清晰牛 B 闪闪的思想。这是一种意淫。有这种心态,活该一辈子给他人做垫脚石。


真的猛士,不会抱怨耍嘴皮子的人抢了他的机会,而是在出活的同时把嘴皮耍得更溜,让只会打嘴炮的人目瞪口呆。


表达能力是相通的,文章写不清楚的人,写出的代码也是一团糟。反之,文章写得好,设计文档、工作邮件、代码都会得心应手。我是码工,锻炼自己的写字水平也是在提高业务能力。


字写出来是给人看的,代码也一样。很多不学计算机的同学不了解,我们程序员每天写新代码的时间不多,更多时候是在看别人或自己以前写好的代码,考虑怎么去使用它、修改它。如果碰上一堆屎一样的代码,就像帮一部生编胡造漏洞百出的侦探小说圆场,连砍人的心都有了。


磨刀不误砍柴功。学好语文才能成为优秀程序员。我建议每个有志程序员都下功夫练习写作。不一定写公众号,可以从写好朋友圈开始。


到美国读书的时候,因为写论文,学习了 Strunk 和 White 那本《The Elements of Style》(《风格的元素》)。其中我最有共鸣的是:不要浮夸花哨,少用形容词、副词;一句话里,如果有个词对表达意思没有帮助,那就删掉。


时时用这个标准要求自己,久而久之,写出的文字自然就会精炼流畅,没有肥肉。现在我写完文字之后,要看几遍,这个字有无必要?那个词能不能删?这些年来,废话比例逐渐下降,聊以自慰。


有些人智商很高,才气经常从文字里侧漏出来。但是如果词藻超过了意思本身的需要,那就成了装 B。


我对装 B 的容忍度非常低。如果一篇文章堆了一摞大词,让人不知所云,我会把作者加入黑名单,以后不再让他浪费我的生命。


有人说你那不是写科技论文的要求吗?谁没事天天看论文啊?其实,不管是工作还是生活,说人话不装 B,应该是我们的基本追求。为了不被浮夸的文字时时恶心到,我们要旗帜鲜明地说人话。


我到谷歌上班之后,看到了一段演讲,名字很有趣,叫《长语言》(Growing a Language)。这里的“长”,是“生长”的“长”。演讲者是 Java 语言规范的作者之一,美国科学院院士 Guy Steele。


这个演讲的形式特别:Steele 给自己立了个规矩,一开始只能用单音节的词;如果想用一个多音节的词,必须先定义它。而定义的过程只能用到单音节词或其它已经定义过的词。


演讲的开头是这样的:


I think you know what a man is. A woman is more or less like a man, but not of the same sex. (This may seem like a strange thing for me to start with, but soon you will see why.)

Next, I shall say that a person is a woman or a man (young or old).
machine is a thing that can do a task with no help, or not much help, from a person.

我想你懂什么是 man。Woman 跟 man 差不多,但是性别不同。(这样开头好像很奇怪,不过一会儿你就会明白我的原因。)

接下来,我要讲 person 可以是一个 woman 或者 man(老的小的都行)。
......
Machine 是一样东西,它不需要 person 的帮助就可以完成一件任务。


原来,为了能够说“机器”(machine)这个词,他先用 person 来定义 machine。但是 person 本身是多音节词,所以也需要定义。而定义 person 又还得先定义 woman。以此类推。


这个限制,迫使 Steele 避开大词和花哨的表达,用最简单的词汇把意思说清楚。这是真功夫。


财新传媒主编王烁老师以言简意赅著称。他对于写作有个经验之谈:要提高自己的写作能力,一个简单有效的方法是读自己喜爱的作家的文字,然后关上书自己再重写一遍。我喜欢的作家都是表达清楚的,像王小波、图雅、盖莫夫、奥威尔。我向他们学习,也要努力把文章写得清楚明白。


人只活一辈子,不能让人看了我的文章感觉生命被浪费了。你说是吧?


~~~~~~~~~~


猜你会喜欢:

~~~~~~~~~~


关注老万故事会公众号:

本公众号不开赞赏不放广告。如果喜欢这篇文章,点个在看,转发给朋友就是对老万的最大支持。谢谢大家



推荐 1