程序员必知必会之blog篇
网易广州 赖勇浩(http://blog.csdn.net/lanphaday)
本文最初发表于恋花蝶的博客(http://blog.csdn.net/lanphaday),欢迎转载,但请务必保留全文完整,不得用于商业目的。
缘起
虽然我写博客到现在只有两年多时间,但因为文章多是原创,还经常被推荐到CSDN首页,又在几个杂志上灌过水,所以也有不少朋友问过我相同的话题:我在学习/工作中有很多感悟,但我写不出来啊,有什么好方法吗?问这个问题的有师弟师妹,也有朋友同事,甚至有一些是有近十年经验的资深技术人员。
后来看到CSDN blog开通了近20万个专栏,却只有不到55万篇原创文章,平均一个专栏还不到三篇文章。这说明有很多程序员,想写却写不出来,写了却没能坚持下来。这终究是一个方法问题。
向我咨询的一位有十年经验的资深技术人员,他给我看了一些他的作品。我惊叹于其中的技术,极力鼓吹他把其中的技术体会写出来,但他的回答是:我也想写出来给大家参考,但我下笔写不了三句话啊!
眼看着一个个技术专家有心无力,无可奈何地看自己的技术流失;眼看着一个个年轻后进无法分享学习路上遇到的困难和解决方案;眼看着大家上穷碧落下黄泉,用尽谷歌加百度也无法找到有效的参考方案。我感到自己有责任站出来,分享自己写文章的心得和套路,让更多人能够写博客、乐于写博客;把自己的所得分享给大众,回报行业,回报社会。
看图作文
无论现在你的成就多大,你也不得不承认在小学(甚至是幼儿园)学到的东西让你终生受用无穷。看图作文就是这样一门有用的学问。
(本图纯属非商业用途引用,版权归原作者所有!)
看着上面搞笑的漫画,无论是谁都能写上一两百字吧?
其实,看图作文法是写博客的好帮手哦!君不见多少网站编辑就靠这招就能混得人模狗样有房有车么?千万不要小看啊!我们写技术文章的时候,可以套用这样一个套路来写文章:
1、 先画几幅图,如软件需求图、架构图、界面图、细节图等若干;
2、 针对每一幅图写一段话,三五句,讲清这幅图的功用即可;
3、 去掉图片,通读全文,做好各段的衔接;
4、 修改文章,直到满意为止。
一开始我们就多弄点图,像太平洋电脑网的评测文章一样。慢慢地,图的数量降下去,文字的数量升上来。最终,您终于修练成Word无图而心中有图的不二法门,就神功已成了!
回眸说明文
咳,大家都还记得说明文是我们学习过的众多文体之一。但作为一个技术博客的作者,写的文章大多应该是说明某一种技术(或算法或架构)实现。因此掌握说明文的写作有着举足重轻的意义,在继续下一步之前,我们有必要再复习一下说明文的一些要素。
说明文是解说事物、阐明事理的文章体裁,最重的是要把特征、本质和规律讲清楚明白。说明文通常都具有知识性,这种知识可能来自于文献资料、研究数据或者自己的实践和调查所得。说明的时候要有一定的条理性,也就是顺序,必须搞事物特征或者人的认识规律来安排。知识性和条理性方面最好的范文就是各种药物的说明书了。在这里有一份“小儿甘草锌片”的说明书http://www.chinapharm.com.cn/html/database/drugmanual/730/TYV30243701092005KPD.html,如果大家对照葫芦画瓢,把自己要分享的技术(或算法或架构)以这种填表式表达出来,未尝不能达到清晰明了的效果。您可能会笑话我竟然把技术跟药品混为一谈,并认为他们风牛马不相及,但我给你举个例子,你看看有着最完善的技术文档之称的MSDN,是不是像极了药品说明书?下面看个.net类库里的Keyboard类的文档:http://msdn2.microsoft.com/zh-cn/library/microsoft.visualbasic.devices.keyboard(VS.80).aspx,语法、备注、示例、层次、安全、版本和参考信息,一类一类列下来,简明清晰,我等学习的典范。
说明文主要是说明事物给人知识,所以既可以写得平实(如MSDN),也可以写文艺化一些(如我的博客上的《Mixn扫盲班》http://blog.csdn.net/lanphaday/archive/2007/06/18/1656969.aspx)。说明的方法有下定义、作诠释、作比较、打比方和分类别等等,具体的可以再参考当年的教科书。
十句作文法
上面废话了这么多,难得您还能忍着呕吐感看到这里。为了报答您对我的赏识,我决定在这一节开始白话一下我的两个独门密招:十句作文法和测试驱动写作。咳,虽然我号称独门,不过据我所知,用这两招的人非常多,相当多;特别是苦难的高考期间紧张在黑色六月的祖国的花朵们,经常用这两招。
十句作文法不是我原创,是中学的时候,我的英语老师教我的。那时我数学经常考一百分,语文就差了点。我的老师看在眼里急在心里,为了培养一个能文能武的学生,他在某个冬日的午后,在痛批恨铁不成钢之后把这个独门秘方传授于我,从此我就走上了作文高分之路。
首先要指出的是十句作文法并不是一定要写十句,通常是8-12句。这种方法对付考试是最有效的,但也可以应用在我们的技术文章写作当中。十句作文法其实是最低阶的写作方法,汗,我在前面似乎把它吹得太神乎了?因为十句话往往只有200个字左右。200个字能说清楚些啥啊?没关系,只要我们不停地迭代(不知道什么叫迭代?)和递归(不知道什么叫递归?)应用这个方法,200个字也能清易扩展到2000个字。古龙曰过了,最简单的,就是最有效的。
文章就像水,没有固定的形状。不过,文章也像水,有源头、有主体和终端;就像再长的河流也最终也要流入大海,再长的文章,也逃不过“始、中、终”三个字。只要我们掌握了这一点,自然就能一切通杀了。
有了上述理论(气宗)指导,下面十句作文法(剑宗)就显得相当简单了:
始(第一段):
主题句一句,通常应用开门见山法。
扩展句一句,用以深化主题,通常应用烘云托月法。
中(第二段):
简介一句,通常应用承前启后法。
下面用时间、空间、逻辑、总分、并列或者因果等法讲述事物/事理,共六句。要用的方法有彩线穿珠、小中见大、顺应时空、尺水兴波和联想对照等。
终(第三段):
结束句一句,用以总结全文、升华主体思想,最典型的做法是:啊,多么伟大的中国人民啊,他们创造了与世无匹的世界奇迹!
有了这十句之后,我们就可以以小段为大段,以句为小段,对每一句再应用一次十句作文法,文章自然就体积胀大,而且结构分明,看起来蛮像一回事了。(附注:如果有读者正在考英语四六级之类的考试,十句作文法绝对可以帮到你!)
本文最初发表于恋花蝶的博客(http://blog.csdn.net/lanphaday),欢迎转载,但请务必保留全文完整,不得用于商业目的。
测试驱动写作
虽然十句作文法是老师传授于我,但测试驱动写作却是明明白白的我的原创。证据?还真没什么证明,不过在百度上搜索”测试驱动写作”,找到的网页数目为零,也算是一个证据了吧?http://www.baidu.com/s?ie=gb2312&bs=%BF%AA%C3%C5%BC%FB%C9%BD&sr=&z=&cl=3&f=8&wd=%22%B2%E2%CA%D4%C7%FD%B6%AF%D0%B4%D7%F7%22&ct=0
测试驱动写作的灵感来自于编程界流行的测试驱动开发(Test Driven Development,简称TDD),简称TDW。因为TDW和着与TDD相同的血统,所以TDW也有着TDD的优势。文章简洁可用是TDW的目标,它通过先思考如何撰写文章,并罗列相关的问题要点,然后再写出文字;通过比对问题要点,循环修改添加其它观点,直到文章完成。大家都是程序员同行,TDW的优点我就不说了,请参考大家耳熟能详的TDD优点;下面我只是谈谈TDW的过程:
1) 明确要写的主旨和内容,最好是列一个提纲。
2) 在表格上写明这篇文章要达到的目标、效果、字数甚至体裁和段落,作为测试用例。
3) 利用十句作文法(或者其它方法)快速完成一个文章原型。
4) 针对测试用例比对,记录下未完成和完成得不好的地方(Bugs)。
5) 修正Bugs,然后再回到第4步
6) 对文章进行重构,润色。(放到blog上的话,这一步可以不做)
7) 文章完成。
由TDW的过程可见,十句作文法是TDW的基础,要进行TDW,必须有一种快速的原型开发方法。TDW是对十句作文法的扩展和迭代,是弥补十句作文法写的文章有骨无肉缺陷的有效手段。只要掌握了这两种方法,肯定能写出受人肯定的技术文章,为自己的博客添光彩。
Next Works
诗人陆游《示儿》诗中说:“诗为六义一,岂用姿狡狯。汝果欲学诗?功夫在诗外!”
是啊!云对雨,雪对风,晚照对晴空。要学会这些套路并不是难事。就像武学一样,在学会长拳通臂之后,讲究的是融汇贯通。无敌寂寞到左右手互博的周伯通也打不过杨过单手黯然消魂掌,是因为杨过已经把他对生活的感悟融进了功夫之中。李杜两人领衔中国诗界一千余年无人出其右,也正是因为他们的诗已经融入了他们对生活的感情!放翁一句“春如旧,人空瘦,泪痕红浥鲛绡透”让多少人为之泪流,也是因为《红酥手》这首词融入了他几十年的情感!
相信通过我的文章,读者能够掌握一些写作的方法和技巧。也许在一段时间之后,您也喜欢上了写博客,喜欢上了与大家分享自己的所得所思。这时您可能想把自己的文章写得更有文采一些,也许您仍然会回来问我,希望我再跟您交流经验。我在这里先说一句吧,我不是大文豪,如何把文章写更富有文采和风格,那不是我能回答的问题。我只有一句话也大家共勉:
功夫在文外,文章不够好,归根结底是因为对生活的积累太少。
相关文章
程序员必知必会之maillist篇
http://blog.csdn.net/lanphaday/archive/2007/06/27/1669326.aspx
程序员必知必会之Email篇
http://blog.csdn.net/lanphaday/archive/2006/06/29/850059.aspx
程序员必知必会之blog篇相关推荐
- 程序员应知必会的思维模型之 18 林纳斯定律 (Linus‘s Law)
林纳斯定律 (Linus's Law) 足够多的眼睛,就可让所有问题浮现.–Eric S. Raymond 简单地说,能够看到问题的人越多,有人解决过相关的问题或事情的可能性就越高. 最初该定律是用来 ...
- 程序员应知必会的思维模型之 19 梅特卡夫定律 (Metcalfe‘s Law)
梅特卡夫定律 (Metcalfe's Law) 在网络理论中,系统的价值约等于系统用户数的平方. 这个定律基于一个系统中可能的连接对数量,并且与里德定律 (Reed's Law) 十分相近.奥德利兹科 ...
- 程序员应知必会的思维模型之 7 邓巴数字 (Dunbar‘s Number)
邓巴数字 (Dunbar's Number) 邓巴数字是对一个人能够保持稳定社会关系的人数的认知极限--在这种关系中,一个人知道每个人是谁,也知道每个人与其他人的关系如何.而对这一数字的确切值则有着一 ...
- 程序员应知必会的思维模型之 25 普特定律 (Putt‘s Law)
普特定律 (Putt's Law) 技术由两类人主导,一类是纯粹的管理人员, 一类是纯粹的技术人员. 普特定律常常遵循普特推论: 每一个技术层次,假以时日,能力将逆转. 这些结论表明,由于各种选择标准 ...
- 程序员应知必会的思维模型之 15 技术成熟度曲线 (The Hype Cycle or Amara‘s Law)
技术成熟度曲线 (The Hype Cycle or Amara's Law) 我们倾向于过高估计技术在短期内的影响,并低估长期效应.–罗伊·阿马拉 (Roy Amara) 技术成熟度曲线是高德纳咨询 ...
- 程序员应知必会的思维模型之 23 帕金森定理 (Parkinson‘s Law)
帕金森定理 (Parkinson's Law) 在工作能够完成的时限内,工作量会一直增加,直到所有可用时间都被填满为止. 基于官僚机构的研究背景,该定律被应用于软件开发中.该理论认为,团队在截止日期之 ...
- 程序员应知必会的思维模型之 21 墨菲定律 (Murphy‘s Law / Sod‘s Law)
墨菲定律 (Murphy's Law / Sod's Law) 凡是可能出错的事就一定会出错 出自 爱德华·A·墨菲 , 墨菲定律 说明了如果一件事有可能出错,那么就一定会出错. 这是一句开发人员间的 ...
- 程序员应知必会的思维模型之 3 破窗效应 (The Broken Windows Theory)
破窗效应 (The Broken Windows Theory) 在破窗理论中认为,一些明显的犯罪迹象(或缺乏环保意识)会导致进一步的.更严重的犯罪(或环境的进一步恶化). 软件领域应用 破窗理论已应 ...
- 程序员应知必会的思维模型之 12 席克定律 (Hick‘s Law or Hick-Hyman Law)
席克定律 (Hick's Law or Hick-Hyman Law) 决策时间和可供选择的选项数量呈对数增长关系. – William Edmund Hick and Ray Hyman 解释 在下 ...
- 程序员应知必会的思维模型之 5 康威定律 (Conway‘s Law)
康威定律 (Conway's Law) 这个定律说明了系统的技术边界可以反应一个组织的结构,它通常会在改进组织时被提及.康威定律表明,如果一个组织被分散成许多小而无联系的单元,那么它开发的软件也是小而 ...
最新文章
- PHP编译安装时常见错误解决办法,php编译常见错误
- YII2 实现登录时候修改最新登录时间
- Java创建一个文件变量_java如何定义一个类,创建它的成员变量和方法?
- UVA - 11694 Gokigen Naname(dfs)
- 30道经典SQL面试题讲解(11-20)
- 论文浅尝 | 解决知识图谱补全中的长尾关系和不常见实体问题
- python装饰器函数执行后日志_一篇文章搞懂Python装饰器所有用法
- Java 开发者最困惑的四件事
- 性能测试-ApacheBench
- java封装json串示例_Java JSON示例
- 服务器u盘一键安装系统,一键Ghost U盘版安装使用图文教程
- 怎么用C语言程序表白,c语言表白代码 用C语言表白.doc
- QQ玩一玩广告与音效使用总结
- word文档左下方竟然出现无法删除的小横线???
- 3万字细说数据仓库体系(建议收藏)
- iOS Charts
- n平方的求和公式_1到N的平方和,立方和公式是怎么推导的
- 中国新冠疫情数据可视化
- unix time stamp(时间戳)和常规时间相互转换的C++代码
- 网络(十三)之ACL的高级应用
热门文章
- Project Tungsten:让Spark将硬件性能压榨到极限
- 开源的ResearchKit:苹果将如何颠覆未来医疗?
- Android华容道之一步一步实现-7-重构代码
- 深入理解分布式技术 - 分布式缓存实战_Hot Key 和Big Key的发现与治理
- linux之用 grep -r 关键字
- 数据结构 稀疏矩阵的实现方法
- 安卓使用Span富文本给某段Text文本加上波浪线
- 从0开始配置Flutter并运行demo
- Python知识:关于map
- access设计视图打不开_定制橱柜衣柜怎么测量才能避免出错?(设计师必看)