技术写作的“坎”
对于还没开始写作的程序员来说,开始动笔总是很难的,有各种心理的坎需要过:
- 作为理工科学生,以前作文写得就很差,现在还让我写技术文章,快算了吧
- 网上有大量类似的文章,我再写一篇没有任何意义,何况我写的还不如人家好
- 我的观点不一定完全正确,会误导看到的人,特别是一些初学者
- ……
这篇文章我们就聊聊程序员写作时心理上的这些“坎”。
写不好作文,如何能写出文章来
我个人的观点是写技术文章并不需要好的文笔,能用通顺易懂的语句把意思说清楚,逻辑表达清楚就足够了,好的文笔对读者来说的确能够带来好的阅读体验,但好的文笔也不意味着需要用华丽的辞藻,对于技术文章而言,我一直觉得文章的逻辑设计远胜于其他。
文笔并不是初写文章时该考虑的,对于这个“坎”来说,写作意愿度是关键。“牛不喝水强按头”,写出来的文章估计自己也不愿意再读。
日常的工作中,我见到很多同事用文字记录下自己的思考:
- 比如解决问题后用文章记录下问题的识别,诊断思考过程,根因分析以及自己的总结
- 比如学习了一门新技术,应用到项目上,写篇文章记录下如何设置环境,如何使用,以方便他人
- 比如参与到一次有技术挑战的项目中,用文章记录下整个过程,方案的难点以及自己的思考
- 比如结合多年的项目经验,把自己针对某一个技术领域的思考整理成一篇文章
上面多次提到一个词:思考。写作是一种创作活动,即使同一个话题,不同的人写出来的文章也一定是不一样的,这里面的差异就在于不同的人思考问题的角度和关注点是不一样的。写作的过程也是再次深入思考的过程,把自己的一个念头更深入地整理成一个完整的逻辑链,写作就是证明这个念头在逻辑上成立的过程。
写作过程促进作者深入思考,对于作者是受益匪浅的。回到 写作意愿度,程序员应该更关注写作能给自己带来的好处,关注写作对思考能力的提升,关注写作有助于知识进行体系化整理,而不要写作当成作文一样的任务或者必答题,给自己强加一些心理上的暗示。
工作中多思考,多尝试解决问题,一定会发现很多有触动的“念头”,尝试抓住这些念头,记录下当时的想法,整理下逻辑,文章自然就写出来了。
同类文章很多,为什么还要写一遍
辛辛苦苦写完一篇文章,自然而然会有一种成就感——创作的成就感。或许会在小范围分享,让更多人看到自己的成就,或许希望自己的文章能够被更多人看见,提升影响力。
然而,搜索引擎的强大在某种程度上摧毁了技术写作者的动力和成就感。试想一下,当你想把突发奇想的念头写成文章,搜索发现类似的文章已经在网络上存在,质量也不错,顿时就会失去写作的动力。有人写过了,为什么还要写一遍,浪费时间不说,发布在网络上也恐怕会有抄袭的嫌疑。
这道“坎”挡住了很多想成为技术写作者的程序员,搜索引擎是程序员最强大的工具,好的程序员一定是擅长使用搜索引擎解决问题的。但搜索引擎同时也呈现了网络上的海量信息,似乎网络上的信息已经囊括了这个世界上一切你能想到的事情。
但回到写作本身,我们把自己内心有触动的念头写出来,经过深入思考形成文章,如果不是有意参考,这个创作过程很难产出非常相似的文章。毕竟写作者的经历不同,知识结构不同,萌发念头的场景和上下文不同,产出的文章一定是有差异的。就像写代码,即便是一模一样的需求,不同的程序员写出的代码从结构设计、代码风格和代码质量上也是有很大差异的。
这里的关键点仍然是作者自己的深入思考,如果仅从一个小念头开始,就说自己写出的文章和网络上的文章没有太大差别,这个结论下得非常武断。任何一次认真的思考都值得被尊重,读者会从文章中看到作者的独特视角,看到作者的感悟。在技术领域,同样一件事情,可以有非常多样的视角和表达,就拿编程语言来说,一门编程语言的经典书籍也会有很多:由浅入深的,进阶的,专门讲设计思想的,专门讲如何应用的,等等。
写作是锻炼作者深入思考能力的活动,也是促进作者学习的活动。写作过程中或是为了让逻辑更加严谨,或是为了观点的证伪,都需引入更多的权威或经典材料,这个过程也在检验作者本人知识的系统性,进而促进作者在写作过程中学习更多的知识。
个人观点未经时间的验证,怕误导读者
另一个阻碍程序员把自己的观点写成文章的“坎”源于程序员“善良”的本心或者“责任感”,不希望自己的观点误导读者,特别是对于一些处于入门阶段的初学读者。
先从读者的角度来看这个问题,即便是初学编码,作为一个合格的程序员,首先应该是有思想能够独立思考的个人。回想我们作为一个初学者,一定希望能够跟更多有经验的同事交流,学习他们做事的方式,学习他们解决问题的思路,学习他们脑子里对技术的理解。当我们要把这些知识用在工作中,就需要结合自己的理解,用自己的语言把学到的知识说清楚。如果不假思索完全照搬别人的说法或做法,只会用Ctrl+C,Ctrl+V工作,那即便传授经验的同事每句话讲得都非常严谨,他也很难把工作做好。
程序员的经验成长是需要像游戏里打怪升级一样一步一步来的,没踩过坑也体会不到别人总结出来的经验有什么价值,踩过坑就会有自己的思考,就会知道任何技术和知识的应用都是需要权衡的,这个世界并没有银弹。
再回到作者的视角,我认为写作并不是教学过程,而是一个表达过程。写作的本质不在于传递百分之百正确的观点,更重要的是在文章中能够展示出程序员独特的思考方式和技术视角。因此,文章中可能有一些不当之处并不是什么大问题,反而可以为读者提供更多的思考空间。作者应该考虑的是如何通过写作把自己思考问题和解决问题的思路以相对客观的语言来表达出来,让读者能够读完有所启发,但绝不是让读者完全照着文章的内容去抄。
小结
就像前文中写到的,任何一次认真的思考都值得被尊重,程序员可以把技术写作当做一个加速自我学习和提升的工具,借助写作构建自己的知识体系,借助写作锻炼自己的深入思考能力,借助写作来和文章的读者切磋技术,借助写作打造自己的影响力,借助写作强化自己的心脏,抛开那些无谓的“坎”。