书是怎样写成的——《ASP.NET夜话》背后的故事

简介:



最初的蓝本

2007年的时候我进入一家开发公司,当时那家公司主要是以asp来开发网站,当时公司领导对我寄予了很大的希望,想我带领公司开发人员由asp转向ASP.NET,在20077月里我开始对公司老员工和新近员工进行ASP.NET培训,当时是上午给开发人员做培训,下午的时间则让开发人员动手做我布置的练习,我接着准备第二天的知识点并制作ppt和编写示例代码,经过半个多月的培训之后就留下了一套关于ASP.NET系列的ppt,这套ppt涉及到HTMLCSSJS、数据库、C#基础和ASP.NET基础。这次培训相当成功,培训的新人很快就能上手工作了,不过不是为我所在的那家公司,因为其他公司开出的待遇更吸引人,中间我还郁闷过一段时间,公司领导看到我郁闷还让我带薪休假出去玩了几天。
 
第二次派上用场
20083月我进入了一个IT培训机构,当时这家培训机构有一批即将要毕业的学生,这批学生出去找工作的时候发现在学校学到的知识与企业所需存在一定的差距,考虑到我一直在一线从事.net开发,了解企业用人标准(在进入该IT培训机构之前我曾在企业负责技术面试),所以希望我对这批学生进行一个短期的实战集训,这样我又把2007年整理的那套ppt重新搬出来了。
中间也有一些比较尴尬的事情。第一天的时候很多人慕名去听课,容纳60多人的教室座无虚席,到了第二天人就少了一些,等课程上到三分之一的时候教室就已经空了一半了。等到最后一天上课的时候,教室里只有4个学生。在上课之前我给他们讲了一个笑话,算是自我解嘲吧。
我说:“有一个非常有名的牧师去一个地方布道,这个牧师心想凭自己的名气教堂里一定会座无虚席,可是到现场以后却发现只有一个马夫。看到牧师的失望,马夫安慰牧师说:‘牧师,即使我的马厩里只有一匹马我也会拿草料去喂的。’牧师听了大受鼓舞,马上滔滔不绝地讲开了,等讲完的时候马夫刚刚从睡梦中醒来,马夫对牧师说:‘牧师,如果马厩里只有一匹马的话,我是不会拿一整车的草料去喂它的。’”学生笑了,我也皆这个笑话开始了这尴尬的一课。
第一次的成功和第二次的失败给了我一些经验和教训,我自己分析过原因。第一次培训的人员都是在企业工作过一段时间的开发人员,虽然以前没有接触过ASP.NET,但是接触过其它的编程语言,有一定的业务经验和因为知道工作的艰辛所以有强烈的学习欲望,所以培训收获很大。而第二次培训的是没有任何业务经验并且从未走出过校门的学生,并不知道工作的艰辛,同时心态的浮躁加上没有正确的学习方法,所以培训基本没有什么效果。
有过在IT职业培训中心当老师的同行可能对一些IT培训机构的做法有些了解,老师的表现需要学生来打分,所以学生的学习积极性不是太强,老师还需要哄着学生去学习,否则学生可能会给你比较低的分数,有些学生在上课时睡觉,机房动手实践时看小说玩游戏)当然一个班一般也有45个学习比较认真的,其实大学里这种情况似乎也很普遍),感觉当时似乎精力不是放在如何讲好课上,而是如何跟学生处好关系上(也正是部分出自这方面的原因,我最终在20081231日前结束了我的老师生涯)。话也说回来,有些学生睡觉或者不愿意认真上课也是由于老师的原因,有些培训机构的老师自身的技术也存在一些不足,态度上也存在一些问题。
 
第三次派上用场
200889月份的时候,接触到的一家公司也需要转型,也是想从asp转型到ASP.NET,于是这套ppt第三次派上用场,吸取了第一次的成功经验和第二次的失败教训,在讲解时我把上课时学生经常犯的错误在讲述时着重讲解,并且把一些重要步骤反复讲解,不过这次培训时没有布置作业,感觉效果比第二次要好,但是比第一次要差。
 
决定写博客
一次和朋友一起吃饭的时候聊到培训的事情,然后他建议他做一个WinForm的培训,希望我做一个ASP.NET的培训,当时我答应了,这个培训是针对特定人群的免费培训。
答应之后我就开始着手准备,于是我开始以2007年的那套ppt作为蓝本,在此基础上结合在IT培训机构的授课经验。由于白天要在培训机构上班,所以只能下班之后晚上写,在一开始的时候我就想到要写一个系列的,在为这个系列文章取名字时动了一番脑筋,最后在一天早上起床时脑子里突然冒出“ASP.NET夜话”这个词语来,下课的时候和一位同样是教.NET的朋友聊天,我告诉他我决定写一个ASP.NET的系列博客,名字叫“ASP.NET夜话”,他当时说了一句话:“感觉像聊斋一样。”
由于实在想不出什么好的名字,所以我就以“ASP.NET夜话”作为系列文章的名字开始了写博客的历程,这个系列的文章最开始是在CSDN发表的。一天上课的时候学生告诉我在CSDN首页上找到了我的名字,我打开一看果然看到我的文章被推荐到CSDN首页。由于被推荐到首页的关系吧,文章的点击量相当高,很多读者在文章后面发表了鼓励和肯定的留言,所以的积极性很高,每天晚上吃完饭回到家就开始写(锅碗瓢盆上一次搬家的时候送人了只好在外面餐馆吃),每天写完的时候大概是临晨2点左右,篇幅特别长的时候会写到临晨34点。记得当时有位朋友在上面留言,说道:“写得太好了,比有些书写得还好。”当时我还跟这位读者开玩笑:“如果写成书你会买吗?”那位朋友说:“我肯定买。”说实在话,当时就有些心动,想看看是否整理能整理成书,因为我从小的愿望就是当一名作家,后来家里考虑到男孩子学文科不好找工作让我去学了理科。
 
签定合同
20081016日去北京汤山参加参加MVP Open Day的时候有些出版社编辑也参加了,机缘巧合我遇到了博文视点的孙学瑛老师,孙老师建议MVP们通过写书的方式把自己的经验心得分享出来,于是我跟孙老师谈了谈我的想法,并且讲我现在已经正在写的《ASP.NET夜话》系列,不过似乎孙老师当时不太看好ASP.NET系列,觉得C#基础的书可能会更好一些,当时我也没有抱有太大希望,只是给孙老师留下了我的名片,说:“名片上有我的博客地址,您可以看看别人对这本书的评价。”三天的MVP Open Day结束的时候我回到了单位,打开邮箱一看收到了孙老师的邮件,她询问我的联系地址,说是准备给我写稿合同,当时还有些不敢相信,激动了几天,呵呵。
在签定合同的时候我特地将完稿时间定在了2009年的520日,玩过数字游戏的人都知道5201314是“我爱你一生一世”的谐音,我取520日也有这个意思(520即“我爱你”的谐音),当时是一个人,希望在2009年能找一个心仪的人结束单身(憧憬明天嘛)。
在签定合同之后刚开始还放了几篇文章在博客上,后来看到合同中似乎有不允许稿件散播的约束,便终止了继续在博客更新了,这一点请大家原谅。
 
尴尬的视频录制
大约是在2008年年底的时候,博文视点孙学瑛老师提出是否可以提供相关视频,我当时同意了,这就有了测试版的《ASP.NET夜话》视频,之所以称之为测试版视频,是因为在录制过程中有一些不可抗力的因素。
首先最大的问题是噪音问题。我所住的地方是一个关系比较嘈杂的地方,楼道里安装的声控电灯,有些加班很晚回来的人回来时会在楼道里尖叫或者用力蹬楼梯,所以经常会出现录制了很长时间突然出现一声尖叫或者很沉重的脚步声,导致整集视频需要重新录制。最绝的时,有一次我准备录制45分钟的视频,结果录制到44分钟的时候邻居家夫妻吵架,方圆数里都能听到女人的哭声和国骂,等我耐心等到国骂结束时已经是凌晨三点了,没办法,只好睡觉,因为第二天还要上班。当然在测试版视频中我尽量剔除了这些噪音很大的视频,有些干扰不大的依然发布了,正式版视频则完全是重新录制的(测试版视频是基于VS2005的,正式版视频是基于VS2008的)。
其次是身体原因。本来我的胃不是太好,从2006年起就有些症状了,到2009年的时候因为长期熬夜就更加明显了,整个眼睛充满了血丝,我曾经跟朋友开玩笑说我演恐怖片不用化妆,我的充血的眼睛就非常恐怖。除此之外,我经常不自主地打嗝,在测试版视频中可能细心的话能偶尔听到。
我将视频上传到我个人的虚拟主机空间上,然后在我的博客上公布录制信息和下载地址,后来有热心人将视频通过电驴下载的形式公布了,所以更多的人经常在博客上催促我新的视频,这是一种动力,也是一种压力,所以在那段时间基本上没有太多考虑身体的情况。
 
背后的背后
之所以说是背后的背后,因为这里讲的是我和出版社之间的故事,对于一些想写书的朋友或许有些帮助。
 
1)软件版本的变化
刚开始写《ASP.NET夜话》的时候主要是基于VS2005+SQL2000的,因为给客户开发软件的时候,经常遇到的情况是有一些现有的系统使用了SQL2000数据库,升级现有数据库毕竟不太现实(企业中升级软件版本还需要一个比较长的周期的),而且很多虚拟空间提供商提供的空间为.net 1.1.net 2.0也有,但是.net 3.0.net3.5的国内就比较少了,基于这些考虑所以刚开始写的时候也是基于VS2005+SQL2000,到了2009年之后我所在的公司开始使用VS2008SQL2005了,所以在最终发行的时候是基于VS2008+SQL2005的。
 
2)书稿审核过程中的故事
5月份的时候已经完成了书稿,随后就是书稿审核过程。这里确实不得不佩服编辑的细心。在写作的时候我基本上是顺着自己的思路写,不是太注重语句的通畅及错别字现象,在交稿给出版社之前我自己重新将书稿审核了一遍,不过交给出版社之后编辑仍发现了很多问题。当然这里也不得不提一下的是,5月份交稿期间正好赶上公司开发一个大型项目,每天早晨8点赶到公司,晚上11点才能回家,回到家差不多就是12点了,我还得继续打开笔记本整理稿件,每天整理完稿件睡觉的时候差不多就是凌晨34点了,一天的睡觉时间也就45个小时。
在《ASP.NET夜话》一书的最后一章是一个综合实例项目,刚开始的时候我想仍然沿用以前在公司培训时讲解的那个项目,后来自己觉得不是太合适,因为在那个项目中不能太多演示书中讲解的知识点,于是决定重新选用一个项目,就是一个文章管理系统,在这个系统中讲解了如何生成HTML静态页面的知识。在演示系统中我录入了几篇我很喜欢、也觉得很有启发意义的文章,比如《68个经典管理寓言故事》和《人生哲理枕边书——你应该知道的165个人生哲理》等,不过因为书中有些故事本身的举例有些问题,在审核过程审核人员感觉有些故事不太合适,最终不得不删除了。
在审核过程中还有一件有趣的事情,那就是肖像权的问题。在最后一章的实例中,我引入了一些图片,怕涉及侵犯肖像权,让我删除了不少照片,搞笑的是有一张照片居然是我自己的照片,这张照片是我2003年的工作照,想想可能是这几年来我的变化比较大吧。从1998年到2005年之间我的身高没有变化保持在175cm,体重也保持在54kg56kg之间,直到2005年之后才突破了60kg,最近又创新高,达到了71kg了。当然最终那张照片在书中保留了,大家可以在随书光盘中看见我2003年的样子(之所以极力保留这张保留也是有些怀念以前那段艰难的生活吧)。
另外,有些遗憾的是本来在书中包含了本书中涉及到的所有软件,尽管这些软件都是免费或者开源的软件,但是最终不能包含在随书光盘中(可能是怕引起版权纠纷吧,也许觉得放在书中是以商业的方式使用这些软件),所以我只好将这些软件放在我的个人服务器上了。
 
3)感动编辑的前言
在完成书稿的审核之后,出版社让我提供书的前言和内容简介。由于以前没有写过这方面的东西,所以看了看别人的样例。按照一般格式前言部分会有一个致谢,在这里想要感谢的人太多了,那段时间里差不多每天都有人在博客留言上催写新章节,记忆特别深刻的是一位在日本工作的朋友,给了我很多他的意见和建议。
就在写作前言的那个晚上,我正写着的时候忽然手机响了,是家里打来的,妈妈告诉我第二天有大雨,让我带伞出门。“要看关心一个人的程度,只要看他是否关心另一个人那里的天气就知道了。”这句话是我92年至95年在湖北黄冈读高中的时候在一本杂志上看到的,看过之后一直记下来了。我从199011岁时就开始在学校寄宿了(那时候我读小学五年级,为了应付黄冈地区的竞赛所以在学校寄宿补课),从那以后我开始了一个独立生活的生涯,大学毕业之后更是远离湖北去了天津,儿行千里母担忧,不在身边的时候妈妈对我的叮嘱特别多。每天妈妈都会看中央电视台的天气预报,由于我工作忙几乎不看电视,所以每次天气发生重大变化时总是妈妈提前通知我,所以在写前言致谢时我用了很浓的笔墨、很诚挚的感情向父母表示了感谢之情。以致于交给编辑孙学瑛老师时,她说了一句:“我工作这么多年了,看的前言也不少了,却没有想到前言也可以写得这样感人。”我说了一句:“情之所至。”
 
4)书籍出版的流程
也许不同的书籍出版流程并不一样,我经历的流程是这样的:写样稿(当然我的样稿就放在我的博客上),接着填写选题相关材料,通过出版社审核之后就会要求签订一份约稿合同,在约稿合同中写明书的总字数(这里书的字数并非仅仅是指中英文数字字符的个数,而是以页数来算的字数,即使一页中全是图片也会被计算作字数的)、交稿时间、交稿方式(如手写稿、电子稿及相关文档、视频等),交稿之后会有编辑对编写的稿件进行审稿,审稿过程包括文字方面的审核和政治方面的审核,如要求语句通畅、思想积极健康等,审稿过后就会要求填写一份出版合同,签订出版合同之后唯一要做的就是等着出版社给邮寄样书了,我收到出版社给我的样书是2009727日,而书的正式上市则是2009729日。
 
今年的计划
原本是计划在今年下半年着手再写一本书的,题材和方向我都想好了,可是由于身体的原因不能熬夜而白天又没有什么时间,所以暂时只能搁置这个计划。下半年的计划主要是以提高英语的听、写能力,工作之后虽然一直坚持阅读英语方面的技术资料,不过听、写能力却没有得到锻炼,所以计划下半年在这方面重点突破。其实我从2月份起就已经开始这方面的锻炼了,从2月份起我就坚持步行上班,半个小时就可以到公司,每天就利用这上下班路上的一个小时时间听VOA,后来感觉仅凭每天一个小时的时间太少,所以准备再利用一下晚上的时间。当然除此之外,也会做一些前瞻性的研究,为下一本书做准备。













本文转自周金桥51CTO博客,原文链接:http://blog.51cto.com/zhoufoxcn/185765 ,如需转载请自行联系原作者

相关文章
|
3月前
|
开发框架 自然语言处理 小程序
分享88个ASP.NET电子商务源码,总有一款适合您
分享88个ASP.NET电子商务源码,总有一款适合您
20 0
|
Web App开发 Windows
你应该知道“.NET研究”的15个Silverlight诀窍
  我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术。对于刚刚接触Silverlight的开发人员来说,这篇文章是最适合你的。这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍。
983 0
|
Web App开发 Windows
一起谈.NET技术,你应该知道的15个Silverlight诀窍
  我热爱Silverlight,并且身体力行写了很多Silverlight程序,也讨论了很多关于Silverlight的技术。对于刚刚接触Silverlight的开发人员来说,这篇文章是最适合你的。这篇文章列出了我使用Silverlight进行开发后,发现的15条小诀窍。
1051 0
|
Web App开发 前端开发 .NET
艾伟_转载:学习 ASP.NET MVC (第一回)理论篇
本系列文章导航 学习 ASP.NET MVC (第一回)理论篇 学习 ASP.NET MVC (第二回)实战篇 学习 ASP.NET MVC (第三回)实战篇 学习 ASP.NET MVC (第四回)实战篇 学习 ASP.NET MVC (第五回)理论篇 MVC三种角色:--Model:用于存储数据的组件--View:根据Model数据进行内容展示的组件--Controller:接受并处理用户指令(操作Model),选择一个View并输出内容。
1064 0
《圣殿祭司的ASP.NET4.0专家技术手册》----1-10 程序代码重构
所谓重构(Refactoring),是指对软件程序进行重新改写或调配,那干嘛不直接叫Rewrite?意义当然不一样,因为Rewrite只是单纯地改写,不一定有什么了不得的意义,而重构是含有目的性的改写,或重新优化整个程序架构,其中甚至有“方法论”在里头,也就是有许多程序方法学的指导性方针,“重构”一
1267 0
|
前端开发 .NET 程序员
《圣殿祭司的ASP.NET4.0专家技术手册》----1-1 ASP.NET平台的三分天下
圣殿祭司的ASP.NET4.0专家技术手册 如果访问微软www.asp.net网站,会发现ASP.NET技术目前有3位成员:Web Form、MVC和Web Pages,如图1-1所示。它们各有不同的定位与特色,彼此的开发方式也不相同。
1444 0
《圣殿祭司的ASP.NET4.0专家技术手册》----2-8 对象初始化程序
对象初始化程序(Object Initializers)可以在初始化一个对象时,不需明确调用构造函数(Constructor),就可以访问其公开的字段或属性。
1425 0
|
.NET C# 开发框架
《圣殿祭司的ASP.NET4.0专家技术手册》----2-6 C# 3.0语言功能
C# 3.0语言支持以下8大功能。第一项LINQ查询表达式在第3章会有完整介绍,除最后一个功能外,其余语法在声明LINQ查询会用到,如果你已熟悉可直接跳到下一章,否则有必要了解一下
1102 0
|
C# C++ 存储
《圣殿祭司的ASP.NET4.0专家技术手册》----1-11 代码段
代码段英文叫Code Snippet,又称为IntelliSense Code Snippet,它是在Visual Studio程序编辑器中,单击鼠标右键或快捷键就能够选择一堆内建的程序片段。
1432 0