我为什么鼓励程序员写blog
- 工程师该怎样才能突破自己的能力瓶颈?写 blog!
- 工程师该怎样精进自己在职涯上所需要的能力?写 blog!
- 工程师该怎样才能保持学习与成长的动能?写 blog!
- 工程师该怎样才能证明自己的潜力与特质?写 blog!
- 工程师该怎样才能发挥与养成影响力?写 blog!
本文打算老生常谈,从几个很实务的方面来整理,写 blog 对你有什么好处。如果你不需要这样的好处,或是有更好的方法获得这些好处,Just do it!如果愿意分享让我可以跟着你一起学习,我将感激不尽。
前言
开始本文之前,我想先引用 Jeff Atwood 在2007年一篇文章《How To Achieve Ultimate Blog Success In One Easy Step》中的一段内容:
When people ask me for advice on blogging, I always respond with yet another form of the same advice: pick a schedule you can live with, and stick to it. Until you do that, none of the other advice I could give you will matter. I don't care if you suck at writing. I don't care if nobody reads your blog. I don't care if you have nothing interesting to say. If you can demonstrate a willingness to write, and a desire to keep continually improving your writing, you will eventually be successful.
大意如下:
当别人请我给他们一些写 blog 的建议,我总是回他:挑个你自认为可以的时间行程安排,什么时候开始写 blog,预计多久写一篇文,开始动工,并坚持下去。在你这么做之前,任何建议对你来说都是不重要的。你文章是否写得很糟糕不重要,是否没有任何人会看你 的 blog 不重要,是不是没啥有趣的东西可以记录也不重要。重要的是,只要你能透过写文来表现出写作的意愿,而且渴望持续地写作,检视、思考与改善自己的写作,你终 究会成功的。
对我而言,我很清楚我再怎么写,也无法比 Jeff Atwood 在他的 blog Coding Horror 与他的著作《高效能程序员的修炼 (Effective Programming: More Than Writing Code) 》中的内容写得更好。但我还是会写一篇 blog 文章,因为我说的是我的 insight,是我思考消化完且累积自己经验后,整理出来的内容。
我写文不是要证明我比他们厉害,也不是滥竽充数的拾人牙慧,而只是个练习。练习思考的过程,练习把这么多 input 的资讯有系统、有结构地整理好的过程,练习怎么表达可以最好理解的过程,练习怎么透过 blog 来跟外界接触的过程,练习怎么建立与发挥影响力的过程。
写 blog 文章,是种与自我的对话,也是种与外界的联系,也是获得 level up 或 skill learned 的契机。
借口:我不太会写文章,不太会表达,没有东西好写,没人会看我的文章
你想让自己表达能力变好吗?如果答案是「Yes」,那你觉得没有练习,表达能力就会变好吗?
「从脑袋里面接收到资讯,思考,做出反应外显出来,达到效果」这个过程是需要大量练习才能缩短反应时间并精准地达到效果。
我想大家都同意,这是个资讯爆炸的时代,每一天都涌出正常人根本负荷不了的庞大且杂乱的资讯量。怎么从这些爆炸多的资讯中,将你有兴趣的东西筛 选出来,在脑袋中分门别类,有系统有组织地过滤与建立知识点、线、面。从 data 到 information 到 knowledge base 也是需要对的方式、工具与大量练习,这是有效学习、快速学习的最基础运作单位。
当只有内在的整理或只有整理成自己看得懂的素材,其实只是内隐知识的一种存在形式。就像敏捷软体开发重视的,是发挥价值,快速交付以取得回馈,进行修正与改善。要让自己真正改善、变强、内化,将内隐知识转成外显知识是最后的临门一脚。
相信很多有在写 blog 文章的朋友一定都有过这样的感受:素材整理了八九成,但开始写作时,往往会再多个20%~60%的内容是原本素材没有的,一边在写的过程,其实是迅速地在 过程中校准自己的知识点。因为你知道,如果有东西表达的不够清楚,代表自己的了解还不够透彻。
- 完整过程
把写 blog 当作是你给自己订立的目标,在安全的环境下给自己的挑战,有个不需花费额外成本(除了时间与心力)且有效的练习过程,自然会「驱使」(不是很想用强迫,因 为强迫不来的)你开始找到方向,过滤每天庞大的资讯量,筛选与整理素材,把新的资讯跟自己过去的知识与经验慢慢建立连结。
给自己一个舒适的环境(例如我现在就在一间我喜欢的咖啡厅写作)开始动手写作,检视与欣赏自己外显出来的整理成果,如果不到欣赏的程度,就代表 还有改善的空间。最后将你写完的文章贴出去后,透过一些 community 或 social media 的平台分享,期许社群朋友给予你建议、回馈、补充,如果你不够好,他们会让你变得更好;如果你很好,你将建立起自己的影响力,获得成就感。
有了这篇文章当基底,你将发现后续你会很自然地写出系列相关文章,因为知识是有连结性的,没有与过去知识进行连结的知识,大概两个礼拜它就会自然被你的脑袋封存掉。系列文章将让你的知识连结版图更加坚实稳固,让你对该领域知识深度更深,影响力更大。
「I don't care if you suck at writing. I don't care if nobody reads your blog. I don't care if you have nothing interesting to say.」因为,你是在跟自己对话,是在让自己变强变好,是在练习着让自己吸收更多、反应更快、表达更好。
好处一:产生学习动机,有方向性地筛选资讯
人是习惯性动物,而且是习惯怠惰的。
大家都知道学习的重要性,但大家又不由自主发懒。没有方向跟目标,自然只能漂流。
当给自己订立一个自我承诺且可行的目标,例如一个月写一篇 blog 文章,你有接近一个月的时间开始去感受新的资讯,往往这个感受新资讯的过程,你会找到你喜爱的领域。有了喜爱的领域,你会为了想多了解一些,想多收集一些 文章的素材,而开始自发性且有目标地找寻相关资讯。
不管有没有后续动作,你已经把一些你目前不关心的资讯全部筛掉,而有方向有目标地去筛选出你感兴趣的资讯。
人的脑袋跟时间有限,过多庞杂的资讯就等于无用的资讯,跟白噪音一样会被你的脑袋自然过滤掉。
好处二: 检视自己既有知识,将 input 的新资讯与既有的知识建立连结
因为你并不打算只是翻译、只是整理文摘,而是想要整理成有用的资讯,甚至内化成自己的知识。
当你开始收集某个你感兴趣的领域的素材时,你会不由自主地开始为这些资讯分门别类建立关联。(这也是为什么心智图总在整理素材时发挥效用)你不 只会把新的资讯分类整理,你也可以轻易地把既有的知识与经验,跟这些新的资讯建立关联。某个知识点如果只是个孤岛,没被时常使用、回忆、刺激,大脑会自动 地封存它,因为你的脑袋得存放更重要的东西。
太多朋友只有在要换工作整理简历、面试、或自我介绍时,才会去检视自己会哪些东西,有哪些技能。这就像冷冻库里面放着过期两年的食品一样,放在 那边是不会发挥任何效益的。在敏捷的精神中,我们重视定期回顾检视,自己是否有所成长,有无需要改善的地方,有无盲点。因为当你发现自己有所成长时,你会 满足动机的内在激励条件:「专精」(Mastery),这是给自己持续 on fire 状态的动能补给。
因此,当你想写 blog 文章,有方向性地筛选与收集相关资讯,进行整理并建立知识关联时,会让你重新检视自己的知识,一旦 connect 建立起来,脑袋里面那份知识就像 cache 被 hit 后重新计时一样,新旧知识将在脑袋中调高权重。不幸的是,更新完权重如果不再刺激、使用它,它仍会随着时间而消逝,被再度封存。
所以,我们需要练习、刺激大脑这一块被重新建立的区块。
持续检视自我,才能发现不足之处,进行改善。才能发现自我成长的亮点,保持持之以恒的动能。所以,你需要给自己创造持续检视自我的机会。你的定期写文规划与行动,就是最好的事件点。
好处三: 透过写文,刻意强化刺激知识转化,进行内化知识过程
只有内隐的知识,会存在很多似懂非懂的模糊空间,很多人临场会冒出一些「知其然而不知其所以然」的内容,其实就是沾了酱油,却没深入了解、建立连结的情况。
如上一段所提,脑袋就像 memory cache 一样,越常用的越会被保留。不断刺激,可以让它刻的更深,这就是内化。
input 资讯的整理,其实你只是在整理,这仍然是别人的东西。只有想办法以自己的方式表达出来,把自己的经验与领略融入其中(就是 insight),这份资讯才会转成自己的知识,并被存入脑袋中。
因此这个步骤很重要,把「别人提供的资讯,转成自己的知识」。两者界接的桥梁是整理资讯的功夫,催化剂则是外显的过程。而最简单的外显,就是写 blog 文章。
在外显的过程中,偶尔会发现在骨干上衔接不上,这代表原有知识与新资讯中间少了重要的连结。「发现」就是最大的价值所在,促使你去找到那块重要的拼图。
偶尔会发现,表达上不顺遂,这通常代表着你对要表达的内容还不够透彻,所以说不清楚。真正懂了,你会用大家都听得懂的话,讲给不懂的人听,而不 是一直用专有名词吊书袋地唬弄别人。另一种表达不顺遂,在于表达能力不到位,练习表达能力最简单的方式,就是多看经典好书、欣赏别人的表达能力、渴望自己 能跟他一样、刻意练习表达能力。
当你看 Jeff Atwood 的《高效能程序员的修炼》或是提及 engineer 的软技能、职涯发展的书籍时,你总会看到沟通表达能力有多重要。因为你得团队合作,你得有能力把思路表达清楚,甚至反应在文件、代码、设计、简报上,写文 章就是在练这一块的基本功。
- 心魔
为什么许多人会自己整理学习笔记、读书心得,却少了这一段外显知识的过程?大部分的人都是说自己没那时间、没那冲动,其实很多是卡在自己心里那一关:不敢展露出自己学习的结果,怕被别人笑,怕被人酸。
所以 Jeff Atwood 才说,自我承诺,做就对了。在你开始做之前,别人给的任何建议都是屁。因为自己的心魔自己解,怕东怕西都是自找的。要学习就先得不要脸、抱对大腿,建立正 确的心态。敏捷精神讲究,先有东西出来,才能取得回馈,检视并持续改善。有东西交出来,才不会只是自己在嗨。为何敏捷讲究拥抱变化?因为任何需求的改变, 往往都是更贴近真实需求,往往就是产品进化变得更好的契机点。
你写了文章,别人给你批评、指教、建议,就是在创造自我进化、改善的契机点。你不一定需要全盘接收,你不需要跟无意义的酸民吵架,但你总会从中获得一些对你自己有用的资讯。
知识只有内隐还不足够,那会让你存在很多似懂非懂的模糊空间。只有外显过程刺激催化,才能强化内化知识的程度。才能把别人提供的资讯,转换到自己的知识库里面建立连结。
好处四:取得回馈,突破盲点
什么事情最可怕?抱着错误的观念而不自知,而且一直在错误的基底下维持下去。要命的是,没人跟你讲真话,或是没人有机会跟你说真话。就像你裤子拉链没拉,在闹区遛了一整天而不自知,大家都在笑你,却没人告诉你。
即使已经从内隐状态,透过外显来内化知识,你「觉得」你已经会了、懂了某些东西,但等等,你有可能是「自以为会了」、「自以为懂了」的情况。
我拿我自己来当一个例子,在我几年前刚开始学习依赖注入(DI)的观念与设计时,我写了篇文章,我连 DI 的全名都写错,我写成了 delay injection,延迟注入。之后好友小朱直接回复,应该是依赖注入, dependency injection, 我才赫然发现自己的无知。我原本的知识基底是建立于「延迟」的目的与好处,而「依赖」注入的重点其实在于依赖的生成与建立。可以想像,如果没有小朱的指 导,我不知道还要保持这个错误的观念多久。
事实上,我一开始认识小朱时,常常因为一些事情与价值观起争执,但从这件事之后,我由衷地感谢他,一个人愿意花时间指出你哪里观念不正确,你应该要 感谢他,而不是封锁他或跟他吵架。如果别人给的建议或指正,你总是反驳或争论,慢慢地就没人肯跟你说真话,而是老看你光着屁股遛大街,在心里笑你。要珍 惜、感谢愿意跟你说真话的朋友,他们才是愿意花时间在你身上的朋友。
透过写 blog 文章的「过程」,想办法把知识外显出来,进而内化知识之后,建立正确的心态,尽可能取得回馈,来让自己的内化更透彻,来找到自己的盲点,获得更深入的技能敲门砖(升级道具的概念),才能让效益更大,你已经花一份工了,就应该让它效益滚出效益。
怎么样取得更多的回馈?请你谦卑地在适合的社群或社交媒体中,分享你的 blog 文章,恳请大家给予指教、建议、补充。而你需要的,就是建立正确的心态,学习沟通的技巧,建立过滤无用的嘲讽与吸收对自己有益建议的能力。
将你的 blog 文章分享到适当的社群或社交媒体上,尽可能取得回馈,过滤无用的,吸取有用的。每个人都不是天生就会所有的东西,每个人都有菜过的过去。路过仙人的指点, 有时胜过自己闭门深造十载的效果。当你与社群有良好的互动时,往往就是在塑造你个人品牌的形象,往往你会从这些互动中去结识更多的人脉。
人脉,一者是因为你能对其他人产生价值,对他们有用。另一者则是因为,你不是单纯来蹭东蹭西的 free rider,只想认识大牛大神,以从他们身上获得好处的社交蟑螂。而是你有自己的学习过程、乐于分享与从别人的建议中吸收成长,学生挑老师,老师也是很挑 学生的。你是对的态度、对的人,自然有很多前辈愿意对你伸出援手、指点一二。
你的文章是对的、好的、有价值的,就可以造福更多人,这就是持续点滴累积你的影响力。你的文章有不对的、不够深入的、表达不清楚的,别人给你的回馈 简直是梦寐以求的升级补品,因为自干再久还是需要外力辅助才能大功告成。张无忌的九阳神功光自己练,只是练内功,最后还是因为有乾坤一气袋跟众多外力辅助 之下,才大功告成。
好处五:受益的总是自己
人的脑袋总有极限,问题会出现两次,就会出现第三次。最常去查自己 blog 文章的,往往就是自己。写技术文的总会发现,其实在你写完文章之后,你总是有机会因为实务的需求,又回去查一下 blog,自己之前是怎么解决的?
这里有两个好处,第一,你可以快速地把自己过去的知识倒一份回来目前的脑袋,用最快的速度解决眼前的问题。第二,在你看过去自己整理的 knowledge base 时,因为你已经不是过去的你了,你比过去的你建立了更多的知识连结,你将以之前文章的内容为基础,发展出更优化的解决方案,解决眼前的问题。而且因此而受 益的你,内心会受到莫大的鼓舞,进而燃起你的动力,再次撰写一篇文章来描述优化后的解决方案。这是正向循环的不二法门。
you can't connect the dots looking forward; you can only connect them looking backwards. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. Because believing that the dots will connect down the road will give you the confidence to follow your heart. Even when it leads you off the well worn path, and that will make all the difference. (This approach has never let me down, and it has made all the difference in my life.
简单地说,你无法提前得知你现在学习的知识点,会在未来发生什么样的效果。但你得相信,它总会在适当时间点发生效用的。而透过写 blog 文章来具现化你的知识点,将可以让这个连结与发挥效用的几率提升。
你在哪边跌倒过,别人往往就会在那边跌倒。
在技术职涯中,你总会变资深,总会带着 rookie (就是菜鸟啦)一起做事。你过去也菜过,而你记录着在这条路上哪边曾经让你跌倒过,哪边有道槛,哪边有地雷,既可以当作菜鸟的指引地图,当他们碰到同样问 题时,也可以节省你宝贵的时间,请他们先去看你的哪篇文章,请他们试着自我解决问题看看,当他们碰到不理解、用不同方式解决、解决完时给你回馈。
如此,你可以发现你可能哪边表达的不够清楚(甚至是你压根就没搞清楚),你可能会发现他们有更有创意、更好的做法,你可能会发现现在的你也有更好的做法,以这样的方式带着 rookie 的 mentor 往往受人尊重,而且教学相长,互相学习。
从自己 blog 受益最大的,永远是自己。可以为未来的自己节省时间,可以为自己持续进化提升动力,可以为自己重新点燃火种、保持动能。
好处六:证明自己的能力、特质、发展潜力
面试时总可以听到应征者说自己「积极好学、对技术拥有热忱」,但一旦提及能不能给一些具体实例时,往往立马语塞、含糊带过。
怎么证明超过 35 岁的你、工作经验好几年的你,比刚毕业的小新人来得有用,来得有潜力?大家玩过 NBA Live 系列的游戏就知道,rookie 的成长潜力有时比当下的能力点数更重要。要应征的公司,当然希望聘用你之后,你的能力还是持续性成长,持续带来更多的价值,更多正面的影响力。
然而正面的人格特质往往很难证明,往往口说无凭。对应征者来说,最好的面试 context 就是「面试官对你已经认识很深,知道你的能力、特质、专长领域、过去的经历,知道你可以为公司带来什么样的价值」,你说这样还要面试什么?因为他要想办法 把你纳入旗下或邀请你成为伙伴,总是需要描绘出愿景、期待,提出好的工作角色、职务内容、发展跟薪资筹码跟你对接。
而怎么样才能尽可能创造出这样的 context ? 在前面的几个段落就是为这样的 context 打底。不是为了换工作、去面试,单向的介绍你自己。因为人们更相信自己看到、听到的,而不是从你嘴巴里面说出来的。为什么找你来面试?因为:
- 他从你的 blog 看到许多受用的文章,对你感兴趣。
- 他从你在社群跟其他人的互动、沟通过程、学习的态度,回馈成长的模样,对你感兴趣。
- 他因为曾经在 blog 或社群跟你互动过,而在实体活动上更有机会跟你进一步攀谈、了解,甚至发展到关心、协助,而更了解彼此,知道自己可以帮上你什么,知道你可以帮上他什么。
- 当公司有了适合的好机会,或是其他人推荐适合你的好机会时,你会是他的口袋名单。他愿意为你背书,愿意帮你推荐,只要他是对的人,他讲一句话,抵得上你讲十句话。
担心自己写的文章内容太弱?
你曾经记录了弱弱的知识跟曾经弱弱的自己,又如何?你该花心思在怎么努力让自己变强,让人家一看你几年文章内容、品质的转变,就知道你的潜力、 成长动能、技术能力、擅长领域、人格特质。我回去看我一开始的文章,根本写得跟垃圾一样,而且那些知识现在看来根本没用!又怎样?我最新写的都是很新或很 有品质很有用的,这不就代表「我不是一年经验 repeat 10 次」,而是真的有 10 年经验,而且持续在改变与成长中吗?
你可以把过去弱弱的自己,变成加分的条件,神奇吧?
看着你 blog 的文章走向,就知道你对哪些领域有兴趣、有底子,不是沾酱油随口胡扯的。知道你在职涯中领域的转换,各领域之间所发挥出来的,你在社群的影响力也对应着你 到公司内能发挥的正面影响力。这些要比看你面试准备的 resume 以及在 1~2 小时内面试过程中的侃侃而谈,要实在的多。要知道,最难得的人才之一,就是「人形自走炮」(self-driven),你只需要给他空间,他就可以自己发 挥驱动出最大的价值跟影响力。
要证明自己有 technical passion, 积极学习、表达能力强、乐意接受学习新东西,都是相当不容易的,而 blog 有日期,有迹可循,人们知道你不是为了面试而突然抱佛脚,而是你平时就习惯这么干,这都骗不了人的。看这种实体的 result 比起自己讲一百句自己很积极学习、拥有技术热情等空虚的话,要来得有用多了。
从写 blog 文章当作第一步,创造出后面这些「connect 与机会」,你不觉得这是一个绝佳且实实在在的捷径吗?如果你有更好的方式,请一定要教我。
重点摘要,你还要注意什么?
上面用几个段落来描述了写 blog 可以带来哪些好处,这边重新整理一下几个重点。
写 blog 的过程
自我承诺:给自己订立一个可行的目标,然后真的动手开始写 blog。正视自己的内心,不要被自己的心魔打败。
有方向性地筛选有用的资讯:有了目标,会促使你主动感知资讯,有目标有方向地过滤筛选资讯,收集与整理素材。
外显过程使得知识学习更加完整:只有收集素材,还只在内隐知识阶段,那都是别人的东西。要透过外显过程,例如写 blog 来刺激自己,找到似懂非懂的盲点。
透过外力来辅助提升自己的能力,突破盲点:将 blog 文章分享到适当的社群/社团/社交平台,透过外力来找到自己盲点,创造 level up 的契机。
以 blog 文章为媒介,建立影响力:在跟社群、社交平台的人们互动时,就是最好展现自己能力与特质的机会。这会帮助你未来在实体活动或 social 场合时,人家想认识你时,不会太尴尬、不知道怎么跟你攀谈。
持续检视自己的成长:其实只要你愿意持续检视自己是否有成长,你就真的会持续成长。每天进步0.1%,一年后你会进步44%,三年后你会进步两 倍,20年后你会进步1480倍,25年后你会进步九千多倍。当然,前提是你不是一招半式闯江湖,写了两年文章都还在同一招上转来转去,了无新意的滥竽充 数。诚实面对自己,帮自己开启一扇持续成长的门。
注意事项
Just do it,先做就对了!
写文章需要冲动,你要维持自己的冲动,让自己保持在 on fire 的状态。定期的维持节奏,找到你喜爱的领域,随时收集素材,就是保持冲动的最好方式。
手感冷掉之后,要靠自己重新点燃火种相当困难。就像推动一个巨轮,你要让它维持等速或加快速度相对简单。一旦巨轮停止,你要面对那巨大的静摩擦 力,得付出一定的代价。我的建议是,透过外力来点燃火种,例如参加专业的培训课程、充满热情的技术社群活动,对点燃火种都很有用,因为那边接触到的每个人 都会替你的巨轮推上一把。(研讨会效果比较没那么好,越多互动,越多同侪的合作或表现,点燃火种效果越好)
建立正确的心态,哪怕有酸民为了反对而反对,为了刷存在感而跟你在五四三,这都是在锻炼你判断与过滤杂讯的好机会。更何况,那5%的靠邀跟80%获得有效指导的机率,怎么算都划算。
我自己也中断了约莫两年的 blog(低频对我来说就是中断),但我在这段时间其实是转换其他的学习成长方式,例如写书、读书会、教育训练、演讲、写技术专栏、social media/网志,我的学习跟获得的价值从未停过。
正视自己的内心,别再给自己一些可笑的理由了,除非你有更好的方式,否则就只是逃避而已。
扎实的训练与累积,就是唯一的捷径。