文学家与程序员
“文学家”,一个超然于世外,高高在上的职业;“程序员”呢?自命清高的IT民工。
两者看起来八杆子打不着一下,但多少还是有那么点联系的。我擅自把二者都定位为“文字工作者”,这样两者之间也就算有了联系吧。希望大家不要飞砖。
“文学家”有以下几个特点:
1、靠文字吃饭,每天都在和各式各样的文字符号打交道。
2、要善于思考,敢于思考。要给自己思考出一堆矛盾,然后再组织文字解决矛盾。
3、要有很强的逻辑思考能力,先说什么,后说什么,如果组织开端、发展、高潮、结局,如何演绎起承转合。
4、自己心里要有谱儿,要有个目标存在,有个大纲存在,然后将最简单的大纲丰富成一篇完整的文章。
5、工作的时候,要面临不断的修正,返工。能力、技巧越娴熟的“文学家”返工的次数和时间越少。
“文学家”的主要特点,大概也就这样,毕竟我不是文学家,实在没多少体会,但大体应该是如此的。现在在说说“程序员”。
“程序员”有以下几个特点:
1、靠字母吃饭,每天都在和各式各样的文字符号打交道。
2、要善于思考,敢于思考。要先判断出问题可否解决,然后再去思考具体的解决方法。
3、要有很强的逻辑思考能力,先实现什么,后实现什么,如何将每一个方法,每一个函数组织在一起,分辨他们的逻辑关系和先后执行顺序。
4、自己心里要有谱儿,要有个目标存在,有个大纲存在,然后形成代码,逐渐的实现需求,实现目标,形成一段完整的代码,一个完整的系统。
5、工作的时候,要面临不断的修正,返工。能力、技巧越娴熟的 “程序员”返工的次数和时间越少。
好了,简单列这么多,现在看“文学家”和“程序员”有联系了么?似乎仍旧有些牵强,但毕竟他们之间多少还有有那么点相似之处的。
“程序员”在设计、完善一个程序的时候,通常会先去针对需求,设计出要实现的功能点,或者设计出一些主要的API,而“文学家”在写一篇文章之前,也会给自己定义出一套文学界的“API”,列出需要写那些东西,哪些是论点,哪些是论据。
“程序员”的代码,也好比“文学家”的文章,有些代码看起来就如同一篇脍炙人口的文章,干净利落不拖泥带水,且目标鲜明,多一行则太过臃肿,少一行又会有所欠缺。而糟糕的代码也如同一篇糟糕的文章,完全不知道作者在说什么,要表达什么。
当然,这些都只是表面的意思,反过来讲,程序员在开发的时候,可以尝试着用写文章的思想去考虑一下自己的代码。代码的段落如何划分,如何让自己的代码更容易被其他程序员接受,更容易被读懂,如何在其他同行眼里如同一片优美的散文?抑或是一片针锋相对,霸道一场的议论文?
希望,我的API如同一片文章的大纲,我的代码如同深思熟虑的文字,我的注释犹如精辟的旁边一般存在于系统的背后。