为什么要写技术文章-我对写作收获的理解

简介: 为了迎接更好的自己。 过去的止步不前 程序员最反感别人没写文档,最不喜欢自己写文档。 我一直很认同技术人员应该持续写技术文章,可以总结经验,打造个人品牌,等等。但加上公司内部分享,实际也没写多少篇,这可能也是很多技术人员的通病吧。

为了迎接更好的自己。


过去的止步不前

程序员最反感别人没写文档,最不喜欢自己写文档。

我一直很认同技术人员应该持续写技术文章,可以总结经验,打造个人品牌,等等。但加上公司内部分享,实际也没写多少篇,这可能也是很多技术人员的通病吧。

对我个人来说,没有坚持写首先是时间因素。并不是真的没有一点时间,而是时间管理任务规划的问题。对自身认知不足,制定了太多没想清楚的计划。经常键盘一敲,这个月要写三篇技术分享,洋洋洒洒做了一堆计划很有满足感,好像已经成功了一半。但做计划时没规划好落地细节,比如什么时候写,写什么方向的内容。总有更紧急的事情要做,于是转眼就一个月过去了,没写的等以后再写吧。很快,一年也过去了。

其次,有时想真正沉下心写点东西,又没有什么特别想写的内容。个人也看了很多别人的技术文章,像复杂系统的介绍,各种开源产品的使用心得、架构、源码分析,等等。到自己写,不知道写什么了。写自己做的系统吧,好像没什么好写的,除了必须写的内部设计文档,并没提炼出多牛想分享的内容。写使用心得吧,都是照着官方文档做,遇到问题谷歌,感觉没什么有深度的东西可说。写开源架构、源码分析吧,都是看别人总结的文章学习的,总不能直接抄吧。

虽然没能坚持写文章,但至少做到了持续阅读技术文章,好的文章收藏有链接。自己也做工作记录,各类问题有记录,需要的时候也能说出个123来,似乎一切还好。


想清楚了写作对自己的意义

写作对我来说,最大的意义,就是强迫自己克服惰性,深入思考研究,总结提炼,提升段位。

较长时间里,工作主要在解决具体问题。做新功能是在解决问题,改bug是在解决问题,帮助用户是在解决问题,自己解决了很多问题,也帮忙别人解决了很多问题。在此期间了解了新的业务,拓展了技术体系边界,但感觉自己的段位并没有显著提高。为什么?

因为对工作内容的总结提炼不够,无法站在更高层面“悟”,段位提升不明显。

虽然我开发了很多具体的功能,解决了很多具体问题,但大多数问题是碎片化的,单纯碎片化救火并不能有效提升自己的段位。只有持续有深度的总结提炼,将碎片化问题抽象提炼,更高层面考虑问题域的方法论和通用解决方法,高屋建瓴,才能有效提升段位。

而要强迫自己深入思考研究,并不容易。因为深入思考不像解决具体问题那样有即刻的收获感、工作紧迫性必要性。要主动,要克服自己天然的惰性。而写作是一个非常好的强迫自己深入思考研究、提升段位方法。

不同于给自己看的工作记录,随便写写,即使像密电文也能理解。给别人分享,必须要让不了解你的人感同身受,了解到所分享内容背景是什么,是否找到问题的本质,如何解决,有什么方法论做理论支持,做了哪方面取舍,还有哪些可以提高的地方。写作过程就像自己对自己的面试,深挖下去,发现之前没去想,没觉得是问题的问题,甚至会发现即使想到了问题也想不清楚答案的问题。另外一些紧急凑付事的临时解决方法,也不好意思拿去分享。只能思考,再思考,去想所有问题的答案。联想自己做过的其他事情,读过的资料,继续去搜索,去尝试,给出至少让自己信服的答案。如此写完,虽然感觉很疲惫,但有感悟,自己得到了提高,很有收获。


写作可以消化所读的技术文章,将被动记忆的知识,通过写作,变成自己真正掌握的知识。

为了提升段位,自己看了一些书,很多技术文章。不能在工作中立即用到的技术知识,也坚持做了不少积累。像系统架构,源码分析,算法实践,有意思的分析都看了不少、努力理解这些文章讲了什么,收藏了很多有用的链接。年度总结,似乎学了很多,可依然没感到段位有显著提高。这是为什么?

这是因为之前的学习,实际是在用应试方式去理解,记录要点。虽然一段时间内能像复习考试般清楚自己学过什么,但没有结合自己经历深入的“悟”,没有变成真正掌握的知识,日常工作用不上,慢慢就淡忘了。

解决方法依然还是靠写作,来强迫自己深入思考。写阅读的收获,自然不能把原文抄一遍,要有自己的理解感悟,要结合自己做过的事情写点新东西出来,需要把知识体系打散了重新提炼。一旦有了深入思考,写出自己认可的阅读分享,自然就真正掌握了所学的内容。


写作可以提高拆解问题,分层细化的能力。

以前迷信敏捷快速迭代,认为不能过度设计。去解决一个问题时,才会思考这个问题的解。遇到新问题,case by case解决新问题。规划不够清晰,缺少对需求,业务流程,业务建模,数据建模,架构建模,接口建模的有效拆解,没有从上到下,一层层将问题域拆分的足够清楚。规模不大的问题可以轻松解决,一旦要处理涉及面广,流程复杂的多业务域问题,就会因为考虑不足经常要修改原来的设计和实现。

而写作要让别人容易读,就不能像头脑风暴那般想到哪写到哪。要提前确定好分享的主题,按照主题整理写作提纲,层层细化,分解章节目录,各级要点,控制写作范围,避免写的文不对题。这就很好锻炼了拆解问题,分层细化的能力。

我在这方面做得还不够好,包括本文在内,即使提前规划好了要点,在写作过程过程中依然有几次超出规划调整了结构。需要继续提高自己的写作能力。


写作可以获得反馈,走出思维盲区。

再多的自我思考,实践验证,依然可能存在思维盲区,有常识性错误而不自知。分享可以让更多人了解,更多获得反馈修改错误的机会,帮助自己进一步提高。


写作可以提高自我认知,认识更真实的自己。

技术人员往往会高估自己。我的错觉之一是总觉得存在某条提升能力的捷径,研究各种方式方法而忽视了脚踏实地的前行。错觉之二是做了一堆计划就很有满足感,好像已经成功了大半。最后计划往往没完成,安慰自己是太忙的原因而不是能力问题。

实际上,时间管理是技术人员最需要的能力之一。做了计划完不成,首先是对自己认知不足,过于高估自己能力。写自己认可的文章,会认识到自己知识的不足,思考的不足,写作能力的不足,直面更真实的自己。认识到到写一篇自己认可的文章,原来需要这么多时间精力。认识到要想提升段位,必须投入更多时间精力,一步步前行,没有捷径可走。


写作方向

因为写作的目的是提高自己的技术段位,让读者和自己都有收获,所以我写作的方向是自己在开源大数据领域的经验总结,心得提炼,分析解决一类问题的方法论,尽量避免写没有多少个人思考的操作流程帮助文档。

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
目录
相关文章
|
2月前
|
机器学习/深度学习 算法 编译器
【C++】自学终极笔记
【C++】自学终极笔记
150 0
|
6月前
|
监控 架构师 安全
速读《技术人修炼之道》-看到最后定有收获
最近一段时间读完了《技术人修炼之道》,书中内容涵盖了作者多年实践和思想的结晶,整体读来有许多观点深有同感,也学习到了一些新的理念,在这里感谢黄哲铿老师。本文主要结合我自身十几年的IT行业经验,以及创业多年的感受,从书中提炼了一些个人觉得非常有价值并且好落地的点进行分享。
|
运维 Cloud Native 前端开发
【写作能力提升】写作小白需要避免的五个写作误区和灵魂五问
【写作能力提升】写作小白需要避免的五个写作误区和灵魂五问
182 0
【写作能力提升】写作小白需要避免的五个写作误区和灵魂五问
|
监控 数据挖掘 测试技术
【写作能力提升】手把手教你快速搞定4个职场写作场景
【写作能力提升】手把手教你快速搞定4个职场写作场景
178 0
【写作能力提升】手把手教你快速搞定4个职场写作场景
|
Java 大数据 程序员
【写作能力提升】为什么建议你一定要学会写作?
【写作能力提升】为什么建议你一定要学会写作?
80 0
【写作能力提升】为什么建议你一定要学会写作?
|
SQL 消息中间件 存储
笔耕不辍」--生命不息,写作不止
根据sql以及mybaytis里面的判断来判断活动时间是否到了,到了执行的操作与未到是有区别的。
213 0
|
弹性计算
阿里云的学习收获
利用老师给的网站进行阿里云的学习,领用到云服务器ECS后,使用云服务器进行一系列的学习。
|
存储 弹性计算 云计算
我的学习收获
在经过一小段的时间的学习,我学会了运用云服务器ECS搭建一个简单的简历网站
我的学习收获
|
运维 前端开发 关系型数据库
都说程序员的个人影响力靠的是写作和演讲,所以你会写作吗?
写作这件事,很多大佬都谈过,但我还是想从自己的角度去谈谈.