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

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

为了迎接更好的自己。


过去的止步不前

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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


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

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

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


写作方向

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

目录
相关文章
|
JSON 网络协议 Go
golang使用resty库实现模拟请求正方教务
本文主要讲解了如何使用golang模拟请求正方教务
1057 0
|
Linux Shell
【Shell脚本】Linux安装Nexus的两种方式以及开机自启
【Shell脚本】Linux安装Nexus的两种方式以及开机自启
|
编解码 Java Maven
Java视频修改分辨率(附代码) | Java工具类
Java视频修改分辨率(附代码) | Java工具类
Java视频修改分辨率(附代码) | Java工具类
|
JavaScript 应用服务中间件 图形学
基于Threejs实现glb三维模型的预览
文章将重点介绍如何基于Threejs进行三维模型glb进行预览,可以旋转控制。
2079 0
基于Threejs实现glb三维模型的预览
|
机器学习/深度学习 数据采集 算法
【人脸识别】基于PCA的人脸识别系统(Matlab代码实现)
【人脸识别】基于PCA的人脸识别系统(Matlab代码实现)
738 6
|
机器学习/深度学习 人工智能 知识图谱
视觉分词器突破天花板!GigaTok:港大字节联手打造3B参数视觉分词器,突破图像生成瓶颈
GigaTok是香港大学与字节跳动联合研发的3B参数视觉分词器,通过语义正则化技术和创新架构设计,解决了图像重建与生成质量间的矛盾,显著提升自回归模型的表示学习能力。
546 4
视觉分词器突破天花板!GigaTok:港大字节联手打造3B参数视觉分词器,突破图像生成瓶颈
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
893 4
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
JSON 编解码 数据安全/隐私保护
电脑录制鼠标键盘脚本,鼠标动作录制脚本,万能脚本录制器【python】
完整功能:实现鼠标移动、点击和键盘操作的录制与回放 数据持久化:将录制的动作序列保存为JSON文件
|
传感器 人工智能 自动驾驶
智能交通系统:自动驾驶技术的社会影响
【9月更文挑战第27天】随着科技发展,智能交通系统与自动驾驶技术正革新交通领域,从提高交通效率与安全性到优化资源分配,其影响深远。自动驾驶技术基于AI与传感器,历经五个等级演进,促进交通流畅的同时减少人为驾驶错误。然而,技术进步亦引发就业市场变化、数据隐私及道德责任等问题,城市规划需适应新技术,加建充电站等设施。尽管存在挑战,智能交通系统仍有望重塑城市面貌,提升出行体验,实现更高效、环保的城市交通体系。
|
存储 算法 数据处理