作为程序员,最平常不过的就是敲代码了。然也,这是我们自身以及外界对我们最朴实的认知。在编码过程中,我们可能会遇到并解决掉一些问题,积累经验和心得,有的人选择用自然语言记录下来,形成博客,而大多数人往往不会做这种记录。
本文将试图探讨,为什么程序员都应该尝试记录自己遇到的问题,经验和心得,以及为什么我们需要以公开的博客的形式来展现。
首先,做个简单的自我介绍,我是一名 Android 开发,在大学时候受到当时的创新工场首席布道师 蔡学镛 的一篇微博教诲,开始尝试写技术博客。先前在csdn写一些简单的总结,最后自己开始维护一个独立的博客,名为 技术小黑屋 。该博客维护将近4年多。专注于书写Java 和 Android 的技术文章,在开发者头条和稀土掘金有着大量的关注,并且在droidcon和GDG做过多次主题分享。
闲话休叙,进入正题,来看一看为什么我觉得程序员应该尝试写博客。
在人类的发展历史上,语言往往早于文字的出现。一个简单的例子,在古代的日本,人们只有语言,即只能听和说,但是缺乏与语言进行映射的文字。而这一时期最大的问题也莫过于无法使用文字来记录很多信息。直到大化革新,从中国隋唐时期开始引入汉字,这一问题才得到解决。
为什么要引出上面的这段话,因为如果我们做一个类比,就会发现这和写文章总结有着相似之处。当我们解决了一个问题或者习得了一项经验,如果没有记录下来,那么其实就与只有语言没有文字的古人无异。当你的信息被记录下来,才是所谓的进步。
举个更贴切的现实情况:
比如有一天,我花了三个小时解决了一个问题,之后没有进行任何记录。
过了几个月之后,同样的问题出现,我这是可能会再次花半个小时或一个小时来解决。
如果我当时进行了合理的记录,可能我只需要花10分钟就能搞定这个问题。
用一段比较技术的比喻是:
如果我们想要写文章并且分享给他人,势必要拿出我们的最高的水平,就要把讲解的内容研究得滚瓜烂熟,写出的文章也要句斟字酌。
举个简单的例子。Android中有一个用于存取数据的常用的实现为SharedPreferences。有很多人会这样觉得:
这种回答往往是仅仅站在使用的角度来看的,其实一个SharedPreference有着很大的学问:
当你主观上想要写好一篇文章时,你就会发散的想问题,去研究这个东西的源码,并结合自己遇到的问题或者经验,来努力写好这篇文章。
当你写一篇,两篇,三五篇,七篇八篇九十篇,你的知识体系也会逐渐的完善,当然这其中每篇都应该包含了你对其中技术的深入理解。
两个苹果交换后每人只有一个,但两个想法交换后,每个人都有两个想法
当我们把文章写出来,挂到博客上,被被人看见之后,很有可能从别人的反馈中得到更优解或不足。
举个例子,我在写 《树莓派入手指南》 总,提到TF卡即SD卡,不久后得到了这样的纠正。这就纠正了我的错误认知。
在我的 《关于Android Log的一些思考》 文章评论中,得到了很多更优的反馈,比如
所以,写出博客,收益的不只是别人,还有自己。
如果我写出来分享了,别人会了,那么岂不是我的竞争力下降了?
在编程中,几乎不存在这种狭隘的“教会徒弟,饿死师傅”情况,相反,越是分享,越是对技术开放的人,其收获也是越大,成就也是越大。
源码都可以开发,技术理应也是开放的。
首先,写博客可以算作是提升个人名气的一种形式,通过分享知识经验,做到了帮助别人,你的名气与品牌会被创建并扩大。
再次,当你有了足够的名气时,你会收到类似网站广告,(付费)演讲邀请,录制视频,出书等邀请和机会。
除此之外,在求职的时候,如果在你的简历上附加了博客的内容,往往会得到更高的通过率,因为这样可能会给面试官留下善于总结,深入研究问题的好印象。
长期坚持写博客,会有助于你培养好的习惯,慢慢的做事情也会有耐心,自己就越来越能控制自己。
程序员可能是加班相对严重的一种职业。什么996,大小周。光工作就占据了大部分的时间,剩下的时间,就是陪家人,陪女朋友。哪里有时间来写博客啊?
诚然,这些都是属实的。
但是,其实你还是可以挤出时间来的,毕竟“时间就像海绵里的水,只要愿意挤,总还是有的”。况且这段时间挤出来又不是用来浪费,而是用来提高自己,帮助自己和他人,是一件大有裨益的事情。
举个个人的例子,我能挤出来的时间有
个人倾向于通过早起从早晨的时间中进行压榨,来逐渐积累。
其实有很多人会进行记录,他们通常会记录在有道笔记或者印象笔记中。我认为的原因如下
以上就是我认为程序员都应该尝试写一写博客的观点,除此之外,我在知乎Live将会实时回答 《程序员如何写好一篇技术文章》 。
本次Live将会讲解:
并回答这些问题:
如果你感兴趣,或者有问题想要提问,欢迎参与。
参与地址: https://www.zhihu.com/lives/796775894273363968
结尾,希望更多的程序员拿起笔来,写写博客,Let’s make a difference.